Grub2 是否支持 Memtest86+ iso 文件?

Grub2 是否支持 Memtest86+ iso 文件?

Grub2 支持 Memtest86+ iso 文件吗?如果支持:我该如何在 grub.cfg 中写入 grub 条目以启动 Memtest86+ iso 文件?

答案1

有多种方法可以将 ISO 添加到 grub2 配置中。不过,使用其他选项更简单。

  1. 下载memtest86+-4.20.bin(最新数据截至 2011 年 11 月)
  2. 将其放在你的 /boot 分区中。(就像你的 Linux 内核一样)
  3. 将以下内容添加到 /etc/grub.d/40_custom (它应该在三行上,例如
menuentry "Memtest 86+" { 
linux16 /memtest86+.bin
}

最后。更新 grub 并重启

sudo grubupdate && sudo reboot

答案2

参加这个聚会已经晚了六年了,但是我也没有在任何地方找到答案,所以我做了以下事情来解决这个问题。

  • 安装 memtest ISO
  • 看着挂载点/isolinux/isolinux.cfg
  • 将 isolinux 配置转换为 GRUB2 配置

请注意,该方法适用于其他 ISO,而不仅仅是 Memtest86+。

执行上述操作会产生多个 isolinux 配置,具体取决于您想要如何启动 Memtest86+,因此您最终会得到多个菜单项:

submenu "> MemTest86+ 7.2" {
    menuentry "MemTest86" {
        set isofile="/Memtest86-7.2.iso"
        echo "Mounting Memtest86-7.2.iso"
        loopback loop $isofile
        echo "Loading kernel"
        linux16 (loop)/isolinux/memtest iso-scan/filename=$isofile
        echo "Starting MemTest86+ 7.2"
    }

    menuentry "MemTest86 (one pass)" {
        set isofile="/Memtest86-7.2.iso"
        echo "Mounting Memtest86-7.2.iso"
        loopback loop $isofile
        echo "Loading kernel"
        linux16 (loop)/isolinux/memtest iso-scan/filename=$isofile onepass
        echo "Starting MemTest86+ 7.2"
    }

    menuentry "MemTest86 (btrace)" {
        set isofile="/Memtest86-7.2.iso"
        echo "Mounting Memtest86-7.2.iso"
        loopback loop $isofile
        echo "Loading kernel"
        linux16 (loop)/isolinux/memtest iso-scan/filename=$isofile btrace
        echo "Starting MemTest86+ 7.2"
    }

    menuentry "MemTest86 (single CPU)" {
        set isofile="/Memtest86-7.2.iso"
        echo "Mounting Memtest86-7.2.iso"
        loopback loop $isofile
        echo "Loading kernel"
        linux16 (loop)/isolinux/memtest iso-scan/filename=$isofile maxcpus=1
        echo "Starting MemTest86+ 7.2"
    }

    menuentry "MemTest86 (serial output)" {
        set isofile="/Memtest86-7.2.iso"
        echo "Mounting Memtest86-7.2.iso"
        loopback loop $isofile
        echo "Loading kernel"
        linux16 (loop)/isolinux/memtest iso-scan/filename=$isofile console=ttyS0,9600
        echo "Starting MemTest86+ 7.2"
    }
}

相关内容