Как перенести сервер Ubuntu с физического оборудования на KVM с доступом к консоли?

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

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

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

Затем я установил свежую серверную версию Ubuntu 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 ubuntu20.04 --network network=default --graphics none --import

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

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

но всё равно вывода нет.

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"

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

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

Что я делаю не так? Как узнать, работает ли гостевая ОС на самом деле?

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

Для того чтобы переместить физический сервер Ubuntu на платформу KVM и обеспечить доступ к консоли, необходимо разобраться с несколькими важными аспектами. Давайте рассмотрим текущий подход и предложим решения для устранения возникших проблем.

Теория

Перемещение операционной системы с физического носителя на виртуальную среду требует тщательной настройки, особенно когда дело касается фактора консоли, которая обеспечивает взаимодействие с гостевой системой. Ключевые моменты:

  1. Конвертация диска: Вы правильно выполнили конвертацию образа диска с использованием qemu-img. Однако, случается, что конфигурация или драйвера после переноса требуют дополнительных действий для правильной работы в виртуализованной среде.

  2. Консольный доступ: Чаще всего настройка консольного доступа требует корректного указания параметров загрузки системы, таких как console=ttyS0. Эти параметры указывают ядру использовать конкретный терминал для вывода сообщений.

  3. Производительность: Когда виртуальная машина использует 100% CPU на одном ядре, это может быть признаком конфликта аппаратных ресурсов или некорректной настройки виртуального оборудования (например, недостаточно выделенной памяти или проблем с сетевым адаптером).

Пример

Рассмотрим несколько шагов, которые можно предпринять для решения вашей задачи:

  1. Проверка конфигурации ядра: Убедитесь, что в системных файлах гостевой ОС правильно настроены параметры для использования последовательного терминала. Это можно сделать прямым редактированием файла /etc/default/grub в гостевой системе. Добавьте или измените строку:

    GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"

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

  2. Редактирование XML-конфигурации libvirt: Используйте virsh edit guest-host, чтобы просмотреть и при необходимости изменить конфигурацию гостя. Обратите внимание на раздел <channel> в XML-файле – он может содержать настройки для подключения через virtio.

  3. Удостоверитесь в корректности команд: Хотя параметр --extra-args недоступен для импорта, он может быть полезен, если вы будете создавать новую виртуальную машину с загрузкой через ISO или PXE.

Практическое применение

  1. Примените изменения в вашей гостевой машине, правильно указав параметры загрузки ядра для использования необходимого терминала.

  2. В случае отсутствия прогресса, рассмотрите создание новой VM и установку с нуля, однако, используя ваш образ для данных и настроек (возможна ручная миграция данных, настройка сервисов и конфигураций).

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

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

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