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
このセッションにシャットダウンイベントを送信するにはどうすればよいですか?私の知る限り、 Ctrl-ax 示されているように here またはpkill kvm
はまだクリーンシャットダウンを行いません。
または、-nographic
モードに-curses
モード?
libvirt
はこれを処理する方法を知っています。 libvirtd
とvirsh
をインストールしてもかまわない場合は、以下を使用できます。
virsh list
ゲストの名前を表示します。また、guest_001
という名前のゲストを正常にシャットダウンするには、次のコマンドを使用します。
virsh shutdown guest_001
たぶん Ctrl-ac およびsystem_powerdown
?
私の場合は機能していないようですが、機能すると思われます。おそらくOpenBSDとQEMU ACPIは十分に相互作用しません。
原則として、「system_powerdown」をQEMUモニターに送信すると(他の回答を参照)、ゲストOSに電源をオフにするように通知します(電源ボタンを押した場合など)。マシンを完全にシャットダウンするには、powerdown=YES
に/etc/rc.shutdown
を設定する必要があります。
残念ながら、ここでの実際のセットアップでは、これは実際のハードウェアマシンでは非常にうまく機能しますが、VMはpowerdown
イベントを受信するとフリーズします。 (これはQEMU-KVM 1.1.2 on Debian Wheezy/AMD64 and OpenBSD 5.5 AMD64 GENERIC.SP
を使用しています)したがって、代わりにshutdown -h now
またはhalt -p
を(OpenBSD)コンソールに送信することができます。
qemuは、acpiシャットダウンイベントをVMに送信します。この呼び出しを解釈できない場合、シャットダウンしません。 Linuxでは、これは、acpidを実行する必要があることを意味します。BSDの場合と同様に、同様のものが存在しているはずです。