21.12. virt-customize:自定义虚拟机设置
virt-customize 命令行工具可用于自定义虚拟机。例如,通过安装软件包并编辑配置文件:
要使用 virt-customize,客户端虚拟机必须离线,因此您必须在运行命令前关闭它。请注意,virt-customize 修改客户机或磁盘镜像而无需复制它。如果要保留客户端虚拟机的现有内容,则必须首先复制或克隆磁盘。有关复制和克隆磁盘的更多信息,请参阅 libguestfs.org。
警告
在实时虚拟机上使用 virt-customize,或其他磁盘编辑工具可导致磁盘崩溃。在使用 此命令之前,必须 关闭虚拟机。另外,不应同时编辑磁盘镜像。
建议您不要以 root 身份运行 virt-customize。
要安装
virt-customize
,请运行以下命令之一:
# yum install /usr/bin/virt-customize
或
# yum install libguestfs-tools-c
以下命令选项可用于 virt-customize :
命令 | 描述 | 示例 |
---|---|---|
--help | 显示有关特定命令或 virt-customize 工具的简短帮助条目。如需了解更多帮助,请参阅 virt-customize man page。 | virt-customize --help |
-a [file] 或 --add [file] | 添加 指定的文件,它应该是 guest 虚拟机的磁盘映像。磁盘镜像的格式被自动探测到。要覆盖此选项并强制使用特定格式,请使用 --format 选项。 | virt-customize --add /dev/vms/disk.img |
-a [URI] 或 --add [URI] | 添加远程磁盘。URI 格式与 guestfish 兼容。如需更多信息,请参阅 第 21.4.2 节 “使用 guestfish 添加文件”。 | virt-customize -a rbd://example.com[:port]/pool/disk |
-c [URI] 或 --connect [URI] | 如果使用 libvirt,则连接到给定的 URI。如果省略,它会通过 KVM 管理程序进行连接。如果您直接指定客户机块设备(virt-customize -a),则根本不使用 libvirt。 | virt-customize -c qemu:///system |
-d [guest] 或 --domain [guest] | 从指定的客户机虚拟机中添加所有磁盘。可以使用域 UUID 而不是域名。 | virt-customize --domain 90df2f3f-8857-5ba9-2714-7d95907b1c9e |
-n 或 --dry-run | 在客户机虚拟机上执行只读"dry run"自定义操作。这会运行自定义操作,但会丢弃对磁盘末尾的任何更改。 | virt-customize -n |
--format [raw |qcow2 |auto ] | -a 选项的默认值是自动检测磁盘镜像的格式。使用此选项强制使用命令行中的 -a 选项的磁盘格式。使用 --format 自动检测自动探测到后续 -a 选项(请参阅上面的 -a 命令)。 | virt-customize --format raw -a disk.img 会为 disk.img 强制原始格式(no auto-detection),但 virt-customize --format raw -a disk.img --format auto -a another.img 会强制为 disk.img 强制(无自动探测)强制自动探测 到另一个.img 。如果您有不受信任的原始格式客户机磁盘镜像,则应该使用这个选项指定磁盘格式。这可避免恶意客户端出现潜在的安全问题。 |
-m [MB] 或 --memsize [MB] | 更改分配给 --run 脚本的内存量。如果 --run 脚本或 --install 选项会导致内存问题,请增加内存分配。 | virt-customize --memsize 1024 |
--network 或 --no-network | 在安装过程中启用或禁用客户机的网络访问。默认为 enabled。使用 --no-network 禁用访问。此命令不会影响启动后对网络进行客户机访问。如需更多信息,请参阅 libguestfs 文档。 | virt-customize -a http://[user@]example.com[:port]/disk.img |
-q 或 --quiet | 防止打印日志消息。 | virt-customize -q |
-smp [N] | 启用可由 --install 脚本使用的 N 个虚拟 CPU。N 必须为 2 或更多。 | virt-customize -smp 4 |
-v 或 --verbose | 为调试启用详细消息。 | virt-customize --verbose |
-v 或 --version | 显示 virt-customize 版本号并退出。 | virt-customize --V |
-x | 启用 libguestfs API 调用追踪。 | virt-customize -x |
virt-customize 命令使用自定义选项来配置客户机的定制方式。以下提供了有关 --selinux-relabel 自定义选项的信息。
selinux -relabel 自定义选项重新标记虚拟客户机中的文件,以便它们具有正确的 SELinux 标签。此选项尝试立即重新标记文件。如果失败,则镜像上激活 /.autorelabel。这会将重新标记操作调度到下一次镜像引导时。
注意
这个选项只应用于支持 SELinux 的 guest。
以下示例在客户机上安装 GIMP 和 Inkscape 软件包,并确保 SELinux 标签将在虚拟机下次启动时正确。
例 21.1. 使用 virt-customize 在客户端中安装软件包
virt-customize -a disk.img --install gimp,inkscape --selinux-relabel
如需更多信息,包括自定义选项,请参阅 libguestfs.org。