我正在双重启动两个 Ubuntu Linux 发行版。它们两个都只创建了一个启动项:
Boot000A* Ubuntu
由于第二个(不常用)是在我的主发行版(每天使用)之后安装的,因此内核不会通过“sudo update-grub”在该发行版中自动更新。我必须登录到其他 ubuntu 发行版,输入“update-grub”才能使用我主发行版中最新更新的内核。
我怎样才能使我的主要 ubuntu 发行版的 grub 条目成为默认条目而不是次要条目(UEFI)?
答案1
在您的 ESP - efi 系统分区中有一个 3 行 grub,它是您安装中完整 grub 的配置文件条目。我安装了多个 Ubuntu,很快就学会了备份 ESP,但更重要的是备份 ESP 中的 grub.cfg。如果您知道分区和 UUID,您可以轻松编辑该 grub.cfg,只需将条目更改为适合您的主要工作安装的正确条目即可。
sudo blkid
条目看起来会像这样,这是我的 UUID 和 hd0,gpt6
fred@Asusz97:~$ cat /boot/efi/EFI/ubuntu/grub.cfg
search.fs_uuid 255a2800-b871-4fdf-a809-16987e64b8b3 root hd0,gpt6
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
如果您没有运行 Boot-Repair 或手动编辑 fstab,您可能无法编辑该 grub.cfg。Ubuntu 从默认值更改为 0077
安装 14.04 fstab 条目默认值时,/boot/efi 位于 /dev/sda1
UUID=FD76-E33D /boot/efi vfat defaults 0 1
16.04 fstab 条目 umask=0077
UUID=68CD-3368 /boot/efi vfat umask=0077 0 1
sudo nano /etc/fstab
编辑 fstab 并将 umask=0077 更改为默认值并重新启动。应运行 sudo mount -a 以确认没有拼写错误,但不会重新安装 efi 分区,只有重新启动才会。
然后你可以编辑 grub.cfg
sudo nano /boot/efi/EFI/ubuntu/grub.cfg
您可能希望在两个安装中编辑 fstab 并备份整个 ESP 和 grub.cfg。我通常在 ESP 中创建新文件夹作为 /boot/efi/EFI/ubuntu 到版本的副本。
fred@Asusz97:~$ ls -l /boot/efi/EFI
total 24
drwxr-xr-x 2 root root 4096 Apr 15 13:54 asus_ar
drwxr-xr-x 2 root root 4096 Jun 22 12:13 Boot
drwxr-xr-x 3 root root 4096 Jun 24 17:43 mate
drwxr-xr-x 2 root root 4096 Apr 23 2015 trusty
drwxr-xr-x 3 root root 4096 Jun 23 13:57 ubuntu
drwxr-xr-x 2 root root 4096 Sep 27 2015 xenial
然后我关闭 os-prober,这样 grub 就不会通过搜索系统添加其他安装。
并将我自己的启动节添加到 40_custom,以便在所有其他安装中启动到最新内核的链接。这样我就不必运行 sudo update-grub 两次并多次重启。
https://help.ubuntu.com/community/Grub2/CustomMenus
https://help.ubuntu.com/community/Grub2/Setup#Specific_Entries
答案2
我找到了问题的答案这里。
我必须重新安装 grub:
apt-get install --reinstall grub-efi-amd64
然后我被问到:
配置文件 /etc/default/grub 有新版本可用,但当前安装的版本已被本地修改。
您想对修改后的配置文件 grub 做什么?
- 安装软件包维护者的版本 (*)
- 保留当前安装的本地版本
- 显示版本之间的差异
我选择了第一个选项,并且我的主要发行版的 grub 再次成为主版本。