grub 不会自动加载 grub.cfg

grub 不会自动加载 grub.cfg

最近不得不重新安装 Ubuntu。现在每次启动时,我都会进入 grub CLI,尽管我将 grub 超时设置为零等等。如果我输入, configfile (hd0,4)/boot/grub/grub.cfgUbuntu 会按预期加载。我试过了grub-install /dev/sda,但每次还是进入 CLI。我该如何解决这个问题?

答案1

我遇到了同样的问题,找到了解决方案:
1)在 grub 救援模式下,运行“set”

2) 它显示前缀=(hd1,gp1)/boot/efi/EFI/ubuntu/
3) 就我而言,由于我有 KDE NEON,所以文件夹 /boot/efi/EFI/ubuntu/ 不存在,但文件夹 //boot/efi/EFI/neon/ 存在。因此问题在于它指向一个不存在的文件夹
4) 因此我将所有文件夹 /boot/efi/EFI/neon/ 复制到 /boot/efi/EFI/ubuntu/ 。这种方法奏效了,但就
我而言也是错误的 (hd1,gp1),因为它应该指向 hd1,gpt5。但我没有更改它,它就起作用了。
我更改的是文件 /boot/efi/EFI/ubuntu/grub.cfg,用于 msdos 格式:

search.fs_uuid xkjdiw-18e9-4d0a-ac55-2skjdh8425f root hd1,gpt5 
set prefix=($root)'/grub'
configfile $prefix/grub.cfg

答案2

可能是安装不正确。可能是有人从现有安装中复制了 grub 文件夹,grub-install 必须生成文件夹。有一个新的 grub 文件夹,并将 grub.cfg 放在其中,它就可以正常工作了。

这是一个非常简单的过程,我看到很多网站都说安装 grub 时没有最重要的参数!!(--boot-directory=/where/is/mounted):

1-将 USB 挂载到所需的文件夹,或者获取通过插入生成的 /media/user/... 路径。

2- 使用此安装路径--启动目录=安装位置

3- 将设备(根设备,无编号,例如 /dev/sdb 或 /dev/sdc...)作为最后一个参数传递。要发现它,请运行sudo fdisk -l并寻找sdb1 或 sdc1或以上字母,如果USB记忆棒,B 上面的字母为 sdb sdc,因为 A 字母代表硬盘,只有当你确定自己在做什么并且确实想在主硬盘上安装 grub 时才使用它。

在设备上生成 /grub 文件夹的所有命令是:

sudo grub-install --boot-directory=/where/is/mounted /dev/sdx

笔记:此方法在设备顶部创建一个 grub 文件夹,没有启动文件夹并且运行良好。我更喜欢点击次数少且运行良好的模式。如果您想要 USB 上的 /boot/grub 方案,请添加/启动在参数的末尾,grub 将为您创建 mkdir:

sudo grub-install --boot-directory=/where/is/mounted/boot /dev/sdx

相关内容