我如何装载磁盘映像?

我如何装载磁盘映像?

myimage.disk我有一个包含分区表和主分区(即 FAT32 文件系统)的磁盘映像。将其视为 USB 笔映像。

我想将主分区挂载到本地目录。我知道如何使用循环实用程序挂载分区映像,但这里我有磁盘映像。我猜我必须“跳过”分区表来挂载映像,但我该怎么做呢?

答案1

kpartx 工具使此操作更加简单。它会在 /dev/mapper 中为映像中的每个分区创建循环设备。然后,您可以挂载与所需分区相对应的循环设备,而无需手动计算偏移量。

例如,要挂载磁盘映像的第一个分区:

kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage

处理完图像后,删除循环设备:

umount /mnt/myimage
kpartx -d -v myimage.disk

或者,如果您有一个较新的内核,并在启动时传递 loop.max_part=63(如果 loop 是内置的)或 modprobe(如果 loop 是一个模块),那么您可以这样做:

losetup /dev/loop0 myimage.disk
partprobe /dev/loop0             # Re-read partition table if /dev/loop0 was used with a different image before
mount /dev/loop0p1 /mnt/myimage

循环结束后:

losetup -d /dev/loop0

答案2

发现了这个:

http://www.andremiller.net/content/mounting-hard-disk-image- including-partitions-using-linux

这正是我所寻找的。

以下是关键部分:

mount -o loop,ro,offset=32256 hda.img /mnt/rabbit

其中偏移量的值以字节为单位。建议的获取偏移量的方法是指向parted图像,然后指向字节的单元 B,并从打印输出中获取起始值。作为替代方案,假设您有磁盘空间,请执行显而易见的操作:一旦您有了偏移量和大小,只需使用将dd每个分区提取到单独的文件中。

答案3

如今,您可以使用 来减少工作量udisks。解决方案来自ArchWiki:udisks - 挂载循环设备

要轻松挂载 ISO 映像,请使用以下命令:

udisksctl loop-setup -r -f image.iso

这将创建一个循环设备并显示已准备好挂载的 ISO 映像。一旦卸载,循环设备将被 udev 终止。

-r那里有只读选项。

答案4

我创建了一个工具,叫做虚拟磁盘,这使其变得非常直观。

来自终端

vDisc [file]

来自文件管理器

在此处输入图片描述

相关内容