使用 pv 命令可以克隆驱动器,如何安装它?

使用 pv 命令可以克隆驱动器,如何安装它?

我可以使用以下命令备份驱动器。

pv -EE /dev/sda > disk-image.img

这一切都很好,但现在除非使用此命令,否则我无法查看这些文件

pv disk-image.img > /dev/sda

当然,这会将数据写回磁盘,这不是我想要做的。我的问题是我可以做什么来挂载.img文件本身而不是仅仅写回磁盘?


我尝试使用循环安装,但它似乎抱怨无效的 NTFS。

$ mount -o loop disk-image.img
mount: disk-image.img: can't find in /etc/fstab.
$ mount -o loop disk-image.img /mnt/disk-image/
NTFS signature is missing.
Failed to mount '/dev/loop32': Invalid argument
The device '/dev/loop32' 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

您备份了整个磁盘,包括 MBR(512 字节),而不是备份简单的你可以挂载的分区,所以你必须跳过MBR。

请尝试:

sudo losetup -o 512 /dev/loop0 disk-image.img
sudo mount -t ntfs-3g /dev/loop0 /mnt 

编辑:正如@grawity建议的:

sudo losetup --partscan /dev/loop0 disk-image.img
sudo mount -t ntfs-3g /dev/loop0 /mnt 

答案2

正如其他人已经指出的那样,

sudo losetup /dev/loop0 /path/to/disk-image.img

将设置一个可用于访问文件的虚拟块设备,但它不会让您轻松访问分区。

但是,您可以在此之后使用另一个命令来访问磁盘映像文件中的所有分区,而无需手动计算分区偏移量:

sudo kpartx -a /dev/loop0

这将读取磁盘映像中的分区表,并为所有分区创建诸如 等的/dev/mapper/loop0p1设备。/dev/mapper/loop0p2您可以使用它们正常挂载分区。

(如果您不记得每个分区是什么,您可以使用fdisk -l /dev/loop0查看磁盘映像中的分区表;请注意,fdisk在这种情况下,许多版本的分区设备名称显示会有点奇怪。)

访问完磁盘映像后,您可以通过卸载已安装的分区来撤消此设置,然后使用两个命令:

sudo kpartx -d /dev/loop0   # remove the /dev/mapper/loop0pN partition mappings
sudo losetup -d /dev/loop0  # disconnect the image file from the loop device

kpartx命令最初是作为多路径设备(与 SAN 存储系统一起使用)的工具而开发的,但它也可以完美地与磁盘映像一起使用。

答案3

安装p7zip-完整如果您还没有,请查看

sudo 7z  /pathtowhereitis/whatever.img

相关内容