Как загрузить нужный раздел UEFI-диска с помощью Qemu?

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

Я клонировал диск в формате GPT, который содержит двойную загрузку (Windows + Linux Debian), и он прекрасно работает на своем реальном компьютере.

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

Вот команда, которую я использовал:

virt-install --name "vm-test_dual_boot" --boot loader=/usr/share/OVMF/OVMF_CODE.fd --vcpus 2 --memory 8192 --osinfo debian11 --network bridge=br0 --graphics=vnc --disk path=/home/user/vm/clone.qcow2 --import -v

Я не могу сделать то же самое, что и на реальной UEFI машине, которая ассоциирует файловую систему HD(1,GPT,unique_identifier) с файлом \EFI\debian\shimx64.efi.

Не могли бы вы помочь мне загрузить Debian?

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

Как загрузить нужный раздел UEFI-диска с помощью Qemu

При создании виртуальной машины (VM) с использованием Qemu и загрузке с клонированного GPT-диска, содержащего систему с двойной загрузкой (Windows + Linux Debian), могут возникнуть сложности, особенно если по умолчанию загружается Windows. Если ваша цель — загрузить Debian, необходимо выполнить несколько ключевых шагов и уточнений в параметрах загрузки.

Шаг 1: Подготовка среды

Прежде всего, убедитесь, что установленный Qemu поддерживает UEFI, и у вас есть доступ к OVMF (Open Virtual Machine Firmware). Убедитесь, что файл OVMF_CODE.fd корректен и доступен по указанному пути (/usr/share/OVMF/OVMF_CODE.fd).

Шаг 2: Настройка команды загрузки

Измените вашу команду virt-install, добавив необходимые параметры для указания на Debian-шим (shim) и определение нужного раздела. Вам может вместо этого пригодиться команда qemu-system-x86_64, например:

qemu-system-x86_64 \
    -enable-kvm \
    -m 8192 \
    -smp 2 \
    -bios /usr/share/OVMF/OVMF_CODE.fd \
    -hda /home/user/vm/clone.qcow2 \
    -boot d \
    -net nic \
    -net bridge,br=br0 \
    -vnc :1

Шаг 3: Загрузка конкретного раздела

Для того чтобы указать, с какого именно раздела загрузиться, вы можете использовать следующие подходы:

  1. Использование UEFI Boot Manager: Загрузившись с промежуточной среды, можно вызвать UEFI Boot Manager, чтобы выбрать нужный загрузчик. Например, на экране загрузки UEFI можно выбрать Debian в качестве загрузочной опции, если она доступна.

  2. Определение загружаемого образа: При использовании UEFI можно вручную указать путь к загрузочному образу:

    • Для Debian это будет \EFI\debian\shimx64.efi.
    • Используя Qemu, можно попробовать добавить переменные среды для указания точной формы загрузки.
Пример команды для указания загрузчика:
qemu-system-x86_64 \
  -drive file=/home/user/vm/clone.qcow2,format=qcow2 \
  -bios /usr/share/OVMF/OVMF_CODE.fd \
  -boot menu=on

Эта команда также включает menu=on, что позволит вам вручную выбрать нужный загрузчик при каждой загрузке.

Шаг 4: Использование загрузчика

Если ни один из указанных выше методов не сработал, возможно, вам придется вручную добавлять UEFI-выбор загрузчика при запуске. Для этого:

  • Сначала загрузитесь в среду UEFI Shell.
  • Запустите команду fs0: (или другой номер, относящийся к вашему диску) для доступа к файловой системе.
  • Затем выполните cd EFI/debian и запустите shimx64.efi.

Заключение

Загрузка нужного раздела с UEFI-диска в Qemu может представлять собой проблему, однако, следуя инструкциям по изменениям в параметрах команды, вы сможете указать систему загрузки Debian правильно. Не забывайте целесообразно использовать virt-install или qemu-system-x86_64 в зависимости от ваших нужд. Если возникнут дополнительные проблемы, может потребоваться проверить корректность загрузчиков или путь к ним на клонированном диске.

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

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

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