Миграция с bare metal Ubuntu Server на KVM или VirtualBox не загружается?

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

У меня была установка сервера Ubuntu на голом железе. Я создал полный образ диска с помощью dd и конвертировал его в qcow2.

qemu-img convert -O qcow2 full_disk.dd.img full_disk.qcow2

Затем я установил свежую Ubuntu Server 22.04 на эту машину.
Позже я хотел импортировать диск с помощью virt-install:

virt-install --name guest-host --memory 16384 --vcpus 4 --disk path=/var/lib/libvirt/images/full_disk.qcow2,format=qcow2 --os-variant ubuntu22.04 --network network=default --graphics none --import

После этого «консоль» запускается без вывода. qemu-system-x86 работает с 100% загрузкой процессора (на одном ядре) почти бесконечно.
Я могу подключиться с помощью:

virsh --connect qemu:///system console guest-host

но все равно нет вывода. (Я могу выйти с помощью Ctrl+])

virsh edit guest-host

содержит:

    <serial type="pty">
      <target type="isa-serial" port="0">
        <model name="isa-serial"/>
      </target>
    </serial>
    <console type="pty">
      <target type="serial" port="0"/>
    </console>
--extra-args="console=ttyS0"

аргумент не принимается для импорта.

ОШИБКА: Аргументы ядра поддерживаются только с location или kernel установками.

Я попытался отредактировать grub.cfg для использования серийного вывода, но по-прежнему не получаю никакого вывода.

Я также пытался импортировать в VirtualBox. Там он застрял на “Booting from Local Disk…”.

Это сбивает с толку, поскольку он использует постоянные 100% загрузки процессора. В какой-то момент виртуальная машина должна быть неактивной. VirtualBox не может загрузиться. Я не могу видеть, делает ли виртуальная машина что-либо под KVM (поскольку нет вывода).

Чтобы протестировать в графической среде (virt-manager), я попробовал те же шаги на своем ноутбуке. Похоже, я не могу изменить настройки прошивки и чипсета.
virt-manager обзор скриншота

PS: Я удалил предыдущий вопрос, потому что теперь думаю, что он вообще не загружается.

Не могу комментировать, слишком низкая репутация.

Вы проверяли загрузку EFI / BIOS?

Я думаю, по умолчанию KVM использует загрузку BIOS. Если в оригинальной ОС есть только EFI загрузочные файлы/раздел, то это не будет работать.

Ответ или решение

Проблема с миграцией вашего Ubuntu Server c bare metal на KVM или VirtualBox и последующей неудачной загрузкой может быть связана с несколькими факторами, включая разницу в средах исполнения (железо/виртуальная машина) и настройки загрузки. Рассмотрим ключевые моменты, которые могут быть причиной ваших трудностей.

Теория

Загрузка BIOS против UEFI: Одна из наиболее вероятных причин ваших проблем связана с разницей между использованием BIOS и UEFI для загрузки. Многие современные системы используют UEFI вместо традиционного BIOS, но KVM по умолчанию может использовать BIOS. Если оригинальная ОС была установлена с UEFI, то при миграции в виртуальную машину, использующую BIOS, возникнут проблемы с загрузкой.

Вывод на консоль: Отсутствие вывода на консоль может быть связано с некорректной конфигурацией консольного вывода в Grub или в настройках виртуальной машины. Скорее всего, система загружается, но вы не видите вывода из-за неверно настроенного вывода на serial порт.

Загрузка ядра и использование ресурсов: Высокая нагрузка на CPU может свидетельствовать о том, что виртуальная машина пытается выполнить какие-то процессы, но не может успешно завершить определенные этапы загрузки. Возможные причины включают несовместимость драйверов или некорректные настройки аппаратной виртуализации.

Пример

Вы упомянули, что пытались изменить grub.cfg для использования вывода на serial, но безуспешно. Важно убедиться, что изменения были внесены в правильный файл и правильно отразили изменения, например:

GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,115200n8"
GRUB_TERMINAL=serial

После внесения изменений необходимо выполнить update-grub для их применения.

Применение

  1. Проверка режима загрузки: Убедитесь, что виртуальная машина настроена на соответствующий режим (BIOS или UEFI). Для KVM это можно сделать через virt-manager или к командной строке libvirt, для VirtualBox это выполняется через настройки виртуальной машины.

  2. Редактирование Grub для консольного вывода: Убедитесь, что Grub настроен на вывод на правильный serial-порт. Это особенно важно, если доступ к графическому интерфейсу отсутствует и приходится полагаться на текстовые консоли.

  3. Проверка формата образа диска: Убедитесь, что образ qcow2 корректно создан и не повредился при конвертации. Используйте команды проверки, например, qemu-img check full_disk.qcow2.

  4. Использование тестовой среды: Попробуйте создать тестовую виртуальную машину с новой инсталляцией Ubuntu, чтобы проверить работоспособность вашего гипервизора или VirtualBox перед импортом старого образа.

Следуя этим рекомендациям, вы сможете выявить и устранить проблемы, влияющие на успешную загрузку мигрированной системы, и обеспечить ее работу в виртуальной среде.

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

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