QEMUゲスト(OpenBSD)に終了イベントを送信するには?

QEMUゲスト(OpenBSD)に終了イベントを送信するには?

仮想化を使用してベアハードウェアにのみ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

答え1

たぶんCtrla cそしてsystem_powerdown

私の場合はうまくいかないようですが、うまくいくはずです。おそらく、OpenBSDとQEMU ACPIが十分に対話していない可能性があります。

答え2

libvirtこの問題を解決する方法を学びます。インストールしlibvirtdても問題ない場合は、virsh次のものを使用できます。

virsh list

ゲストの名前を表示します。そして name のゲストを正常に終了するには、guest_001次のコマンドを使用します。

virsh shutdown guest_001

答え3

原則として、QEMUモニターに「system_powerdown」(他の回答を参照)を送信すると、ゲストOSに電源を切るように指示されます(電源ボタンを押したときと同様)。実際にマシンを完全にシャットダウンする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)コンソールに送信することです。

答え4

qemu は acpi 終了イベントを VM に送信し、この呼び出しを解釈できない場合は終了しません。 Linuxでは、これはacpidの実行が必要であることを意味します。 BSDの場合、似たようなものが必要だと思います。

関連情報