几天前,我的 USB 外置硬盘掉了。结果,我无法读取某些文件。我想恢复它,现在我正在使用安全复制。我使用了以下命令,
sudo safecopy /dev/sdb1 data.img --stage1
然而,大约 93% 时,会出现类似“无法从源代码读取”之类的消息。然后我尝试安装这个部分恢复的图像,但失败了。我还可以做哪些事情来恢复数据?
=================================================== ===============
我尝试过使用
sudo safecopy /dev/sdb data.img --stage1
现在,事情完成了。然后我
fdisk -lu data.img
它产生这个结果,
Disk data.img: 310.8 GB, 310798626816 bytes
255 heads, 63 sectors/track, 37785 cylinders, total 607028568 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb1bec32c
Device Boot Start End Blocks Id System
data.img1 63 625137344 312568641 7 HPFS/NTFS/exFAT
然后,我尝试安装
sudo mount -o loop,offset=32256 -t ntfs data.img /mnt/temp
但此输出失败
Failed to read last sector (625137281): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
or it was not setup correctly (e.g. by not using mdadm --build ...),
or a wrong device is tried to be mounted,
or the partition table is corrupt (partition is smaller than NTFS),
or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/loop0': Invalid argument
The device '/dev/loop0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
我应该如何从这里恢复数据?
答案1
首先,您可能想尝试safecopy --stage2
从safecopy --stage3
磁盘中提取更多内容。
如果您的副本是部分的,则文件系统已损坏。跑步fsck
在其上(例如fsck -y copy-of-data.img
)尝试修复。请注意,对于 NTFS,您需要最新版本的NTFS-3g。修复意味着将文件系统变成有效的文件系统,它很可能会丢失一些数据。因此,请在图像的副本上执行此操作。然后安装映像并尝试从中恢复文件:sudo mount -o loop copy-of-data.img /mnt
。请注意,如果fsck
发现某些数据无法与文件名关联,它会将其存储在lost+found
目录。
有时,在fsck
运行时,它会丢弃数据,因为该数据似乎不属于任何文件。数据恢复的另一种方法是在磁盘上查找看起来像有用数据的碎片。这对于具有可识别标头的文件格式(例如图片)尤其有效。所以尝试运行雕刻工具在您尚未运行的磁盘映像的副本上fsck
。看如何从损坏的 SD 卡中恢复数据?如果这些雕刻工具在您的系统上不易使用,请尝试测试盘 Live CD。