¿Cómo envío un evento de cierre a un invitado QEMU (OpenBSD)?

15

Estoy usando la virtualización únicamente para instalar OpenBSD en el hardware desnudo, y durante la instalación, la redirección al puerto serie no se configuró, así que terminé con el sistema en funcionamiento, pero no había forma de iniciar sesión y hacer una limpieza apagar.

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

¿Cómo puedo enviar un evento de apagado a esta sesión? Que yo sepa, Ctrl- a xcomo se muestra aquí, o una pkill kvmno haría un apagado limpio todavía.

Alternativamente, ¿cómo puedo cambiar del -nographicmodo al -cursesmodo?

cnst
fuente

Respuestas:

6

Quizás Ctrl- a cy system_powerdown?

Se supone que funciona, aunque no pareció funcionar en mi caso; quizás OpenBSD y QEMU ACPI no interactúan lo suficientemente bien.

cnst
fuente
6

libvirtsabe cómo manejar esto. Si no le importa instalar libvirtdy virsh, puede usar:

virsh list

para mostrar los nombres de los invitados. Y, para cerrar con gracia el invitado con nombre guest_001, use el comando:

virsh shutdown guest_001
Angel Genchev
fuente
5

En principio: el envío de "system_powerdown" al monitor QEMU (ver otras respuestas) indicará que el SO huésped se apague (como si presionara el botón de encendido). Usted tendrá que establecer powerdown=YESen /etc/rc.shutdownque realmente apagar la máquina por completo.

Desafortunadamente, en mi configuración real aquí, si bien esto funciona bastante bien para máquinas de hardware real, la VM se congela al recibir un powerdownevento. (Esto es con QEMU-KVM 1.1.2 on Debian Wheezy/amd64 and OpenBSD 5.5 amd64 GENERIC.SP) Entonces, lo que puede hacer es enviar un shutdown -h nowo halt -pa la consola (OpenBSD).

usuario81513
fuente
0

qemu envía un evento de apagado acpi a la VM, si no puede interpretar esta llamada, no se apagará. En Linux, esto significa que necesita una ejecución rápida, en cuanto a BSD, supongo que debe existir algo similar

dyasny
fuente
¿No hay opciones para enviar eventos de cierre que no sean ACPI al SO huésped?
cnst
definir "evento de cierre no acpi"
dyasny
1
Ctrl-Alt-Del, APM, etc.
cnst
1
Ninguno de estos es un cierre. el sistema se detiene sin apagado y el reinicio no se apaga. Tal vez Alt + SysRQ + o funcione (es APM, por lo que dudo que la VM termine después de detener todo, pero ...) la combinación de teclas se puede enviar a través de la rutina de envío de qemu-monitor
dyasny
¿Cómo envío alguno de estos en un instante? No me importa lo que haga la máquina virtual; solo importa que el invitado obtenga uno de estos, y se sincronice con el montaje adecuado y esas cosas.
cnst