Как использовать qemu для запуска не-gui OS на терминале?
Я хочу запустить некоторые программы на высокопроизводительном компьютере (с 8-ядерным процессором) в моем отделе. Теперь я использую эту машину с помощью ssh с помощью терминала. На нем установлен Red Hat Linux. Но мои программы должны запускаться на Solaris. Я использую Nexenta Solaris для x86.
Можно использовать qemu для запуска Nexenta Solaris на этой машине через терминал. Мне нужно убедить администратора, что он может, иначе он не будет устанавливать qemu на этом компьютере и, следовательно, позволит мне использовать Solaris через виртуальную машину. Также обратите внимание, что я не использую GUI с Nexenta Solaris, просто командной строкой. В моей машине я использую VMware для ее запуска.
Ответы
Ответ 1
Вы можете скомпилировать qemu для себя и установить его в свой домашний каталог. Не будет никакого ускорителя qemu в режиме ядра, но qemu будет работать, и скорость будет довольно высокой.
У Qemu есть два варианта запуска non-gui: http://wiki.qemu.org/download/qemu-doc.html
Параметры отображения:
-nographic
- Обычно QEMU использует SDL для вывода VGA-выхода. С помощью этой опции вы можете полностью отключить графический вывод, чтобы QEMU был простым приложением командной строки. Эмулируемый последовательный порт перенаправляется на консоль. Поэтому вы можете использовать QEMU для отладки ядра Linux с помощью последовательной консоли.
-curses
- Обычно QEMU использует SDL для вывода VGA-выхода. С помощью этой опции QEMU может отображать выход VGA в текстовом режиме с использованием интерфейса curses/ncurses. Ничего не отображается в графическом режиме.
Также он может отправлять графический вывод на другой компьютер по протоколу VNC (-vnc
)
Ответ 2
-append 'console=ttyS0'
также был необходим для ядра Linux, кроме -nographic
, упомянутого osgx, как в:
qemu-system-x86_64 -kernel bzImage \
-initrd rootfs.cpio.gz \
-nographic \
-append 'console=ttyS0'
К сожалению, -append 'console=ttyS0'
требует, чтобы -kernel bzImage
работал, поэтому мне не удалось использовать его с -cdrom distro.iso
.
Это можно легко протестировать с помощью Buildroot qemu_x86_64_defconfig
.
Протестировано на Ubuntu 14.04.
Ответ 3
Я боролся с этим некоторое время и, наконец, понял, как заставить его работать для меня:
Необходимо установить SGABIOS. Интересно, что этот BIOS не включен в пакет debian qemu, поэтому вам нужно его установить (как суперпользователь):
apt install sgabios
Затем, когда вы запустите qemu, используйте опцию -device, чтобы сообщить виртуальной машине использовать sga-выход
qemu-system-i386 -nographic -device sga discimage.bin
Voila! отлично работает над ssh как с монитором, так и с текстовым выходом, отправленным через stdio. Вы можете получить доступ к qemu-монитору с помощью C-a c.
cheers, ben