昨天,我姐姐的 Windows 笔记本电脑中的旧 NVME 驱动器开始死机并损坏。大多数东西都存储在云中,但有些东西没有,所以我想尝试恢复我能恢复的东西。如果我们不能恢复,那也没什么大不了的。我做了dd
驱动器,但我愚蠢地逐个分区地做了(没有意识到你可以只对dd
整个设备进行分区)。我现在有三个分区映像:backup-nvme0n1p1.img、backup-nvme0n1p2.img 和 backup-nvme0n1p3.img。第三个是 237GB,包含实际数据。我有映像文件的备份,因此我可以根据需要处理它们。
我只需要重新正确地进行成像,除非我们现在已经格式化了驱动器并重新安装了 Windows(作为临时紧急措施,以便她可以使用笔记本电脑 - 我们不依赖驱动器来存储任何永久内容,只要它可以运行 Windows 几天)。
我尝试使用以下命令直接在 Ubuntu VM 中安装分区映像:
sudo mount -t ntfs -o loop backup-nvme0n1p3.img /mnt/test
...但是文件系统似乎已损坏(我们已经假设):
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
Record 0 has no FILE magic (0xffffffff)
Failed to load $MFT: Input/output error
Failed to mount '/dev/loop9': 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
也不赞同:
ntfsfix backup-nvme0n1p3.img
Mounting volume... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
Record 0 has no FILE magic (0xffffffff)
Failed to load $MFT: Input/output error
FAILED
Attempting to correct errors... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
Record 0 has no FILE magic (0xffffffff)
Failed to load $MFT: Input/output error
FAILED
Failed to startup volume: Input/output error
Checking for self-located MFT segment... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
OK
Unrecoverable error
Volume is corrupt. You should run chkdsk.
好的,所以我可能确实想尝试在 Windows 中安装它并运行 chkdsk。如果它是整个驱动器的映像,我想我可以使用ImDisk之类的程序将其安装为虚拟磁盘,但我不知道我可以对三个单独的分区做什么。
所以我的问题是:是否可以发明一个新的分区表并将这三个分区组合成一个有效的磁盘映像?或者更好的是,忽略前两个分区并使用第三个分区创建完整的磁盘映像?
事实证明我应该测试一下ImDisk。它实际上能够直接挂载 NTFS 分区映像。不幸的是,chkdsk 对损坏的数据分区不满意,所以是时候发挥编程技能并手动解析 NTFS 数据并与正常工作的恢复/其他分区进行比较了!(实际上我已经这样做了几天;令人惊讶的是,这并不难。)