损坏的 NTFS 文件(没有这样的文件或目录);我可以在 Linux 下修复它们吗?

损坏的 NTFS 文件(没有这样的文件或目录);我可以在 Linux 下修复它们吗?

我正在尝试使用 PartedMagic 将文件复制到我的外部硬盘驱动器。我的电脑无法启动,所以我们要把它送去维修。我试过所有方法,但无法让它启动到任何桌面或恢复环境。我能做的是启动到 PartedMagic 命令行(使用 Ultimate Bot CD)。这就是为什么我只是复制文件。两个驱动器都是 NTFS。我正在使用 PartedMagic,它内置了 NTFS 支持。

我的问题是该cp命令跳过了随机文件。该命令如下所示:

root@PartedMagic:/mnt/local/Users# cp -R ianco/* /mnt/usb/ianco-bak/

我收到的错误是:

cp: cannot open <filename> for reading: No such file or directory

遇到此问题后,我再次执行此命令,但使用了-n(不覆盖)参数,并注意到它跳过了完全相同的文件。我创建了跳过文件的日志这里

为什么它会跳过这些特定的文件?更重要的是,我如何让它复制所有内容?

编辑 1:我运行了ll其中cat一个受影响的文件,得到了以下结果

root@PartedMagic:/mnt/local/Users# ll ianco/AppData/Local/Android/sdk/docs/images/android-5.0/notifications/expandedtext_combo.png
-rwxrwxrwx    2 root     root             0 Apr 25  2016 ianco/AppData/Local/Android/sdk/docs/images/android-5.0/notifications/expandedtext_combo.png

root@PartedMagic:/mnt/local/Users# cat ianco/AppData/Local/Android/sdk/docs/images/android-5.0/notifications/expandedtext_combo.png
cat: ianco/AppData/Local/Android/sdk/docs/images/android-5.0/notifications/expandedtext_combo.png: No such file or directory

答案1

我在原帖之后写这篇文章修复文件系统chkdsk。这个答案从评论中收集了有用的信息,为未来遇到类似问题的用户提供一些见解。

输出ll报告了应该包含一些数据的文件的大小0。这以及遇到的错误表明文件或文件系统已损坏。

Linux 无法很好地修复损坏的 NTFS。虽然有ntfsfix工具,但是其手册上写道:

ntfsfix 是一个可修复一些常见 NTFS 问题的实用程序。ntfsfix不是 的 Linux 版本chkdsk。 它仅修复一些基本的 NTFS 不一致问题、重置 NTFS 日志文件并安排在首次启动 Windows 时进行 NTFS 一致性检查。

正如您所见,该工具将繁重的工作留给了 Windows。似乎没有办法只在 Linux 下修复严重的 NTFS 问题。

正确的工具是chkdsk带有/f选项的 Windows。要使用它,您可以:

  • 启动到一些提供的 Windows 修复磁盘chkdsk
  • 或者将驱动器连接到正在运行的 Windows 机器并chkdsk从那里运行;
  • 或者(麻烦的方法,但如果您无法移除驱动器或启动到修复磁盘它仍可能有用)将驱动器克隆到另一个驱动器(使用ddddrescue),然后将克隆连接到正在运行的 Windows,修复文件系统并获取您的文件。

答案2

我搞明白了(当然,在评论中得到了大家的帮助)。我这样做的原因是我无法启动到 UEFI,而 Windows 10 修复磁盘就是为此配置的。但是,我能够启动到 Windows 7 修复磁盘。

启动 Windows 7 修复盘后,我运行了修复程序,chkdsk C: /f修复完成后(顺便说一下,修复过程已超过 24 小时),我能够将(不再)损坏的文件复制到硬盘上。我希望这对遇到同样问题的其他任何人有所帮助。

相关内容