
Я использую QEMU на Linux без графического интерфейса.
После запуска моего кастомного ядра с помощью 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, если вы можете. Конечно, это проходит через обычную последовательность выключения вместо немедленного уничтожения ВМ, но иногда это просто самый простой подход.Однако это работает не на всех машинах:https://stackoverflow.com/questions/31990487/how-to-cleanly-exit-qemu-after-executing-bare-metal-program-without-user-interve
Протестировано в Ubuntu 17.10, QEMU 2.10.1.
решение2
Чтобы закрыть процесс QEMU в вашей оболочке:
ctrl+a
, затемx
решение3
Нажмите Cntl-Alt-2
и затем используйте кнопку закрытия в меню.
Вы можете найти больше полезных сочетаний клавишздесь
решение4
Это просто в дополнение к другим ответам, где ctrl-a x
работает, но вы сделали псевдоним поверх него. Если вы похожи на меня, вы используете tmux с ctrl-b
замененным на ctrl-a
, поэтому вы не можете использовать ctrl-a x
. Простое решение этой проблемы — использовать send-keys
утилиту tmux для отправки ctrl-a x
в qemu.
В запущенном окне tmux нажмите , ctrl-a :
чтобы открыть командную строку tmux, затем введите , send-keys C-a x Enter
и qemu завершит работу.