Миграция с qemu на libvirt

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

Я пытаюсь запустить Bliss OS через QEMU, следуя этому руководству:

$ qemu-system-x86_64 \
        -enable-kvm \
        -M q35 \
        -m 4096 -smp 4 -cpu host \
        -bios /usr/share/ovmf/x64/OVMF.fd \
        -drive file=Bliss11.qcow2,if=virtio \
        -usb \
        -device virtio-tablet \
        -device virtio-keyboard \
        -device qemu-xhci,id=xhci \
        -machine vmport=off \
        -device virtio-vga-gl -display sdl,gl=on \
        -audiodev pipewire,id=snd0 -device AC97,audiodev=snd0 \
        -net nic,model=virtio-net-pci -net user,hostfwd=tcp::4444-:5555

Эта настройка работает отлично. Однако, когда я пытаюсь запустить Bliss OS с помощью virt-manager, возникают проблемы. Я пробовал создать новый домен через GUI и использовать команду virt-install, но оба метода приводят к проблемам:

  1. Не удалось инициализировать контекст PW
  2. Не удалось загрузить ОС, и попал в оболочку uefi

Финальная команда virt-install, которая успешно создает новый домен:

$ virt-install \
  --virt-type kvm \
  --name bliss-vm \
  --memory 4096 \
  --vcpus 4 \
  --cpu host \
  --os-variant generic \
  --import \
  --disk path=/home/reyuki/experiments/virtual-machine/blissOS/Bliss11.qcow2,format=qcow2,bus=virtio \
  --graphics sdl,gl=on \
  --controller usb,model=qemu-xhci \
  --input tablet,bus=virtio \
  --input keyboard,bus=virtio \
  --network network=default,model=virtio \
  --boot loader=/usr/share/edk2/x64/OVMF_CODE.fd,loader.readonly=yes,loader.type=pflash \
  --machine q35 \
  --connect qemu:///system \
  --check path_in_use=off

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

Я также попытался использовать опцию qemu-commandline:

virt-install \
    --virt-type kvm \
    --name bliss-vm \
    --connect qemu:///system \
    --check path_in_use=off \
    --import \
    --disk path=/home/reyuki/experiments/virtual-machine/blissOS/Bliss11.qcow2,format=qcow2,bus=virtio \
    --os-variant generic \
    --memory 4096 \
    --vcpus 4 \
    --qemu-commandline '-M q35 -m 4096 -smp 4 -cpu host -bios /usr/share/edk2/x64/OVMF_CODE.fd -usb -device virtio-tablet -device virtio-keyboard -device qemu-xhci,id=xhci -machine vmport=off -device virtio-vga-gl -display sdl,gl=on -net nic,model=virtio-net-pci -net user,hostfwd=tcp::4444-:5555'

Но это приводит к следующей ошибке: ERROR internal error: QEMU неожиданно закрыл монитор (vm='bliss-vm'): 2024-08-28T03:12:37.710799Z qemu-system-x86_64: -device {"driver":"ich9-usb-ehci1","id":"usb","bus":"pci.0","addr":"0x5.0x7"}: Шина 'pci.0' не найдена

Может ли кто-то помочь мне понять, как решить эти проблемы и запустить Bliss OS безупречно с помощью virt-manager?

.

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

Миграция с QEMU на Libvirt: Решение проблем с Bliss OS

Введение

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

Проблемы, встречаемые при использовании virt-manager

  1. Ошибка инициализации контекста PipeWire:
    Это распространенная проблема, связанная с несовместимостью или неправильной конфигурацией аудиосистемы. При запуске виртуальной машины без настроенного PipeWire вы получите соответствующее предупреждение. Чтобы устранить эту проблему, убедитесь, что PipeWire установлен и активен. Вы можете использовать следующие команды для его установки и запуска:

    sudo apt install pipewire
    systemctl --user start pipewire

    Проверьте также, что необходимые модули PipeWire загружены и работают корректно.

  2. Проблема с загрузкой в UEFI Shell:
    Если ваша виртуальная машина загружается в среду UEFI Shell, это может произойти из-за неправильной конфигурации файла загрузчика. Убедитесь, что вы указываете правильный путь к UEFI BIOS и используете параметры, совместимые с вашей системой.

    Проверяйте путь к загрузчику с помощью следующих команд:

    ls /usr/share/edk2/x64/

    Убедитесь, что пути загрузчиков указаны правильно в конфигурации virt-install как --boot loader.

Обновленная команда virt-install

Для корректного создания виртуальной машины с Bliss OS, попробуйте использовать команду с поправками:

virt-install \
  --virt-type kvm \
  --name bliss-vm \
  --memory 4096 \
  --vcpus 4 \
  --cpu host \
  --os-variant generic \
  --import \
  --disk path=/home/reyuki/experiments/virtual-machine/blissOS/Bliss11.qcow2,format=qcow2,bus=virtio \
  --graphics sdl,gl=on \
  --controller usb,model=qemu-xhci \
  --input tablet,bus=virtio \
  --input keyboard,bus=virtio \
  --network network=default,model=virtio \
  --boot loader=/usr/share/edk2/x64/OVMF_CODE.fd,loader.readonly=yes,loader.type=pflash \
  --machine q35 \
  --connect qemu:///system \
  --check path_in_use=off

Исправление ошибок команды qemu-commandline

Ваша команда с параметром --qemu-commandline вызывает ошибку, связанную с отсутствием шины pci.0. Она может возникать из-за несовместимости в настройках. Вместо этого попробуйте бы использовать только необходимые параметры подключения к UEFI, без лишних попыток указания устройства:

virt-install \
  --virt-type kvm \
  --name bliss-vm \
  --memory 4096 \
  --vcpus 4 \
  --os-variant generic \
  --import \
  --disk path=/home/reyuki/experiments/virtual-machine/blissOS/Bliss11.qcow2,format=qcow2,bus=virtio \
  --graphics sdl,gl=on \
  --controller usb,model=qemu-xhci \
  --input tablet,bus=virtio \
  --input keyboard,bus=virtio \
  --network network=default,model=virtio \
  --boot loader=/usr/share/edk2/x64/OVMF_CODE.fd,loader.readonly=yes,loader.type=pflash \
  --machine q35 \
  --connect qemu:///system

Рекомендации по устранению проблем

  1. Тестирование конфигурации:
    Перед тем как запускать виртуальную машину, протестируйте конфигурации, используя команды проверки доступных загрузчиков и ресурсов системы. Убедитесь, что BIOS правильно настроен на использование UEFI.

  2. Логи и отладка:
    Проведите анализ логов системы, чтобы выявить более конкретные причины возникновения ошибок. Логи QEMU и Libvirt могут дать полезную информацию о причине сбоя.

  3. Совместимость с версиями:
    Проверяйте наличие обновлений для libvirt, virt-manager и qemu-kvm, поскольку более новые версии могут включать исправления для ранее известных ошибок.

Заключение

Переход с QEMU на Libvirt может быть сложным процессом, особенно при использовании специализированных ОС вроде Bliss OS. Тем не менее, правильно подобранные параметры настройки и детальный анализ возникающих ошибок позволят вам успешно запустить вашу виртуальную машину. Следуя приведенным рекомендациям, вы сможете устранить существующие проблемы и получить стабильную работу Bliss OS в среде виртуализации.

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

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