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

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

または、-nographicモードからモードに切り替えるにはどうすればよい-cursesですか?

回答:


6

libvirtこれを処理する方法を知っています。あなたがインストールする気にしない場合libvirtdvirsh、あなたが使用することができます。

virsh list

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

virsh shutdown guest_001

5

おそらくCtrl- a cそしてsystem_powerdown

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


5

原則として:「system_powerdown」をQEMUモニターに送信すると(他の回答を参照)、ゲストOSに電源を切るように信号が送られます(電源ボタンを押した場合など)。あなたは、設定する必要がありますpowerdown=YES/etc/rc.shutdown、本当に完全にマシンをシャットダウンします。

残念ながら、ここでの実際のセットアップでは、これは実際のハードウェアマシンでは非常にうまく機能しますが、powerdownイベントの受信時にVMがフリーズします。(これはであるQEMU-KVM 1.1.2 on Debian Wheezy/amd64 and OpenBSD 5.5 amd64 GENERIC.SPあなたの代わりに行うことができます送信しているので)、shutdown -h nowまたはhalt -p(OpenBSDの)コンソールに。


0

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


ゲストOSに非ACPIシャットダウンイベントを送信するオプションはありませんか?
cnst

「非ACPIシャットダウンイベント」を定義
dyasny

1
Ctrl-Alt-Del、APMなど
CNST

1
これらはいずれもシャットダウンではありません。電源オフなしでシステムを停止し、再起動してもシャットダウンしません。キーの組み合わせは、QEMUモニターSENDKEYルーチンを経由して送信することができます多分Altキー+ SysRqを+意志の仕事O(私はすべてを停止した後に終了、しかし...でVMを疑うので、それは、APMだ)
dyasny

これらを簡単に送信するにはどうすればよいですか?VMが何をするかは気にしません。ゲストがこれらのいずれかを取得し、適切なアンマウントなどと同期することだけが重要です。
cnst
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.