我正在尝试使用 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
从那里运行; - 或者(麻烦的方法,但如果您无法移除驱动器或启动到修复磁盘它仍可能有用)将驱动器克隆到另一个驱动器(使用
dd
或ddrescue
),然后将克隆连接到正在运行的 Windows,修复文件系统并获取您的文件。
答案2
我搞明白了(当然,在评论中得到了大家的帮助)。我这样做的原因是我无法启动到 UEFI,而 Windows 10 修复磁盘就是为此配置的。但是,我能够启动到 Windows 7 修复磁盘。
启动 Windows 7 修复盘后,我运行了修复程序,chkdsk C: /f
修复完成后(顺便说一下,修复过程已超过 24 小时),我能够将(不再)损坏的文件复制到硬盘上。我希望这对遇到同样问题的其他任何人有所帮助。