web-dev-qa-db-ja.com

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

このセッションにシャットダウンイベントを送信するにはどうすればよいですか?私の知る限り、 Ctrl-ax 示されているように here またはpkill kvmはまだクリーンシャットダウンを行いません。

または、-nographicモードに-cursesモード?

15
cnst

libvirtはこれを処理する方法を知っています。 libvirtdvirshをインストールしてもかまわない場合は、以下を使用できます。

virsh list

ゲストの名前を表示します。また、guest_001という名前のゲストを正常にシャットダウンするには、次のコマンドを使用します。

virsh shutdown guest_001
6
Angel Genchev

たぶん Ctrl-ac およびsystem_powerdown

私の場合は機能していないようですが、機能すると思われます。おそらくOpenBSDとQEMU ACPIは十分に相互作用しません。

6
cnst

原則として、「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)コンソールに送信することができます。

5
user81513

qemuは、acpiシャットダウンイベントをVMに送信します。この呼び出しを解釈できない場合、シャットダウンしません。 Linuxでは、これは、acpidを実行する必要があることを意味します。BSDの場合と同様に、同様のものが存在しているはずです。

0
dyasny