![从 Grub2 UEFI 加载带有 linux16 / initrd16 的 Memdisk](https://linux22.com/image/202399/%E4%BB%8E%20Grub2%20UEFI%20%E5%8A%A0%E8%BD%BD%E5%B8%A6%E6%9C%89%20linux16%20%2F%20initrd16%20%E7%9A%84%20Memdisk.png)
我需要在 UEFI 模式下从 Grub2 加载 Memdisk 内核。
我不知道这是否可行,但我收到了意外的不明错误。
我想知道是否可能,如果可以,该怎么做。
我的 Grub 菜单项/命令如下:
menuentry 'Hirens Boot 15.2' {
search --no-floppy --fs-uuid --set=root 3a02381a-2bf7-4730-8e13-6d7640f9c60e
set iso_path="/isos/Hirens.BootCD.15.2.iso"
loopback loop ($root)$iso_path
linux16 (loop)/HBCD/Boot/memdisk iso
initrd16 /isos/Hirens.BootCD.15.2.iso
}
在 BIOS 模式下,相同的菜单项可以毫无问题地启动。
答案1
我认为这行不通。
Hirens Boot CD 15.2 是 2012 年的版本。当时,UEFI 刚刚被引入 PC 世界,大多数可启动工具仍然使用传统 BIOS 的工作方式。
该memdisk
实用程序希望能够提供旧版 BIOS 的磁盘访问功能,以便能够扩展它们以与基于 RAM 的磁盘映像一起使用。在以 UEFI 模式启动的系统中,那些传统 BIOS 磁盘访问功能根本不可用:事实上,整个系统以 64 位或 32 位保护模式运行,而不是 BIOS 所支持的旧 DOS 兼容 16 位模式。基于引导加载程序的启动。
memdisk
最初是来自Syslinux引导加载程序项目,正如链接网页所说:
MEMDISK 通过为磁盘声明一块高内存和为驱动程序本身声明一块(非常小 - 通常为 2K)低(DOS)内存块来模拟磁盘,然后挂接 INT 13h(磁盘驱动程序)和 INT 15h(内存)查询)BIOS 中断。
在 UEFI 模式下,DOS/BIOS 概念(例如低/高内存和 BIOS 中断 INT 13h 和 INT 15h)将不适用,因此无法memdisk
完成其工作。
即使您可以开始memdisk
工作,Hirens 启动 CD 映像使用的 Windows PE 环境的引导加载程序也将需要旧版 BIOS 环境,并且很可能无法在以 UEFI 模式启动的系统中启动。据我所知,GRUB 或任何其他引导加载程序没有标准方法可以将系统从 UEFI 模式切换到传统 BIOS 模式,反之亦然。