Как отправить событие завершения работы гостю QEMU (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как показано здесь или еще pkill kvmне сделал бы полное отключение.

В качестве альтернативы, как я могу переключиться из -nographicрежима в -cursesрежим?

CNST
источник

Ответы:

6

Возможно Ctrl- a cи system_powerdown?

Предполагается, что сработает, хотя в моем случае это не сработало; возможно, OpenBSD и QEMU ACPI недостаточно хорошо взаимодействуют.

CNST
источник
6

libvirtзнает, как справиться с этим. Если вы не против установки libvirtdи virsh, то вы можете использовать:

virsh list

показать имя (имена) гостя (ов). И, чтобы корректно завершить работу гостя с именем guest_001, используйте команду:

virsh shutdown guest_001
Ангел Генчев
источник
5

В принципе: отправка «system_powerdown» на монитор QEMU (см. Другие ответы) будет сигнализировать об отключении гостевой ОС (например, если вы нажали кнопку питания). Вам нужно будет установить powerdown=YESв /etc/rc.shutdownдействительно выключить машину полностью.

К сожалению, в моей реальной установке здесь, хотя это работает довольно хорошо для реальных аппаратных машин, виртуальная машина зависает при получении powerdownсобытия. (Это с QEMU-KVM 1.1.2 on Debian Wheezy/amd64 and OpenBSD 5.5 amd64 GENERIC.SP) Так что вы можете вместо этого отправлять shutdown -h nowили halt -pна (OpenBSD) консоль.

user81513
источник
0

qemu отправляет событие выключения acpi на виртуальную машину, если он не может интерпретировать этот вызов, он не завершит работу. В Linux это означает, что вам нужно запустить ACPID, а для BSD, я полагаю, что-то подобное должно существовать

dyasny
источник
Нет ли вариантов отправки событий отключения не-ACPI в гостевую ОС?
CNST
определить «событие выключения без acpi»
dyasny
1
Ctrl-Alt-Del, APM и т.д.
CNST
1
ни один из них не является отключением. останов системы без отключения питания и перезагрузка не завершаются. Может быть, Alt + SysRQ + o сработает (это APM, поэтому я сомневаюсь, что виртуальная машина с завершением после остановки всего, но ...) комбинация клавиш может быть отправлена ​​с помощью подпрограммы
sendkey
Как я могу отправить любой из них в оснастке? Мне все равно, что делает ВМ; имеет значение только то, что гость получает один из них и выполняет синхронизацию с правильным размонтированием и прочим.
CNST