Comment envoyer un événement d'arrêt à un invité QEMU (OpenBSD)?

15

J'utilise la virtualisation uniquement pour installer OpenBSD sur le matériel nu, et pendant l'installation, la redirection vers le port série n'a pas été configurée, donc, je me suis retrouvé avec le système en marche, mais aucun moyen de se connecter et de faire un nettoyage fermer.

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

Comment envoyer un événement d'arrêt à cette session? AFAIK, Ctrl- a xcomme indiqué ici ou un pkill kvmne ferait pas encore un arrêt propre.

Sinon, comment puis-je passer du -nographicmode au -cursesmode?

cnst
la source

Réponses:

6

Peut Ctrl- être - a cet system_powerdown?

Censé fonctionner, même si cela ne semblait pas fonctionner dans mon cas; peut-être qu'OpenBSD et QEMU ACPI n'interagissent pas assez bien.

cnst
la source
6

libvirtsait comment gérer cela. Si cela ne vous dérange pas d'installer libvirtdet virsh, vous pouvez utiliser:

virsh list

pour afficher le nom du ou des invités. Et, pour arrêter gracieusement l'invité avec le nom guest_001, utilisez la commande:

virsh shutdown guest_001
Angel Genchev
la source
5

En principe: L'envoi de "system_powerdown" au moniteur QEMU (voir les autres réponses) signalera au système d'exploitation invité de s'éteindre (comme si vous avez appuyé sur le bouton d'alimentation). Vous aurez besoin de mettre powerdown=YESen /etc/rc.shutdownvraiment fermer complètement la machine.

Malheureusement, dans ma configuration actuelle, bien que cela fonctionne assez bien pour de vraies machines matérielles, le gel de la machine virtuelle lors de la réception d'un powerdownévénement. (C'est avec QEMU-KVM 1.1.2 on Debian Wheezy/amd64 and OpenBSD 5.5 amd64 GENERIC.SP) Donc, ce que vous pouvez faire à la place, c'est envoyer un shutdown -h nowou halt -pvers la console (OpenBSD).

user81513
la source
0

qemu envoie un événement d'arrêt acpi à la machine virtuelle, s'il ne peut pas interpréter cet appel, il ne s'arrêtera pas. Sous Linux, cela signifie que vous avez besoin d'un fonctionnement acpid, comme pour BSD, je suppose que quelque chose de similaire doit exister

Dyasny
la source
N'existe-t-il aucune option pour envoyer des événements d'arrêt non ACPI au système d'exploitation invité?
2012 à 6h44
définir "événement d'arrêt non acpi"
dyasny
1
Ctrl-Alt-Del, APM etc.
2012 à 7h59
1
rien de tout cela n'est un arrêt. l'arrêt du système sans mise hors tension et un redémarrage ne sont pas arrêtés. Peut-être que Alt + SysRQ + o fonctionnera (c'est APM, donc je doute que la machine virtuelle avec termine après avoir tout arrêté, mais ...) la combinaison de touches peut être envoyée via la routine qemu-monitor sendkey
dyasny
Comment envoyer tout cela en un clin d'œil? Je me fiche de ce que fait la VM; il importe seulement que l'invité en reçoive un et fasse une synchronisation avec le nombre et les éléments appropriés.
2012 à 20h13