7.5. libguestfs 工具和 virtctl guestfs

libguestfs 工具可帮助您访问和修改虚拟机 (VM) 磁盘镜像。您可以使用 libguestfs 工具查看和编辑客户机中的文件、克隆和构建虚拟机,以及格式化和调整磁盘大小。

您还可以使用 virtctl guestfs 命令及其子命令在 PVC 上修改、检查和调试虚拟机磁盘。要查看可能子命令的完整列表,请在命令行中输入 virt- 并按 Tab 键。例如:

命令描述

virt-edit -a /dev/vda /etc/motd

在终端中以交互方式编辑文件。

virt-customize -a /dev/vda --ssh-inject root:string:<public key example>

将 ssh 密钥注入客户系统并创建登录。

virt-df -a /dev/vda -h

查看虚拟机使用了多少磁盘空间。

virt-customize -a /dev/vda --run-command 'rpm -qa > /rpm-list'

通过创建包含完整列表的输出文件,查看虚拟客户机上安装的所有 RPM 的完整列表。

virt-cat -a /dev/vda /rpm-list

在终端中使用 virt-customize -a /dev/vda --run-command 'rpm -qa > /rpm-list' 命令显示创建的所有 RPM 的输出文件列表。

virt-sysprep -a /dev/vda

封装要用作模板的虚拟机磁盘镜像。

默认情况下,virtctl guestfs 会创建一个会话,其中包含管理 VM 磁盘所需的一切内容。但是,如果想要自定义行为,该命令还支持几个标志选项:

标记选项描述

--h--help

guestfs 提供帮助.

带有 <pvc_name> 参数的 -n <namespace> 选项

使用特定命名空间中的 PVC。

如果不使用 -n <namespace> 选项,则使用您的当前项目。要更改项目,请使用 oc project <namespace>

如果没有包括 <pvc_name> 参数,则会出现错误消息。

--image string

列出 libguestfs-tools 容器镜像。

您可以使用 --image 选项,将容器配置为使用自定义镜像。

--kvm

代表 libguestfs-tools 容器使用 kvm

默认情况下,virtctl guestfs 为交互式容器设置 kvm,这可显著加快 libguest-tools 执行,因为它使用了 QEMU。

如果群集没有任何 kvm 支持节点,您必须通过设置 --kvm=false 选项来禁用 kvm

如果没有设置,libguestfs-tools pod 将保持待处理状态,因为它无法调度到任何节点上。

--pull-policy string

显示 libguestfs 镜像的拉取策略。

您还可以通过设置 pull-policy 选项来覆盖镜像的 pull 策略。

这个命令还会检查 PVC 是否被另一个 pod 使用,这时会出现错误消息。但是,libguestfs-tools 进程启动后,设置无法避免使用相同的 PVC 的新 pod。在启动虚拟机访问同一 PVC 前,您必须先验证没有活跃的 virtctl guestfs pod。

注意

virtctl guestfs 命令只接受附加到交互式 pod 的单个 PVC。