在 RHEL7/8 上,virt-sysprep 不会清除 /etc/machine-id 的内容,尽管它应该

在 RHEL7/8 上,virt-sysprep 不会清除 /etc/machine-id 的内容,尽管它应该

virt-sysprep命令应清除 的内容,/etc/machine-id因为默认情况下该machine-id步骤被标记(带有*)为启用。至少手册页非常清楚。但是,这种情况不会发生,并且在命令运行后,文件的内容仍然存在,并且文件也不会被删除。

命令:

# virt-sysprep --format qcow2 -a <qcow2 image>

答案1

事实上它的行为有所不同。该machine-id步骤确实默认启用,但它会删除原始内容并生成新内容。它适用于 1 对 1 映像部署。

/etc/machine-id但是,如果您希望在一对多场景中清除 的内容,则必须运行带有--enable machine-id显式指定选项的命令:

# virt-sysprep --format qcow2 --enable machine-id -a <qcow2 image>

然后它会忽略其他步骤,只执行该machine-id步骤,该步骤会变为/etc/machine-id空,因此它是在第一次引导期间生成的。您可以将其作为原始命令的附加命令运行,并使用所有其他默认值。或者您可以向该行添加其他所需的步骤。

编辑:事实上,罪魁祸首是操作customize,它生成新的机器ID,尽管该操作machine-id删除了它。该操作customize默认也是启用的。

RH 知道这一点,并且 RH 将来可能会修复手册页。

也有可能该命令在 RHEL9 或其他发行版上的行为是这样的,我没有尝试过。

相关内容