![如何查看用 dd 克隆的完整磁盘数据(多个分区)](https://linux22.com/image/572711/%E5%A6%82%E4%BD%95%E6%9F%A5%E7%9C%8B%E7%94%A8%20dd%20%E5%85%8B%E9%9A%86%E7%9A%84%E5%AE%8C%E6%95%B4%E7%A3%81%E7%9B%98%E6%95%B0%E6%8D%AE%EF%BC%88%E5%A4%9A%E4%B8%AA%E5%88%86%E5%8C%BA%EF%BC%89.png)
我有一个使用 dd 完成的磁盘映像:
dd if=/dev/sda of=/mnt/fulldisk.img
/dev/sda
有一些分区(Windows+Linux)
我的问题是:我需要知道图像是否做好,我该如何访问数据?(尤其是 Linux 数据)
我尝试使用 ext2explorer 等 Windows 实用程序或直接安装映像,但无法访问数据。
有没有办法做到这一点(使用 Windows 或 Linux)?
答案1
在 Linux 中,您可以使用kpartx
。首先使用 来kpartx -l /mnt/fulldisk.img
查看它是否可以识别分区布局。如果可以,则kpartx -a /mnt/fulldisk.img
使您的分区在分区号/dev/mapper/loop0pX
所在的位置可用。X
然后你可以使用以下方式挂载这些分区
mount -o loop /dev/mapper/loop0pX /some/mount/point
只需替换X
为您所需的分区号。
完成后,使用umount /some/mount/point
和kpartx -d /mnt/fulldisk.img
正确断开磁盘映像。
答案2
所有较新的内核(大约在 2.6.2x 中添加)都支持循环设备上的分区表。只有默认设置是禁用此功能。
modinfo loop
应该会为您提供信息,无论它支持什么max_part
参数。如果支持,请添加modprobe.conf
选项循环 max_part=16
并执行rmmod loop
并modprobe loop
(所有循环设备必须未使用才能使其工作)。这样,当使用循环设备安装单个映像时,所有分区将自动可用:
losetup /dev/loop0 /mnt/fulldisk.img 挂载 /dev/loop0p1 /mnt/part1 挂载 /dev/loop0p2 /mnt/part2