Grub菜单中缺少Memtest86+选项。

我遇到了与@coversnail相同的问题:如何将Memtest86+选项添加回Grub菜单?

问题是:在GRUB中,我只能在旧的内核版本和实际的Ubuntu版本之间进行选择。没有其他选项。

我想运行memtest86+。它已安装并位于/etc/grub.d/,但不在GRUB本身中。我有点困惑。


memtest86 5.0 现已适用于 15.10 版本,但尚未完成对 14.04 版本的后移 - https://bugs.launchpad.net/ubuntu/+source/memtest86+/+bug/1234612 #8 - Hannu
2个回答

尝试使用Grub Customizer。Grub Customizer是GRUB2的图形设置管理器。
要安装,请只需按下键盘上的Ctrl+Alt+T组合键打开终端。当终端打开时,运行以下命令:
sudo add-apt-repository ppa:adabbas/1stppa
sudo apt-get update
sudo apt-get install grub-customizer

或者你可以去看一下他们的网站
要添加memtest条目,请参考下面的图片和文字。

enter image description here enter image description here enter image description here

第一条记录
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  b4d22d74-d1db-44c3-a834-e879263662f5
else
  search --no-floppy --fs-uuid --set=root b4d22d74-d1db-44c3-a834-e879263662f5
fi
linux16 /boot/memtest86+.bin

第二个条目
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  b4d22d74-d1db-44c3-a834-e879263662f5
else
  search --no-floppy --fs-uuid --set=root b4d22d74-d1db-44c3-a834-e879263662f5
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8

注意:现在上述信息是正确的,但请记住memtest在grub2-uefi中无法工作。这是因为UEFI不支持启动16位二进制文件,而memtest是一个16位二进制文件。这也是为什么在grub2 uefi中没有linux16命令/模块的原因。
另外,您可能还想查看memtest86+在efi系统上失败

有4个分区可供选择...我不确定哪个受到memtest的影响。1 dev/sda和3 dev/sdb... - Marc
为什么insmod在我只使用ext4、vfat和swap分区时却引用ext2? - Marc
1ext2包括ext2、ext3和ext4。/boot/grub是存储Grub 2模块的位置,你会找到ext2.mod。没有ext4.mod。 - Mitch
好的,在尝试了上述方法后,我遇到了以下错误:https://lh5.googleusercontent.com/--ctayCbzuLg/UcwCys6kOdI/AAAAAAAABH8/GTOyUgICCsM/w1044-h217-no/IMG_9785.JPG - Marc
你取消了答案,为什么?然后你发布了一个非英文的错误信息。我该如何进一步帮助你呢? - Mitch
嘿,Mitch,问题是我没能成功运行内存测试,因为出现了这个错误。实际上它说的是"设备未找到"加上设备和"linux16未找到"-"按任意键继续"因此,答案还不是一个解决办法,我取消接受这个答案了。非常感谢你的帮助! - Marc
事情是这样的:我设法将memtest带到了grub,但是memtest不起作用... :/ - Marc
请问你能否将完整的信息用英文给我? - Mitch
错误:没有这样的设备:b4d22d74-d1db-44c3-a834-e879263662f5。 错误:找不到命令“linu16”。按任意键继续。 - Marc
你有UEFI BIOS吗?我会离开几个小时,但我会回复你的。 - Mitch
是的,我猜这可能就是为什么我的系统崩溃(内核恐慌)的问题所在 - 这就是为什么我想要运行内存测试。干杯。 - Marc
1请看我在答案中添加的注释。关于答案的决定,我将交由您来决定。 - Mitch
非常感谢你。非常感激。这就是我喜欢Ubuntu社区的原因。再次万分感谢。 - Marc

我知道这是一个旧帖子,但它仍然在搜索中出现,所以我将提供一个解决方案。

大多数发行版都提供memtest86+。它与UEFI不兼容,因为UEFI不支持16位。然而,PassMark Memtest86(5版本或更高版本)支持UEFI。

首先,获取memtest文件。下载USB启动镜像。http://memtest86.com/download.htm接下来,从镜像中提取文件。我将镜像刻录到闪存驱动器上,以便在多台计算机上安装。

第二步,安装memtest86。我在我的硬盘末尾创建了一个500MB的分区,并格式化为FAT32。然后将所有文件从闪存驱动器复制到该分区。注意:也可以安装到EFI目录中,但需要对文件进行重命名,以避免覆盖现有的引导文件。

第三步,配置grub2-efi菜单项。有很多方法可以添加一个条目,但是最安全的方法是在update-grub更新后仍然生效。使用root权限创建文件/etc/grub.d/39_memtest,并将其设置为可执行。(注意:更改文件名中的数字会改变它在grub菜单中显示的位置。请勿将其设置低于6,以确保标题和主题先运行)
接下来,编辑文件内容如下:
#!/bin/sh

echo "Adding Memtest86" >&2

exec tail -n +3 $0

menuentry "Memtest86" {

chainloader (hdx,y)/efi/boot/bootx64.efi

}

EOF

*请将(hdx,y)替换为您适当的硬盘和分区信息。

然后运行update-grub命令。现在您应该有一个可以启动Memtest86的菜单项。