当在一个虚拟层运行客户虚拟机(VM)时,我们可以创建一个或多个磁盘镜像专门用于该虚拟机。作为一个 “虚拟的” 磁盘卷,磁盘镜像代表附加到虚拟机 VM 的存储设备(比如,硬盘驱动器或闪存驱动器)的内容和结构。如果你想要在不启动虚拟机的情况下,修改 VM 的磁盘镜像中的文件,你可以 “挂载” 磁盘镜像。然后你将能够在卸载它之前修改修改磁盘镜像的内容。
在 Linux 上,有多种方式挂载磁盘镜像,不同类型的磁盘镜像需要不同的方法。如果你在使用 qcow2 类型的磁盘镜像( QEMU/KVM 使用的),在 Linux 上至少有两种方式挂载它们。
方法一:libguestfs
挂载 qcow2 磁盘镜像的第一种方法是使用 libguestfs,它提供了一系列工具来访问和编辑 VM 磁盘镜像。libguestfs 支持几乎所有类型的磁盘镜像,包括 qcow2。你可以像下面这样,在 Linux 上安装 libguestfs 工具集。
在基于 Debian 的系统上:
$ sudo apt-get install libguestfs-tools
在基于 Red Hat 的系统上:
$ sudo yum install libguestfs-tools
一旦 libguestfs 安装完成,你可以像下面这样使用称为 guestmount 的命令行工具挂载一个 qcow2 磁盘镜像。注意,当 VM 运行时,你一定不能以 "read-write" 模式挂载它的磁盘镜像。否则,你就有损坏磁盘镜像的风险。这样,在挂载 VM 的磁盘镜像关闭它总是安全的。
guestmount 的全部命令行参数选项如下:
$ guestmount --help