Как загрузить и установить образ сервера Ubuntu на QEMU -nographic без графического интерфейса?

Вопрос или проблема

На Как запустить 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 без использования графического интерфейса.

Оцените материал
Добавить комментарий

Капча загружается...