Вопрос или проблема
На Как запустить Ubuntu 16.04 Desktop на QEMU? я подробно описал, как загрузить и установить образ рабочего стола Ubuntu на QEMU.
Теперь я хотел сделать аналогичную настройку для серверного образа, чтобы попробовать сделать все более минималистичным:
wget http://releases.ubuntu.com/18.04/ubuntu-18.04.1.0-live-server-amd64.iso
Я ранее устанавливал серверный образ с графическим интерфейсом, и установка, похоже, основана на тексте, поэтому я подумал, что это может сработать.
Но потом, если я просто добавлю обычные параметры:
-nographic -serial mon:stdio
как в:
qemu-system-x86_64 -cdrom ubuntu-18.04.1.0-live-server-amd64.iso \
-drive file=ubuntu-18.04.1.0-live-server-amd64.img.qcow2,format=qcow2 \
-enable-kvm -m 2G -smp 2 -vga virtio -nographic -serial mon:stdio
я просто никогда не получаю ничего на терминальном сериальном порту.
Я также пытался смонтировать образ, чтобы посмотреть, что внутри:
mkdir mydir
sudo mount ubuntu-18.04.1.0-live-server-amd64.iso mydir
чтобы посмотреть, что внутри, и:
cat mydir/boot/grub/grub.cfg
указывает на то, что в командной строке нет параметра console=ttyS0
, что может объяснить, почему терминал пуст.
Я не могу редактировать файл ISO, однако, не войдя сначала в сеанс графического интерфейса, так как он смонтирован только для чтения.
Я уже использовал облачный образ ранее, и он отличный: Существует ли готовый образ QEMU Ubuntu (32 бита) онлайн?, но я не могу использовать его на этот раз, потому что мне нужен GRUB для чего-то (редактировать: не обращайте внимания, облачный образ действительно имеет GRUB, просто он по умолчанию скрыт, см. Как получить доступ к меню GRUB во время загрузки, используя последовательный порт? )
Связано: Как получить доступ к меню GRUB во время загрузки, используя последовательный порт? Мне удалось заставить GRUB отображаться на терминале после изменения конфигурации GRUB с графическим интерфейсом, как показано в этой теме.
Тестировалось на хосте Ubuntu 16.04.
Есть такой параметр, который вы можете передать qemu:
-display curses
Отображение видео вывода через curses. Для моделей графических устройств, которые поддерживают текстовый режим, QEMU может отображать этот вывод, используя интерфейс curses/ncurses. Ничего не отображается, когда графическое устройство находится в графическом режиме или если графическое устройство не поддерживает текстовый режим. Обычно только модели VGA поддерживают текстовый режим.
Но я предполагаю, что это не решит проблему, и это не решение для ваших или чьих-либо других проблем.
Ответ или решение
Чтобы запустить и установить образ сервера Ubuntu на QEMU в текстовом режиме без графического интерфейса, воспользуйтесь подробной инструкцией, описанной ниже. Мы рассмотрим, как правильно настроить QEMU для работы с серверным образом Ubuntu, обеспечив вывод на серийный порт.
Шаг 1: Скачивание ISO-образа
Перед началом установки убедитесь, что у вас есть корректный ISO-образ сервера Ubuntu. Вы можете скачать его с официального сайта Ubuntu. Для этого выполните:
wget http://releases.ubuntu.com/18.04/ubuntu-18.04.1-live-server-amd64.iso
Шаг 2: Подготовка экземпляра QEMU
Создайте виртуальный диск, на который будет установлено Ubuntu. Это можно сделать с помощью команды qemu-img
:
qemu-img create -f qcow2 ubuntu-18.04-server.img 20G
Теперь у вас есть виртуальный диск размером 20 ГБ.
Шаг 3: Запуск QEMU с настройками для текстового вывода
Чтобы правильно сконфигурировать QEMU, запустите следующий команду. Обратите внимание на параметры, которые позволяют использовать серийный порт для вывода информации:
qemu-system-x86_64 -cdrom ubuntu-18.04.1-live-server-amd64.iso \
-drive file=ubuntu-18.04-server.img,format=qcow2 \
-enable-kvm -m 2G -smp 2 -nographic \
-serial mon:stdio \
-append "console=ttyS0"
Разбор ключевых параметров:
-cdrom
: указывает путь к ISO-образу.-drive
: используется для указания виртуального диска, на который будет устанавливать ОС.-enable-kvm
: активирует аппаратную виртуализацию для повышения производительности.-m
и-smp
: задают объём оперативной памяти и количество процессоров соответственно.-nographic
: отключает графический вывод и адаптирует вывод в текстовом режиме.-serial mon:stdio
: перенаправляет вывод серийного порта в стандартный ввод/вывод вашего терминала.-append "console=ttyS0"
: указывает ядру работать с серийным портом, что позволяет получить доступ к консоли установки через QEMU.
Шаг 4: Процесс установки
После запуска QEMU вы должны увидеть текстовый интерфейс установки. Следуйте инструкциям на экране, чтобы завершить установку сервера Ubuntu.
Шаг 5: Завершение установки
После успешной установки и первой загрузки ОС можно будет настроить систему по вашему усмотрению. Если возникнут проблемы с доступом к консоли, убедитесь, что на этапе загрузки добавлено поле console=ttyS0
в конфигурацию загрузчика GRUB.
Дополнительные рекомендации
Если вам необходимо редактировать конфигурацию GRUB или настроить другие параметры, убедитесь, что ваш ISO-образ загружается с использованием опции -append "console=ttyS0"
, чтобы получить доступ к текстовым меню.
Если вы предпочтете использовать -display curses
, это также может способствовать отображению меню через консоль, однако использование -nographic
и серийного порта чаще приводит к лучшему результату в текстовых режимах.
Теперь, следуя этим шагам, вы сможете успешно запустить и установить серверный образ Ubuntu на QEMU без использования графического интерфейса.