Ich versuche, eine EFI-Umgebung mit QEMU (kmv) zu emulieren. Das Booten von virtualbox im EFI-Modus mit archboot dauert 15 Minuten.
Im alten BIOS-Modus kann ich mit folgendem Befehl booten:
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960"
und es funktioniert mit meinem benutzerdefinierten Kernel und Dateisystem.
file ../bzImage
../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA
Es hat auch EFI-Unterstützung.
Ich versuche dasselbe mit EFI-Dateien zu tun, die ich von hier heruntergeladen habe
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"
Und ich bin in eine EFI-Shell gefallen, nicht zum Booten aktivieren.
Wenn ich die neueste Ubuntu-Version mit derselben EFI-Umgebung verwende
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"
... der Bootvorgang funktioniert einwandfrei.
Ich habe versucht, die Ubuntu-Bootdateien durch meine zu ersetzen, aber ich verstehe die Funktionalität möglicherweise nicht vollständig. Wenn ich nur die Dateien nach dem Mounten der ISO ersetze:
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
Die gleiche EFI-Shell wird angezeigt. Ist es o.k? initrd.lz und rootfs.gz sind austauschbar, oder? Wie wäre es mit bzImage und vmlinuz?
Was vermisse ich?
quelle
apt install ovmf
und dannkvm -bios OVMF.fd ...
Keine direkte Antwort, aber da es keine gibt, könnte Sie dieser xorriso-Bugreport interessieren - ich werde das auch kommentieren, aber kurz gesagt, xorriso-1.2.4 mit der Upstream-Revision 1044 funktioniert gut für mich und meine Hardware steht mit genau dieses Skript (es ist ein russisch gesprochenes Wiki, aber der Skriptteil sollte gut lesbar sein; achten Sie darauf
efiboot.img
).Beachten Sie, dass dies
/usr/lib/syslinux/isohdpfx.bin
von Syslinux stammt und die neueste Version 4.06 anscheinend relevante Änderungen in der EFI-Abteilung aufweist.Hier ist ein weiteres nützliches Wissen zu (U) EFI und vielen Dank für das Scriptlet in der Frage :)
quelle
Verwenden Sie dieses Skript , um
cd
einen Kernel-Quelltextbaum zu erstellen, und führen Sie Folgendes aus:wo
OVMF.fd
wurde aus https://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip/download extrahiertDas Skript generiert mit BusyBox ein minimales Dateisystem, kompiliert den Kernel und führt ihn in QEMU aus mit:
Wir können jetzt überprüfen, ob UEFI innerhalb von QEMU verwendet wurde, wie in diesem Beitrag erwähnt :
quelle
quelle