同一SSD上双Fedora安装无法引导至Fedora A的解决求助
同一SSD上双Fedora安装无法引导至Fedora A的解决求助
Hi 各位大佬,我碰到了一个双系统引导的棘手问题,想请教下怎么解决:
我在同一块SSD上安装了两个Fedora系统,暂时叫它们Fedora A和Fedora B。Fedora A是先装的,占了220GB的分区(对应/dev/nvme0n1p3),Fedora B是后来装的,在260GB的分区(/dev/nvme0n1p5)上。两个分区都是单独LUKS加密的,而且系统是UEFI模式。
本来我是把Fedora A当离线保险箱用,存密码和机密文档;Fedora B用来日常个人使用。结果装完Fedora B之后,现在开机直接就进Fedora B了,按Esc键只能看到Fedora B的不同内核版本,完全找不到Fedora A的引导入口。不过我已经通过解密Fedora A的分区并chroot进去确认过,系统文件都是完好的,就是引导不了。
有没有大佬能指点下,怎么才能恢复Fedora A的引导选项,正常启动它呢?
针对这个问题的几种解决思路
思路一:在Fedora B中更新GRUB,让它识别Fedora A
这是最直接的方法,利用Fedora B的系统来扫描并添加Fedora A的引导项:
- 先安装
os-prober工具,它能自动检测其他Linux系统:sudo dnf install os-prober - 找到并挂载EFI系统分区(ESP)——通常是
vfat格式的分区,用lsblk -f可以查看,比如它可能是/dev/nvme0n1p1,挂载到/boot/efi:sudo mount /dev/nvme0n1p1 /boot/efi - 生成新的GRUB配置文件,这个过程中
os-prober会扫描到加密的Fedora A分区,提示你输入解密密码,输入后就会把Fedora A的引导项加入菜单:sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg - 重启系统,现在GRUB菜单里应该就能看到Fedora A的选项了。
思路二:用Fedora安装介质救援Fedora A的引导
如果思路一没成功,可以试试从安装U盘进入救援模式修复:
- 插入Fedora安装介质,开机从它启动,选择「Troubleshooting」→「Rescue a Fedora system」。
- 系统会自动检测已安装的系统,提示是否挂载时选「Continue」,之后会进入chroot环境(如果没自动进入,手动执行
chroot /mnt/sysimage)。 - 挂载ESP分区:
mount /dev/nvme0n1p1 /boot/efi - 给Fedora A重新安装GRUB到ESP,并且单独命名避免混淆:
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=fedora-a - 生成Fedora A专属的GRUB配置:
grub2-mkconfig -o /boot/efi/EFI/fedora-a/grub.cfg - 退出chroot(输入
exit)并重启,现在UEFI启动菜单里会出现「fedora-a」的选项,选它就能进Fedora A了。
思路三:调整UEFI启动项优先级
如果上面两种方法都不行,可能是UEFI的启动项顺序问题:
- 在Fedora B中运行命令查看当前UEFI启动项列表:
你会看到类似sudo efibootmgrBoot0001* fedora(对应Fedora B)、Boot0002* fedora-a(对应Fedora A)的条目。 - 如果Fedora A的启动项存在但优先级靠后,用命令调整它的优先级到前面:
这里的sudo efibootmgr -o 0002,00010002和0001替换成你实际看到的Fedora A和Fedora B的启动项编号,这样开机就会优先加载Fedora A的引导菜单。
备注:内容来源于stack exchange,提问作者Trojanstudy
相关产品推荐
相关产品推荐

