5

我想尝试为 EFI 编程,所以我使用 virtualbox 创建了一个 VM,选中“启用 efi”选项并将 CD 留空。efi shell 以它应该的方式启动,但我只看到 BLK0、BLK1 等而不是 FS0。有没有办法在不插入 USB 磁盘(显示为 FS)的情况下拥有 FS?

编辑:感谢您的回复。对于仍然想使用 VB 的人 - 使用 Windows CD 用 DISKPART 格式化 VB 磁盘解决了这个问题。

4

1 回答 1

8

@unixsmurf 在评论中的回答是正确的。您的图像需要 UEFI 支持的文件系统。fsX如果您在命令的输出中看不到,map则表示未连接的块设备 ( blkX) 包含受支持的文件系统。请在您的磁盘上创建 FAT32 分区,然后您将能够fsXmap输出中看到。要在文件系统之间切换,请使用类似 DOS 的语法命令,即。fs0:切换到 FS0 文件系统。

根据 UEFI 规范 2.5 第 12.3 节:

EFI 包括将 FAT32 用于系统分区,将 FAT12 或 FAT16 用于可移动媒体。

我建议直接将OVMF(开放虚拟机固件)与 QEMU 一起使用,而不是通过 VirtualBox。为什么 ?

  • 因为您可以破解 OVMF 并了解它的内部工作原理,这可以让您更好地理解,VirtualBox 隐藏内部结构,我不确定它是否允许更换固件
  • OVMF 最初是为 QEMU 开发的,它被各种其他虚拟机改编,因为 QEMU 上的 OVMF 支持比 VirtualBox 上的 OVMF 多得多
  • 使用 QEMU 还可以让您模拟您的硬件并在 UEFI 中编写使用它的驱动程序/应用程序

我编写了初学者教程,帮助设置使用 OVMF 进行 UEFI 应用程序开发所需的开发环境。

更多关于OVMF的信息。

于 2015-12-16T13:52:15.527 回答