Próbuję emulować środowisko EFI przy użyciu QEMU (kmv); virtualbox potrzebuje 15 minut na uruchomienie w trybie EFI przy użyciu archboot.
Korzystając ze starszego trybu BIOS, mogę uruchomić za pomocą tego polecenia:
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960"
i działa z moim niestandardowym jądrem i systemem plików.
file ../bzImage
../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA
ma także wsparcie EFI.
Próbuję zrobić to samo z plikami EFI, które pobrałem stąd
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"
I jestem wrzucony do powłoki EFI, nie mogę uruchomić.
Jeśli korzystam z najnowszej wersji Ubuntu przy użyciu tego samego środowiska 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"
... proces uruchamiania działa poprawnie.
Próbowałem zastąpić pliki rozruchowe Ubuntu moimi, ale może nie do końca rozumiem jego funkcjonalność. Kiedy wymieniam pliki po zamontowaniu 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
pojawia się ta sama powłoka EFI. Czy to jest w porządku? initrd.lz i rootfs.gz są wymienne, prawda? Co powiesz na bzImage i vmlinuz?
czego mi brakuje?
źródło
apt install ovmf
do czasukvm -bios OVMF.fd ...
Nie jest to bezpośrednia odpowiedź, ale ponieważ nie ma, być może zainteresuje Cię ten raport o błędach xorriso - ja też tam skomentuję, ale w skrócie, xorriso-1.2.4 z wersją upstream 1044 działa dobrze dla mnie i mój sprzęt działa z dokładnie ten skrypt (jest to rosyjskojęzyczna wiki, ale część skryptu powinna być wystarczająco czytelna; zwróć uwagę
efiboot.img
).Zauważ, że
/usr/lib/syslinux/isohdpfx.bin
pochodzi z syslinux i wygląda na to, że najnowsza 4.06 ma odpowiednie zmiany w dziale EFI.Oto kolejna przydatna wiedza na temat (U) EFI , a także dziękuję za skryptlet w pytaniu :)
źródło
Korzystanie z tego skryptu ,
cd
w drzewie źródłowym jądra i wykonaj:skąd
OVMF.fd
został pobrany z https://sourceforge.net/projects/edk2/files/OVMF/OVMF-X64-r15214.zip/downloadSkrypt generuje minimalny system plików za pomocą BusyBox, kompiluje jądro i uruchamia go w QEMU z:
Możemy teraz zweryfikować, czy UEFI został użyty z wnętrza QEMU, jak wspomniano w tym poście :
źródło
źródło