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?