关闭("销毁")libvirt VM重启时

时间:2015-01-07 22:45:49

标签: linux ubuntu kvm libvirt

有一段时间,我正在使用virt-install在libvirt VM上安装操作系统。我了解到操作系统具有自动安装程序功能,需要使用第二张CD-ROM(向安装程序提供有关所需配置的信息),但我发现virt-install忽略了除--cdrom之外的所有内容参数。我提出的替代方法是使用virt-install参数将VM配置--print-xml 仅使用一张CD-ROM输出到文件,编辑该文件以添加第二张CD-ROM,然后使用virsh create <xml config file>

当我之前使用virt-install时,VM会在安装结束时重新启动,而virt-install会注意并关闭(“销毁”)VM,而不是让它重新启动,留下我安装好的干净磁盘映像。但是,现在当VM在完成安装后重新启动时,它实际上会再次启动,而不是干净地关闭,因此我无法以编程方式告知安装何时完成。重新启动后,看起来正在使用相同的qemu-system-x86_64进程,因此我也无法使用它来判断安装何时完成。

如何强制libvirt关闭(“销毁”)VM而不是重新启动virt-install的方式?或者,我是否可以使用其他指示器来判断是否已发生VM重启?

1 个答案:

答案 0 :(得分:1)

虽然似乎没有办法在重新启动时通过virsh create的特殊咒语或通过更改域XML文件中的选项来自动销毁libvirt VM,但我偶然发现了非常有用的{{1命令:

virsh event

该命令将阻塞,直到指定域发生指定类型的事件。这使我能够通过以下方式实现我在$ virsh help event NAME event - (null) SYNOPSIS event [<domain>] [<event>] [--all] [--loop] [--timeout <number>] [--list] DESCRIPTION List event types, or wait for domain events to occur OPTIONS [--domain] <string> filter by domain name, id, or uuid [--event] <string> which event type to wait for --all wait for all events instead of just one type --loop loop until timeout or interrupt, rather than one-shot --timeout <number> timeout seconds --list list valid event types 中模仿行为的目标:

virt-install

它甚至给我一个内置的超时机制!