我在没有 GUI 的 Linux 上运行 QEMU。
使用 QEMU 运行启动我的自定义内核后,我无法通过按 Ctrl+C 来终止并返回主机。
有什么办法可以回到主机操作系统吗?
答案1
Ctrl-A X
只需-nographic
输入:
Ctrl-A X
意思是
- 第一次按下Ctrl + A(A 只是键a,而不是alt键),
- 然后松开琴键,
- 然后按X。
或者:
进入 QEMU 监视器然后
Ctrl-A C
输入:quit
然后按 Enter。另请参阅:https://stackoverflow.com/questions/14165158/how-to-switch-to-qemu-monitor-console-when-running-with-curses
使用 QEMU 监视器 (与 相同
Ctrl-A C
)telnet
:qemu-system-x86_64 -monitor telnet::45454,server,nowait -serial mon:stdio
在主机终端上:
telnet localhost 45454
然后
quit
从那里。-serial mon:stdio
需要保持 Ctrl+C 正常工作:https://stackoverflow.com/questions/49716931/how-to-run-qemu-with-nographic-and-monitor-but-still-be-able-to-send-ctrlc-to/49751144#49751144从客户机正常关闭虚拟机,例如,
powerdown
如果可以的话,使用 Linux 客户机 shell 中的命令。这当然会按照正常关闭顺序进行,而不是立即关闭虚拟机,但有时这只是最简单的方法。
在 Ubuntu 17.10、QEMU 2.10.1 中测试。
答案2
要在你的 shell 中关闭 QEMU 进程:
ctrl+a
, 然后x
答案3
答案4
这只是对其他答案的补充, wherectrl-a x
有效,但您已对其进行了别名处理。如果您像我一样,则使用 tmuxctrl-b
替换ctrl-a
,这就是为什么您不能使用ctrl-a x
。一个简单的解决方案是使用 tmux 的send-keys
实用程序发送ctrl-a x
到 qemu。
在正在运行的 tmux 窗口中,按ctrl-a :
下调出 tmux 提示符,然后输入send-keys C-a x Enter
,qemu 将退出。