Вопрос или проблема
Я клонировал диск в формате 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: Загрузка конкретного раздела
Для того чтобы указать, с какого именно раздела загрузиться, вы можете использовать следующие подходы:
-
Использование UEFI Boot Manager: Загрузившись с промежуточной среды, можно вызвать UEFI Boot Manager, чтобы выбрать нужный загрузчик. Например, на экране загрузки UEFI можно выбрать
Debian
в качестве загрузочной опции, если она доступна. -
Определение загружаемого образа: При использовании UEFI можно вручную указать путь к загрузочному образу:
- Для Debian это будет
\EFI\debian\shimx64.efi
. - Используя Qemu, можно попробовать добавить переменные среды для указания точной формы загрузки.
- Для Debian это будет
Пример команды для указания загрузчика:
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
в зависимости от ваших нужд. Если возникнут дополнительные проблемы, может потребоваться проверить корректность загрузчиков или путь к ним на клонированном диске.
Разделяя эти шаги, вы сможете успешно настроить свою виртуальную машину для загрузки именно с нужного раздела и удостовериться, что ваше решение работает так же, как и на реальном компьютере.