从 Grub2 UEFI 加载带有 linux16 / initrd16 的 Memdisk

从 Grub2 UEFI 加载带有 linux16 / initrd16 的 Memdisk

我需要在 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 模式,反之亦然。

相关内容