Tôi đang cố gắng mô phỏng môi trường EFI bằng QEMU (kmv); virtualbox mất 15 phút để khởi động ở chế độ EFI bằng archboot.
Sử dụng chế độ BIOS kế thừa, tôi có thể khởi động bằng lệnh này:
root@citsnmaiko-deb:/home/maiko/uefi/ovmf# qemu-system-x86_64 -kernel ../bzImage -initrd ../rootfs.gz -append "rw root=/dev/ram0 ramdisk_size=40960"
và nó hoạt động với hệ thống tập tin và kernel tùy chỉnh của tôi.
file ../bzImage
../bzImage: Linux kernel x86 boot executable bzImage, version 3.6.1 (root@citsnmaiko-deb) #4 , RO-rootFS, swap_dev 0x3, Normal VGA
nó cũng có hỗ trợ EFI.
Tôi đang cố gắng làm tương tự với các tệp EFI mà tôi đã tải xuống từ đây
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"
Và tôi bị rơi trong một vỏ EFI, không cho phép khởi động.
Nếu tôi sử dụng bản phát hành Ubuntu mới nhất sử dụng cùng môi trường 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"
... quá trình khởi động hoạt động tốt.
Tôi đã cố gắng thay thế các tệp khởi động Ubuntu bằng tệp của tôi nhưng có lẽ tôi không hoàn toàn hiểu chức năng của nó. Khi tôi chỉ thay thế các tệp sau khi gắn 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
Shell EFI tương tự xuất hiện. Là nó ổn? initrd.lz và rootfs.gz có thể hoán đổi cho nhau phải không? Làm thế nào về bzImage và vmlinuz?
Tôi đang thiếu gì?