-ngraphicを使用してqemuを実行するときにCtrl-Cをゲストに渡すにはどうすればよいですか?

-ngraphicを使用してqemuを実行するときにCtrl-Cをゲストに渡すにはどうすればよいですか?

Qemu の grub を次のように構成しました。

GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial"
GRUB_CMDLINE_LINUX="..console=ttyS0"

コマンドラインオプションを使用してqemuプロセスを実行します-nographic。これにより、現在の端末をシリアルコンソールおよびqemuモニタコンソールに使用できます。ただし、現在実行中の仮想マシン内で+を押すたびにCtrl傍受され、プロセスは終了します。Cqemu

Ctrl+CまたはQemuに関連する他のキーストロークをどのように渡しますかCTRL

答え1

シェルで qemu を実行する前に、「stty intr ^]」を実行して break キーを ^c から ctrl-] に変更してください。

このようにして、ctrl-cはqemuに渡されますが、ctrl-]を押してqemu自体を中断することができます。

答え2

sendkeyこのコマンドを試してみてください-monitor stdio。もちろん、このオプションはゲストに-display none -serial mon:stdio渡す必要があります。Ctrlc

以下を生成することもできます。監視装置ソケットは次のとおりです。

qemu -display none -monitor unix:/tmp/qemu-monitor,server,nowait

次に、sendkeyを使用するためにモニターにsocat次のように接続します。

socat - UNIX-CONNECT:/tmp/qemu-monitor

これで、次のようにキーを送信できます。

(qemu) sendkey ctrl-c
sendkey ctrl-c

答え3

削除-monitorまたは追加-serial mon:stdio

QEMU 2.10.1以降、Ubuntu 17.10をCtrl-C使用しています-nographic

ただし、そのオプションも使用すると-monitor動作が変更され、Ctrl-CQEMUが終了します。

-monitor一般的に使用される方法は次のとおりです。-ngraphicsを使用してQEMUコントロールパネルに切り替えるには? |スーパーユーザー

必要に-monitor応じて、Ctrl + Cを使用して次のものを復元できます-serial mon:stdio-ngraphicと-monitorを使用してqemuを実行しながら、ゲストにCtrl + Cを送信し、Ctrl + AXを使用して終了するにはどうすればよいですか? |スタックオーバーフロー

関連情報