我想尝试为EFI编程,所以我使用virtualbox创建了一个VM,选中了"enable efi"选项并将CD留空.efi shell启动它应该怎么做但不是FS0我只看到BLK0,BLK1等.有没有办法让FS没有插入USB磁盘(显示为FS)?
编辑:谢谢你的回复.对于仍然想要使用VB的人 - 使用Windows CD将DISKPART格式化为VB磁盘解决了这个问题.
@unixsmurf在评论中回答是正确的.您的映像需要UEFI支持的文件系统.如果fsX
在map
命令输出中看不到,则表示非附加块设备(blkX
)包含支持的文件系统.请在磁盘上创建FAT32分区,然后您就可以fsX
在map
输出中看到.要在文件系统之间切换,请使用类似DOS的语法命令ie.fs0:
切换到FS0文件系统.
根据UEFI规范2.5第12.3节:
EFI包括FAT32用于系统分区,FAT12或FAT16用于可移动媒体.
我建议不要通过VirtualBox直接使用OVMF(Open Virtual Machine Firmware)和QEMU.为什么?
因为你可以破解OVMF并了解它如何在内部工作,这可以让你更好地理解,VirtualBox隐藏内部结构,我不确定它是否允许更换固件
OVMF最初是为QEMU开发的,它由各种其他虚拟机调整,因为在QEMU上有更多的OVMF支持,然后是VirtualBox上的OVMF.
使用QEMU还可以模拟硬件并在使用它的UEFI中编写驱动程序/应用程序
我编写了初学者教程,帮助设置使用OVMF进行UEFI应用程序开发所需的开发环境.
有关OVMF的更多信息.