A1ive
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...
I don't know either.
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