Como envio um evento de desligamento para um convidado do QEMU (OpenBSD)?

15

Estou usando a virtualização apenas para instalar o OpenBSD no hardware básico e, durante a instalação, o redirecionamento para a porta serial não foi configurado; portanto, acabei com o sistema em execução, mas não havia como fazer o login e fazer uma limpeza. desligar.

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

Como posso enviar um evento de desligamento para esta sessão? AFAIK, Ctrl- a xcomo mostrado aqui ou a pkill kvmainda não faria um desligamento limpo.

Como alternativa, como posso alternar do -nographicmodo para o -cursesmodo?

cnst
fonte

Respostas:

6

libvirtsabe como lidar com isso. Se você não se importa em instalar libvirtde virsh, pode usar:

virsh list

para mostrar o nome do (s) hóspede (s). E, para encerrar normalmente o convidado com nome guest_001, use o comando:

virsh shutdown guest_001
Angel Genchev
fonte
5

Talvez Ctrl- a ce system_powerdown?

Deveria funcionar, embora não parecesse funcionar no meu caso; talvez o OpenBSD e o QEMU ACPI não interajam suficientemente bem.

cnst
fonte
5

Em princípio: enviar "system_powerdown" para o monitor QEMU (consulte outras respostas) sinalizará o desligamento do SO convidado (como se você apertasse o botão liga / desliga). Você precisará definir powerdown=YESem /etc/rc.shutdownque realmente desligar a máquina completamente.

Infelizmente, na minha configuração atual aqui, enquanto isso funciona muito bem para máquinas de hardware reais, o congelamento da VM ao receber um powerdownevento. (Isso é com QEMU-KVM 1.1.2 on Debian Wheezy/amd64 and OpenBSD 5.5 amd64 GENERIC.SP) Então, o que você pode fazer é enviar um shutdown -h nowou halt -ppara o console (OpenBSD).

user81513
fonte
0

O qemu envia um evento de desligamento ACPI para a VM; se não puder interpretar esta chamada, não será encerrado. No Linux, isso significa que você precisa de execução ácida, como no BSD, suponho que algo semelhante deva existir

dyasny
fonte
Não há opções para enviar eventos de desligamento que não sejam da ACPI para o SO convidado?
CNST
definir "evento de desligamento sem acpi"
dyasny 08/12/12
1
Ctrl-Alt-Del, APM etc.
cnst
1
nada disso é um desligamento. o sistema pára sem desligar e uma reinicialização não é encerrada. Talvez Alt + SysRq + o trabalho vontade (é APM, por isso duvido que a VM com terminar depois de parar tudo, mas ...) a combinação de teclas podem ser enviadas através do qemu-monitor de Sendkey rotina
dyasny
Como envio um desses em um piscar de olhos? Eu não ligo para o que a VM faz; importa apenas que o hóspede consiga uma dessas opções e faça uma sincronização com a quantidade e o material adequados.
CNST