gpt4 book ai didi

linux - 重启时关闭 ("destroy") libvirt VM

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:54:16 25 4
gpt4 key购买 nike

有一段时间,我在使用 virt-install在 libvirt 虚拟机上安装操作系统。我了解到该操作系统具有自动安装程序功能,需要使用第二张 CD-ROM(将有关所需配置的信息提供给安装程序),但我发现 virt-install不幸的是,除了一个--cdrom,其他都忽略了争论。我想出的替代方案是输出 VM 配置 virt-install 使用 --print-xml 将一张 CD-ROM 用于一个文件参数,编辑该文件以添加第二个 CD-ROM,然后使用 virsh create <xml config file> .

当我使用 virt-install 时之前,VM 在安装结束时自行重启,virt-install会注意到并关闭(“销毁”)虚拟机而不是让它重新启动,给我留下一个干净的安装磁盘镜像。但是,现在当 VM 在完成安装后重新启动时,它实际上会再次启动而不是干净地关闭,所以我无法以编程方式判断安装何时完成。重新启动后它看起来像一样 qemu-system-x86_64正在使用进程,所以我也无法使用它来判断安装何时完成。

我如何强制 libvirt 关闭(“销毁”)虚拟机而不是重新启动 virt-install做过?或者,我可以使用其他一些指示器来判断是否发生了 VM 重启?

最佳答案

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

$ 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 中模拟行为的目标:

$ virsh event domain1 --event restart
event 'reboot' for domain -
events received: 1
$ virsh destroy domain1

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

关于linux - 重启时关闭 ("destroy") libvirt VM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27830038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com