LINUX.ORG.RU

Сообщения kirill2005

 

Как запустить загрузочный диск MBR/BIOS в QEMU в режиме UEFI

Форум — General

Есть загрузочные диски: disk1.qcow2 и disk2.qcow2. Первый диск:

kirl@debn:~/start_qemu$ sudo fdisk -l /dev/nbd0
Disk /dev/nbd0: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x503e2391

Device      Boot  Start     End Sectors  Size Id Type
/dev/nbd0p1 *      2048  395263  393216  192M 83 Linux
/dev/nbd0p2      395264 8388607 7993344  3.8G 83 Linux

Внутри раздела nbd0p1 первого диска находятся файлы bzImage, initramfs, папка grub и еще немного файлов.

Второй диск:

kirl@debn:~/start_qemu$ sudo qemu-nbd --connect /dev/nbd0 disk2.qcow2 
kirl@debn:~/start_qemu$ sudo fdisk -l /dev/nbd0
Disk /dev/nbd0: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt

Device        Start       End   Sectors  Size Type
/dev/nbd0p1    2048   5322751   5320704  2.5G Linux filesystem
/dev/nbd0p2 5322752 167772126 162449375 77.5G Linux filesystem
kirl@debn:~/start_qemu$ 

Внутри раздела nbd0p1 второго диска находятся папки: boot, etc, opt, var. Внутри boot находятся bzImage, initramfs, grub и другие.

Как я могу запустить эту машину в режиме EFI в QEMU. Щас команда примерно выглядит так. Я напрямую передаю QEMU ядро и initramfs:

#!/bin/bash

qemu-system-x86_64 \
        -m 2G \
        -machine q35 \
        -smp 2 \
        -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
        -drive if=pflash,format=raw,file=/usr/share/OVMF/OVMF_VARS.fd \
        -device qemu-xhci \
        -drive file=/home/kirl/start_qemu/usb.raw,format=raw,if=none,id=usbdisk \
        -device usb-storage,drive=usbdisk \
        -kernel ./kernel \
        -initrd ./initramfs \  
        -serial mon:stdio \
        -nographic \
        -drive file=disk1.qcow2,if=virtio,format=qcow2 \
        -drive file=disk2.qcow2,if=virtio,format=qcow2 \
        -append "root=/dev/vda2 ro console=ttyS0" \   

 , , , ,

kirill2005
()

RSS подписка на новые темы