Results 130 comments of A1ive

> On Asus Z87 PC. both grubfm and grub4efi try to run it and then hang. grub4efi actually shows the device list output by the efi shell console but then...

GRUB4DOS 创建的虚拟光盘、硬盘只在bootloader阶段有效,系统不认这个设备。 你应该通过某种方法把 ISO 的位置 "告诉" 系统,让系统在启动过程中挂载它,才能继续运行。Ventoy 就是把这项工作自动化了。 比如对于大部分基于 Ubuntu 的发行版: ``` map /boot/imgs/ubuntukylin.iso (0xff) || map --mem /boot/imgs/ubuntukylin.iso (0xff) map --hook kernel (0xff)/casper/vmlinuz boot=casper iso-scan/filename=/boot/imgs/ubuntukylin.iso initrd (0xff)/casper/initrd.lz ```

> Would it be possible to list UEFI drivers that are currently loaded? Specifically, it would be nice to be able check if the UEFI BIOS already contains an NTFS...

> 可以使用uuid,vol,map --status函数获得有关驱动器的信息。 > 具体还想知道什么? 不是 ”驱动器”。 他是想列出所有 UEFI 驱动,或者查找包含指定名字的 UEFI 驱动是否存在。

> 嗷,明白了。搞笑了。 比如他想判断uefi固件是否支持从exfat分区启动,就要列出所有已安装的驱动,查找驱动名字里面有没有带"exfat"的。 可以参考 https://github.com/a1ive/grub/blob/259a9e8ce51a0fb81f3f656024ab6ec78401507a/grub-core/map/efi/vdisk.c#L73

@yaya2007 你列出的是 COMPONENT_NAME2_PROTOCOL 还是 COMPONENT_NAME_PROTOCOL ?

> 是name2 我好像误导你了,应该用 EfiDriverBindingProtocol https://github.com/tianocore/edk2/blob/0ecdcb6142037dd1cdd08660a2349960bcf0270a/MdePkg/Include/Protocol/DriverBinding.h 枚举 DriverBindingProtocol,再从每个 handle 上打开 ComponentName2Protocol,再获取名称

好吧,等我有时间了再改一下。

BIOS or UEFI? It's possible on UEFI, but I'm not sure about BIOS. https://github.com/tianocore/edk2/blob/0ecdcb6142037dd1cdd08660a2349960bcf0270a/MdePkg/Include/Protocol/SimpleTextInEx.h#L116