我一直在故障的 NTFS 驱动器上运行 ddrescue。我不记得驱动器上有什么,但我怀疑这不重要。
GNUddrescue
能够轻松恢复驱动器的大约 80%,但恢复其余部分的速度非常慢。整个驱动器中都有重复出现的坏扇区,因此需要很长时间才能从驱动器中恢复所有数据:
每个坏块的中间都有一些好数据(也呈现重复模式):
但即使是第一个坏块也要花几天的时间才能解决,而且有数千个这样的坏块。
所以我只想确认驱动器上的文件不重要然后放弃。
我无法按原样安装驱动器映像。它说
$MFTMirr does not match $MFT (record 0).
Failed to mount '/dev/loop42': Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.
如果我运行,ntfsfix
我就能挂载驱动器并查看文件夹和文件:
$MFTMirr does not match $MFT (record 0).
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr...
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 0: Invalid argument
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 0: Invalid argument
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 0: Invalid argument
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 1024 usa_ofs: 0 usa_count: 0: Invalid argument
OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Correcting differences in $MFTMirr record 1...OK
Correcting differences in $MFTMirr record 2...OK
Correcting differences in $MFTMirr record 3...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... FIXED
NTFS volume version is 3.1.
NTFS partition /dev/loop43 was processed successfully.
然后我可以安装它,并且我所能看到的一切都是我有重复副本的不重要的东西。
但我怎么知道它是否在列表全部驱动器上的文件和文件夹?
有没有办法查看 $MFT 和 $MFTMirr,vbindiff
然后使用另一个中的副本手动更正其中一个中丢失的位?我读到 MFT 分散在整个驱动器中。我如何知道它是否恢复了所有 MFT?