我花了将近两天的时间,用这两个命令将我的 2gb usb 驱动器恢复到 100gb 的空白 reiserfs 分区上:
ddrescue -f -n /dev/sda /dev/sdb8 日志文件
ddrescue -d -f -r3 /dev/sda /dev/sdb8 日志文件
由于我不知道下一步该做什么,我尝试挂载 /dev/sdb8 来查看里面的内容。但是挂载:您必须指定文件系统类型。在此之前,我能够在 ddrescue 写入之前挂载空白的 reiserfs 分区。现在有没有办法读取已拯救的数据?
谢谢。
答案1
大多数 USB 记忆棒使用PC 分区格式,并且只有一个分区。这意味着磁盘的第一个扇区(512 字节)包含分区表(以及可选的引导加载程序),而磁盘的其余部分包含分区。
你可以用以下方法拯救分区
ddrescue -f -n /dev/sda1 /dev/sdb8 logfile
ddrescue -d -f -r3 /dev/sda1 /dev/sdb8 logfile
但是现在您有了整个磁盘,您可以获取它的分区。
losetup -o 512 /dev/loop0 /dev/sdb8
mount -r /dev/loop0 /mnt
如果/dev/loop0
已被使用,您可能需要选择另一个号码。该命令losetup -f
将返回一个空闲的循环设备。
但是,在实时系统上操作分区很容易出错,因此我建议不要这样做,而是将数据从 USB 移动至普通文件。要么复制整个磁盘,然后losetup
在磁盘映像上使用(16M × 130 计算为大于 USB 的大小):
dd bs=16M count=130 </dev/sdb8 >/var/tmp/usb-stick.disk
或者仅复制分区,然后直接挂载分区映像:
tail -c +513 </dev/sdb8 | dd bs=16M count=130 >/var/tmp/usb-stick.partition
mount -o loop,ro /var/tmp/usb-stick.partition /mnt
ddrescue
为了供将来参考,您首先最好传递一个输出文件,而不是输出分区。
答案2
您将磁盘复制到分区 - 这就是为什么如果您想要单独挂载分区与正常挂载 存在区别,您应该使用 /dev/sda1 作为输入文件
您需要从磁盘文件中划分分区或使用偏移量来安装教程:
http://www.andremiller.net/content/mounting-hard-disk-image- including-partitions-using-linux
您还可以通过 apt-get 或 CERT.org 上的 rpm 轻松查看 autopsy/sleuthkit 的内容
通常我将磁盘或分区复制到文件...这样操作起来更容易。然后,如果我将磁盘复制到文件,则将分区分成单独的文件或像前面所述的教程一样挂载它们。最后,我有分区文件,我可以挂载并将 cp -pR 到新分区。