QEMU--在主机上挂载镜像

有时,能够在主机挂载映像会很有帮助。 例如,如果guest没有网络支持,则将文件传入和传出guest的唯一方法是通过它可以寻址的存储设备。还比如,如果/etc/default/grub文件的GRUB_TIMEOUT设为0,则不会进入到grub界面直接选择默认系统,要是默认系统损坏了不就没法进入系统了,那么可以挂载镜像然后直接修改 /etc/default/grub文件,设置GRUB_TIMEOUT为一定时长,从而允许选择其他系统。

raw格式镜像

Linux 和其他Unix-like主机可以使用回环设备挂载raw格式的映像。 从 root 登录(或使用 sudo),挂载带偏移量(offset)的回环设备。

mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint

注意:映像必须是raw格式的!

要确定正确的偏移量offset,您可以运行

fdisk -l /path/to/image.img

您需要的偏移量是分区的开始乘以扇区大小。 例如,如果 start 为 128,扇区大小为 512,则偏移量为 65536。

例如,要将一些文件复制到 FreeDOS 硬盘映像:

扫描二维码关注公众号,回复: 14652171 查看本文章

mkdir -p /mnt/freedos

mount -o loop,offset=32256 freedos-c.img /mnt/freedos

cp oldgames /mnt/freedos

umount /mnt/freedos

注意:不要在 QEMU 使用 QEMU 映像时挂载它(除非使用 -snapshot),否则您可能会损坏映像上的文件系统。

详见下面这篇文章

挂载虚拟机映像文件img_play maker的博客-CSDN博客

qcow2格式镜像

对于其他格式的 qemu 镜像,可以使用 qemu-nbd

#加载nbd模块

modprobe nbd max_part=16

#注意如果不添加max_part=16参数,在挂载镜像分区时可能会无法看到磁盘里面的实际分区,例如/dev/nbd0p1

#连接qemu镜像到nbd设备

qemu-nbd -c /dev/nbd0 image.qcow2

 注记:猜测这个操作对nbd设备进行了分区操作,创建新分区nbd0p1,但是该分区操作没有跟内核通信,因此需要partprobe命令来更新。

partprobe /dev/nbd0

 将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。

#挂载nbd

mount /dev/nbd0p1 /mnt/image

成功挂载如下!进入到虚拟机的文件系统里了。

 使用 fdisk 您可以获得有关 nbd0 中不同分区的信息。

 

LVM 类型的分区不能使用“mount”命令挂载。 在这种情况下,映像如下挂载:

$ vgscan

  Reading all physical volumes. This may take a while...

  Found volume group "ub1110server-qemu" using metadata type lvm2

$ vgchange -ay

   2 logical volume(s) in volume group "ub1110server-qemu" now active

$ mount /dev/ub1110server-qemu/<LogicalVolumeName> /mnt/image

将 <LogicalVolumeName> 替换为卷组中存在的逻辑卷的名称。 最后,在使用后卸载映像并反转其他步骤(取决于映像的安装方式)很重要:

$ umount /mnt/image

$ qemu-nbd -d /dev/nbd0

$ vgchange -an VolGroupName

$ killall qemu-nbd

“nbd”代表“Network Block Device”。 这里我们在本地使用它们,但也可以导出映像供其他主机使用/挂载。 有关详细信息,请参阅 qemu-nbd(8)、nbd-client(8)。

对raw图像也可以这样做,但它的效率远低于上述使用回环设备的方法。

对vmdk 和raw映像的另一种替代方法是使用 vdfuse,它允许访问 VirtualBox 支持的任何映像。

virtualbox.org • View topic - HOWTO: Mount any VBox-compatible disk image on the host

猜你喜欢

转载自blog.csdn.net/m0_43406494/article/details/124824792