如何向QEMU guest虚拟机(OpenBSD)发送关闭事件?


15

我仅使用虚拟化将OpenBSD安装到裸机上,并且在安装过程中,未配置对串行端口的重定向,因此,我最终使系统运行,但无法登录并进行清理关掉。

kvm -m 6144 -smp 4 -drive file=/dev/sda,if=ide \
    -drive file=/dev/sdb,if=scsi -drive file=/dev/sdc,if=scsi \
    -cdrom install52.iso -boot d -nographic

如何向该会话发送关闭事件?AFAIK,Ctrl- a x如此处所示否则a pkill kvm不会执行干净关机。

另外,如何从-nographic模式切换到-curses模式?

Answers:


6

也许Ctrl- a csystem_powerdown

应该可以工作,尽管在我看来似乎不起作用;也许OpenBSD和QEMU ACPI交互不够好。


6

libvirt知道如何处理。如果您不介意安装libvirtdvirsh,则可以使用:

virsh list

显示客人的姓名。并且,要使用name正常关闭来宾guest_001,请使用以下命令:

virsh shutdown guest_001

5

原则上:向QEMU监视器发送“ system_powerdown”(请参阅​​其他答案)将指示来宾OS关闭电源(就像您按下电源按钮一样)。您将需要设置powerdown=YES/etc/rc.shutdown真正完全关闭机器。

不幸的是,在我这里的实际设置中,虽然这对于真实的硬件机器来说非常有效,但是VM在接收到powerdown事件时就冻结了。(这与一起使用QEMU-KVM 1.1.2 on Debian Wheezy/amd64 and OpenBSD 5.5 amd64 GENERIC.SP)因此,您可以做的是发送一个shutdown -h nowhalt -p到(OpenBSD)控制台。


0

qemu将acpi关闭事件发送到VM,如果无法解释此调用,则不会关闭。在Linux中,这意味着您需要运行acpid,对于BSD,我想必须存在类似的东西


没有任何选项可将非ACPI关闭事件发送到来宾OS?
cnst 2012年

定义“非acpi关闭事件”
dyasny 2012年

1
Ctrl-Alt-Del,APM等
cnst 2012年

1
这些都不是关闭。系统在没有关闭电源的情况下停止,并且重新启动不会关闭。也许Alt + SysRQ + o可以正常工作(它是APM,所以我怀疑VM在停止所有操作后是否会终止,但是...)可以通过qemu-monitor sendkey例程发送密码组合
dyasny 2012年

如何快速发送其中任何一个?我不在乎虚拟机做什么;来宾获得其中之一并与适当的上载量和内容进行同步才是重要的。
cnst 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.