下面的消息来自另一个帖子我按照他们所说的方式尝试了。首先,我安装了 USB 驱动器:
sudo mount -o ro,noexec /dev/sdb1 /media
我将其安装为只读,以防止在复制时对 USB 造成任何损坏或更改,特别是如果我混淆了if
和of
.在下面的消息中,我不确定他们是否希望我使用sdb
or sdb#
for if
。
在尝试任何恢复之前,我会通过逐块备份整个设备来保存当前状态:
dd if=/dev/sdb bs=16M of=/somelargedisk/rawusbdrive
其中 /dev/sdb 是您的 USB 驱动器(使用 lsblk 检查哪一个), /somelargedisk/rawusbdrive 是您选择的路径和文件名具有大量空间的磁盘/分区。然后,如果写入磁盘的恢复工具造成的损坏比修复更大,您可以返回(交换 if 和 of 字段)。”
答案1
备份整个驱动器的最佳方法是 via,dd
因为与使用 相比,您可以更好地控制块设备的缓冲区大小cat
。当 USB 驱动器处于未安装,请运行,如下所示root
:
dd if=/dev/sdb bs=16M of=/somelargedisk/rawusbdrive
您的 USB 驱动器在哪里/dev/sdb
(使用 检查哪个驱动器lsblk
),/somelargedisk/rawusbdrive
是您在具有大量空间的磁盘/分区上选择的路径和文件名。
您可以通过交换if
和of
参数来恢复该备份dd
。
请注意: dd
如果您的参数错误,可以轻松覆盖您的所有数据而无法修复(通过合理的努力)!
这是我在对您的其他问题的评论中首次提到的 用于从 USB 闪存驱动器删除的文件的最佳 Linux 恢复工具?
答案2
/dev/sdb
是整个U盘,/dev/sdb1
是磁盘上的一个分区。如果您想对整个磁盘进行映像,则需要/dev/sdb
.
也就是说,在这种情况下,安装为只读不会对您有任何帮助。您将绕过文件系统(这是只读效果所在)并直接使用块设备。因此,如果你混淆了i
和o
,无论如何你都会毁掉磁盘。
这里没有什么太大的好处dd
,你也可以使用cat
:
sudo cat /dev/sdb > /somelargedisk/rawusbdrive
(或者pv
为了更好地显示进度。)