我使用命令从 USB 创建了一个 ISO 文件dd
,就像这样!
sudo dd if=/dev/sdc1 of=/var/isos/hbcd.iso conv=noerror
我的 USB 有 fat32 文件系统
我尝试使用下一个命令恢复
sudo dd if=/var/isos/hbcd.iso of=/dev/sdc1 conv=noerror
但只显示根目录中的小文件,然后跟踪以下内容:
sudo ddrecover if=/var/isos/hbcd.iso of=/dev/sdc1 /var/isos/hbcd.log
但也不起作用
我安装了sleuthkit
尸检并告诉我恢复的分区有一个 RAW,fs
它应该是 FAT32。
我怎样才能再次恢复这些数据?
答案1
也许您的设备 (sdc) 上的 MBR 有问题,请尝试 testdisk,也许它能够在 sdc 上修复它?或者,sdc 本身可能存在一些物理错误,我个人在使用 USB 闪存 (SD 卡、拇指驱动器) 和多个分区时遇到过一些问题。
或者分区备份(hbcd.iso)有问题,请尝试
fsck.msdos -n /var/isos/hbcd.iso
看看它是否喜欢 fat32 分区。(-n 不做任何改变,只是为了检查)
或者首先,为了获取数据,如果是好的 fat32 文件系统,直接挂载 hbcd.iso 文件应该可以工作,然后你可以从中复制所有内容,而根本不需要使用 sdc。Testdisk 也可以直接从中复制文件,如果它有问题,可能会更好地工作(运行 testdisk hbcd.iso)。类似这样的操作应该可以工作:
mount -o loop,ro hbcd.iso [somedir]
如果 mount 和 testdisk 无法读取文件系统,则 photorec(testdisk 软件包的一部分)可以从 hbcd.iso 中雕刻出数据,但可能不会保留任何原始文件名。我认为 sleuthkit 应该有一些不错的数据雕刻工具,甚至可能是 testdisk/photorec。
不要忘记数据恢复规则:先备份并使用它!否则,一些小的拼写错误或恶意程序可能会抹去所有内容,因此请备份 hbcd.iso。
答案2
据我了解dd
,它读取其能读取的数据并复制所获得的数据。
但如果出现错误,则没有数据,因此没有任何内容可复制,也不会有任何内容写入输出
- 因此conv=noerror
你得到了不匹配/偏移实际数据和扇区/块编号之间。
您需要conv=sync,noerror
消除这种影响。sync
添加“NUL”数据(此处为零字节)来填补空白并将以下块保持在输出(图像文件)中应在的位置。