Grub 没有更新 grub.cfg

Grub 没有更新 grub.cfg

系统:Linux Debian-10-xxxx 4.19.0-11-amd64 #1 SMP Debian 4.19.146-1 (2020-09-17) x86_64 GNU/Linux.

我有一个带有clonezilla 和gparted 条目的EFI Linux/Windows 双引导系统。
我安装了memtest86映像,并制作了其grub相关条目43_custom

我正在尝试更新我的 grub 菜单,但update-grub更新时只报告 Linux 选项,并且没有进行任何修改,grub.cfg即使update-grub没有报告任何问题。

我看了一下menu.lst,除了 Linux 之外没有列出其他条目。我编辑grub.cfg添加了一些条目,并且此方法有效,但是内核更新后会发生什么。

顺便说一下,几天前安装了 grub 定制器,但我卸载了它,因为它完全改变了 grub 文件夹结构。定制器卸载后,我使用 su 权限运行它们:

apt-get purge grub-common
apt-get purge grub  
apt-get purge os-prober  
apt-get install grub  
apt-get install os-prober  
update-grub  

grub.cfg更新后没有应用任何更改。
如果我重命名grub.cfggrub.cfg.bak并运行update-grub,则不会grub.cfg生成任何内容。

更新 grub 打印输出:

Searching for GRUB installation directory ... found: /boot/grub 

Searching for default file ... found: /boot/grub/default  
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst  
Searching for splash image ... none found, skipping ...  
Found kernel: /boot/vmlinuz-4.19.0-11-amd64  
Found kernel: /boot/vmlinuz-4.19.0-10-amd64  
Updating /boot/grub/menu.lst ... done

任何建议都会非常受欢迎,谢谢

答案1

grub.cfg您未更新的原因是因为您grub-legacy安装了使用/boot/grub/menu.lst.这grubpackage 是 的虚拟包grub-legacy

清除grub-legacy软件包并安装grub-efi。它包含您需要的一切(grub-efi-amd64grub2-common等)。然后(重新)安装 grub 并运行update-grub以重新生成/boot/grub/grub.cfg

sudo apt purge grub-legacy
sudo apt install grub-efi
sudo grub-install
sudo update-grub

答案2

多谢,伙计 !你成功了!但现在,grub 只显示我的 linux 和 windows 条目。
我该怎么做才能让我的 clonezilla、gparted 和 memtest 86 选项显示在启动菜单上?
文件 40 ,41 和 42_custom 位于 /etc/grub.d 中,但 update-grub 未检测到它们。
我应该编辑这些文件吗?因为我花了几个小时才让它们工作

相关内容