Как запустить qemu прямо в консоли (* не * в curses или SDL)
Кажется, я помню возможность запуска qemu только с вывода эмулятора терминала, с отключенным графическим окном. И здесь я не имею в виду интерфейс ncurses, который хорош, но я хочу, чтобы вывод перетекал прямо в мой терминал, чтобы упростить вырезание и вставку.
Я пытался:
qemu -nographic binary.img # simply no display
qemu -curses binary.img # nice text output, but not directly flowing in the terminal
qemu -noframe -curses binary.img # same as above
qemu -nographic -curses binary.img
Я предполагаю, что приемлемый обходной путь был бы для меня, чтобы иметь возможность изменить размер консоли curses, чтобы соответствовать терминалу, который я использую. Прямо сейчас это раздражает, потому что это не соответствует размеру терминала...
qemu -curses binary.img
SeaBIOS (version 1.7.0-20120603_194846-gandalf)
iPXE (http://ipxe.org) 00:03.0 C900 PCI2.10 PnP PMM+07FC86A0+07F886A0 C900
Booting from Hard Disk...
[...]
Обратите внимание, как на дисплее с отступом 12 пробелов? Раздражает.:)
3 ответа
Старый вопрос, но он все еще может заинтересовать людей.
Короткий ответ:
qemu -nographic -serial mon:stdio -append 'console=ttyS0' binary.img
ttyS0
действует на большинстве ПК. это было бы что-то другое в системе ARM.
Затем последовательный порт и QEMU мультиплексируются на вашем выходе. Вы можете переключаться между ними с помощью ctrl-A + C + ENTER
,
Длинный ответ: проверьте этот блог, это круто.
Установите SGABIOS - ISTR, чтобы последние версии Qemu использовали его автоматически при запуске с -nographic
,
Вы можете обновить GRUB, чтобы передать необходимые параметры ядру. Я использую Ubuntu 18.04, и я сделал следующее:
Обновление grub в гостевой ОС:
sudoedit /etc/default/grub
- + Изменить
GRUB_CMDLINE_LINUX=""
вGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
- бежать
sudo update-grub
Перезагрузите гостевую ОС, используя следующее:
qemu-system-x86_64 \
-drive file=ubuntu-18.04-live-server-amd64.img.qcow2,format=qcow2 \
-nographic \
-m 4G \
;
Я рекомендую добавить -nic user,hostfwd=tcp:127.0.0.1:2222-:22
или аналогичный в качестве опции, это позволит подключиться через SSH через ssh -p 2222 localhost
что дает немного более приятный интерфейс, чем у консоли.
Параметры консоли скопированы из удаленного последовательного HOWTO tldp