J'essaie d'émuler un environnement EFI en utilisant QEMU (kmv); virtualbox prend 15 minutes pour démarrer en mode EFI en utilisant archboot.
En utilisant le mode BIOS hérité, je peux démarrer en utilisant cette commande:
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960"
et cela fonctionne avec mon noyau et mon système de fichiers personnalisés.
file ../bzImage
../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA
il a également un support EFI.
J'essaie de faire la même chose avec les fichiers EFI que j'ai téléchargés à partir d'ici
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"
Et je suis tombé dans un shell EFI, pas permis de démarrer.
Si j'utilise la dernière version d'Ubuntu en utilisant le même environnement 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"
... le processus de démarrage fonctionne correctement.
J'ai essayé de remplacer les fichiers de démarrage d'Ubuntu par les miens mais je ne comprends peut-être pas complètement sa fonctionnalité. Quand je remplace juste les fichiers après avoir monté l'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
le même shell EFI apparaît. Est-ce que c'est bon? initrd.lz et rootfs.gz sont interchangeables non? Que diriez-vous de bzImage et vmlinuz?
Qu'est-ce que je rate?
la source
apt install ovmf
et ensuitekvm -bios OVMF.fd ...
Ce n'est pas une réponse directe, mais comme il n'y en a pas, vous pourriez être intéressé par ce rapport de bogue xorriso - je vais commenter là aussi, mais en bref, xorriso-1.2.4 avec la révision en amont 1044 fonctionne bien pour moi et mon support matériel avec exactement ce script (c'est un wiki parlé russe mais la partie script doit être suffisamment lisible; faites attention à
efiboot.img
).Notez que cela
/usr/lib/syslinux/isohdpfx.bin
vient de syslinux et il semble que la dernière version 4.06 ait des changements pertinents dans le département EFI.Voici un autre puits de connaissances utiles sur (U) EFI , et merci également pour le scriptlet dans la question :)
la source
En utilisant ce script ,
cd
dans une arborescence source du noyau et exécutez:où a
OVMF.fd
été extrait de https://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip/downloadLe script génère un système de fichiers minimal avec BusyBox, compile le noyau et l'exécute dans QEMU avec:
Nous pouvons maintenant vérifier que l'UEFI a été utilisé depuis l'intérieur de QEMU comme mentionné dans ce post :
la source
la source