Estoy tratando de emular un entorno EFI usando QEMU (kmv); virtualbox tarda 15 minutos en arrancar en modo EFI usando archboot.
Usando el modo BIOS heredado, puedo iniciar usando este comando:
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960"
y funciona con mi kernel personalizado y sistema de archivos.
file ../bzImage
../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA
También tiene soporte EFI.
Estoy tratando de hacer lo mismo con los archivos EFI que descargué desde aquí
wget http://ufpr.dl.sourceforge.net/project/edk2/OVMF/OVMF-X64-r11337-alpha.zip -P ovmf
cd ovmf/
unzip -x OVMF-X64-r11337-alpha.zip
# rename the files for QEMU find them
mv OVMF.fd bios.bin
mv CirrusLogic5446.rom vgabios-cirrus.bin
# start QEMU
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -L . -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960"
Could not open option rom 'linuxboot.bin': No such file or directory
pci_add_option_rom: failed to find romfile "pxe-e1000.bin"
Y me dejo caer en un shell EFI, no habilito para arrancar.
Si uso la última versión de Ubuntu usando el mismo entorno EFI
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -L . -boot d -cdrom ../ubuntu-12.10-desktop-amd64.iso
pci_add_option_rom: failed to find romfile "pxe-e1000.bin"
... el proceso de arranque funciona bien.
Intenté reemplazar los archivos de arranque de Ubuntu con los míos, pero tal vez no entiendo completamente su funcionalidad. Cuando acabo de reemplazar los archivos después de montar el ISO:
mkdir tmp
bsdtar xf ubuntu-12.10-desktop-amd64.iso -C tmp
cp bzImage tmp/casper/vmlinuz
cp rootfs.gz tmp/casper/initrd.lz
genisoimage -o customUbuntu.iso tmp/
qemu-system-x86_64 -L . -boot d -cdrom customUbuntu.iso
aparece el mismo EFI Shell. ¿Está bien? initrd.lz y rootfs.gz son intercambiables ¿verdad? ¿Qué tal bzImage y vmlinuz?
¿Qué me estoy perdiendo?
fuente
apt install ovmf
y luegokvm -bios OVMF.fd ...
No es una respuesta directa, pero como no hay ninguna, puede que le interese este informe de errores de xorriso : voy a comentar allí también, pero en resumen, xorriso-1.2.4 con la revisión aguas arriba 1044 funciona bien para mí y mi hardware es compatible con exactamente este script (es un wiki hablado en ruso, pero la parte del script debe ser lo suficientemente legible; preste atención
efiboot.img
).Tenga en cuenta que
/usr/lib/syslinux/isohdpfx.bin
proviene de syslinux y parece que el último 4.06 tiene cambios relevantes en el departamento de EFI.Aquí hay otro conocimiento útil sobre (U) EFI , y gracias por el scriptlet en la pregunta también :)
fuente
Usando este script ,
cd
en un árbol fuente del núcleo y ejecute:donde
OVMF.fd
se extrajo de https://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip/downloadEl script genera un sistema de archivos mínimo con BusyBox, compila el núcleo y lo ejecuta en QEMU con:
Ahora podemos verificar que UEFI se utilizó desde dentro de QEMU como se menciona en esta publicación :
fuente
fuente