双硬盘双系统,Leap 15.4 GRUB 无法添加 Fedora 37 启动项

Leap 15.4 和 Fedora 37 beta 安装在不同的硬盘上,root 加密但是 /boot 都没有加密。
在 Leap 15.4 中 cryptsetup open 了 Fedora 的 root(btrfs),使用 os-prober 是可以看到 Fedora 的,但是无论是使用 grub2-mkconfig 还是 YAST(已勾选探测外来操作系统)最后生成的 grub.cfg 都没有 Fedora 的启动项。
一开始以为是安全启动的问题,Fedora 的 keyring 已经使用 mokutil 添加到了 Leap 中,但还是没有效果。

nvme0n1                                                    259:0    0 953.9G  0 disk  
├─nvme0n1p1                                                259:1    0   500M  0 part  /boot/efi
├─nvme0n1p2                                                259:2    0     2G  0 part  /boot
└─nvme0n1p3                                                259:3    0 951.4G  0 part  
  └─cr_nvme-ZHITAI_TiPlus5000_1TB_*****-part3 254:0    0 951.4G  0 crypt 
    ├─VolGroup00-lvolroot                                  254:1    0   200G  0 lvm   /
    ├─VolGroup00-lvolhome                                  254:2    0 451.4G  0 lvm   /home
    └─VolGroup00-lvolopt                                   254:3    0   300G  0 lvm   /opt
nvme1n1                                                    259:4    0 953.9G  0 disk  
├─nvme1n1p1                                                259:5    0   4.9G  0 part  
├─nvme1n1p2                                                259:6    0   500G  0 part  
│ └─fedora                                                 254:6    0   500G  0 crypt 
├─nvme1n1p3                                                259:7    0 146.5G  0 part  
├─nvme1n1p4                                                259:8    0  69.6G  0 part  
└─nvme1n1p5                                                259:9    0   512M  0 part
sudo os-prober
/dev/nvme1n1p5@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
/dev/mapper/fedora:Fedora Linux 37 (Workstation Edition):Fedora:Linux:btrfs:UUID=***********-c96e01322631:subvol=

grub2-mkconfig 运行 shell 输出是有的,但是生成的 grub.cfg 文件里就没有 Fedora

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found theme: /boot/grub2/themes/openSUSE/theme.txt
Found Linux image: /boot/vmlinuz-5.14.21-150400.24.28-default
Found initrd image: /boot/initrd-5.14.21-150400.24.28-default
Found linux image: /boot/vmlinuz-5.14.21-150400.24.21-default
Found initrd image: /boot/initrd-5.14.21-150400.24.21-default
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found Windows Boot Manager on /dev/nvme1n1p5@/efi/Microsoft/Boot/bootmgfw.efi
Found Fedora Linux 37 (Workstation Edition) on /dev/mapper/fedora
Adding boot menu entry for UEFI Firmware Settings ...
done

新版 grub 默认不执行 os-prober,编辑 /etc/default/grub,增加或修改配置 GRUB_DISABLE_OS_PROBER=false,然后运行 grub2-mkconfig。

上面我操作的时候 GRUB_DISABLE_OS_PROBER 已经是 false 了。如果不启用 os-prober 运行 grub2-mkconfig 会提示 os-prober is disabled,目前 grub2-mkconfig 的输出就已经提示 os-prober will be executed
输出里面是显示 grub2-mkconfig 找到 Fedora 的,但是生成的 grub.cfg 还是没有 Fedora。

找到解决方案了,Fedora 默认启用了 BootLoaderSpec,但是其他发行版的 GRUB 不支持 BLS,所以 os-prober 能搜到但是 grub2-mkconfig 不能添加
在 Fedora 的 /etc/default/grub 中修改

GRUB_ENABLE_BLSCFG=false

重新生成 grub.conf,之后再在 openSUSE 里 grub2-mkconfig 就能正常添加 Fedora 启动项了

1赞

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。