Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.11. virt-sysprep:重置虚拟机设置

virt-sysprep 命令行工具可用于重置或取消配置客户机虚拟机,以便从中克隆。这个过程涉及删除 SSH 主机密钥、删除持久网络 MAC 配置和删除用户帐户。virt-sysprep 还可以通过添加 SSH 密钥、用户或徽标来自定义虚拟机。根据需要,可以启用或禁用每个步骤。
要使用 virt-sysprep,客户端虚拟机必须离线,因此您必须在运行命令前关闭该虚拟机。请注意,virt-sysprep 修改客户机或磁盘镜像而无需复制它。如果要保留客户端虚拟机的现有内容,则必须首先复制或克隆磁盘。有关复制和克隆磁盘的更多信息,请参阅 libguestfs.org
不建议以 root 身份使用 virt-sysprep,除非需要 root 才能访问磁盘镜像。然而,在这种情况下,最好将磁盘镜像的权限更改为可由运行 virt-sysprep 的非 root 用户写入。
要安装 virt-sysprep,请输入以下命令:
# yum install /usr/bin/virt-sysprep
以下命令选项可与 virt-sysprep 一起使用:

表 21.1. virt-sysprep 命令

命令 描述 示例
--help 显示有关特定命令或 virt-sysprep 命令的简短帮助条目。详情请查看 virt-sysprep man page。 virt-sysprep --help
-a [file] 或 --add [file] 添加 指定的文件,它应该是 guest 虚拟机的磁盘映像。磁盘镜像的格式被自动探测到。要覆盖此选项并强制使用特定格式,请使用 --format 选项。 virt-sysprep --add /dev/vms/disk.img
-a [URI] 或 --add [URI] 添加远程磁盘。URI 格式与 guestfish 兼容。如需更多信息,请参阅 第 21.4.2 节 “使用 guestfish 添加文件” virt-sysprep -a rbd://example.com[:port]/pool/disk
-c [URI] 或 --connect [URI] 如果使用 libvirt,则连接到给定的 URI。如果省略,它会通过 KVM 管理程序进行连接。如果您直接指定客户机块设备(virt-sysprep -a),那么根本不使用 libvirt virt-sysprep -c qemu:///system
-d [guest] 或 --domain [guest] 从指定的客户机虚拟机中添加所有磁盘。可以使用域 UUID 而不是域名。 virt-sysprep --domain 90df2f3f-8857-5ba9-2714-7d95907b1c9e
-n 或 --dry-run 对客户机虚拟机执行只读"dry run" sysprep 操作。这将运行 sysprep 操作,但会丢弃对磁盘末尾的任何更改。 virt-sysprep -n
--enable [操作] 启用指定的 操作。要列出可能的操作,请使用 --list 命令。 virt-sysprep --enable ssh-hostkeys,udev-persistent-net
--operation 或 --operations 选择执行了哪些 sysprep 操作。要禁用某个操作,请在操作名称前面使用 -。 virt-sysprep --operations ssh-hotkeys,udev-persistent-net 会启用这两个操作,而 virt-sysprep --operations firewall-rules,-tmp-files 会启用 firewall-rules 操作并禁用 tmp-files 操作。如需有效操作列表,请参阅 libguestfs.org
--format [raw|qcow2|auto] -a 选项的默认值是自动检测磁盘镜像的格式。使用此选项强制使用命令行中的 -a 选项的磁盘格式。使用 --format 自动检测自动探测到后续 -a 选项(请参阅上面的 -a 命令)。 virt-sysprep --format raw -a disk.img 会强制为 disk.img 强制原始格式(no auto-detection),virt-sysprep --format raw -a disk.img --format auto -a another.img 会强制对 disk.img 强制(无自动探测)强制自动探测到 another.img 的自动探测。如果您有不受信任的原始格式客户机磁盘镜像,则应该使用这个选项指定磁盘格式。这可避免恶意客户端出现潜在的安全问题。
--list-operations 列出 virt-sysprep 程序支持的操作。它们按照一行列出,包含一个或多个单空格分隔字段。输出中的第一个字段是操作名称,可以提供给 --enable 标志。如果默认禁用操作,或者为空白,则第二个字段是 * 字符。同一行中的其他字段包括操作的描述。 virt-sysprep --list-operations
--mount-options 为客户机虚拟机中的每个挂载点设置挂载选项。使用以分号分隔的 mountpoint:options 对列表。您可能需要将该列表用引号放在此列表上,以保护它免受 shell 的影响。 virt-sysprep --mount-options "/:notime" 将使用 notime 操作挂载根目录。
-q 或 --quiet 防止打印日志消息。 virt-sysprep -q
-v 或 --verbose 为调试启用详细消息。 virt-sysprep -v
-v 或 --version 显示 virt-sysprep 版本号并退出。 virt-sysprep -V
--root-password 设置 root 密码。可用于显式指定新密码,或者使用所选文件的第一行中的字符串(更安全)。
virt-sysprep --root-password password:123456 -a guest.img
virt-sysprep --root-password 文件:SOURCE_FILE_PATH -a guest.img
如需更多信息,请参阅 libguestfs 文档