修复 Rocky Linux 的 EFI 引导通常需要使用安装介质进入救援模式(Rescue Mode)。
以下是标准操作流程:
- 进入救援模式启动介质:使用与原系统版本一致的 Rocky Linux 安装光盘或 U 盘 启动。
菜单选择:在引导菜单中选择 Troubleshooting --> Rescue a Rocky Linux system。
挂载系统:系统会提示你挂载现有的 Linux 安装,输入 1(Continue)以继续。此时,原系统通常会被挂载到 /mnt/sysimage。 - 切换根目录在 shell 中执行以下命令,将当前操作环境切换到原系统中:
chroot /mnt/sysimage - 重新安装并生成 EFI 引导进入 chroot 环境后,执行以下步骤修复引导文件:
确认 EFI 分区挂载:确保 /boot/efi 已正确挂载。可以通过 df -h 查看。重新安装 GRUB2(适用于 EFI):通常在 EFI 环境下不直接使用 grub2-install,而是重新生成配置文件,但如果相关 EFI 程序文件丢失,可运行:
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=rocky
生成新的 GRUB 配置文件:
这是最关键的一步,用于刷新启动项。
grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg
如果
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=rocky报错,调到后续步骤
配置Recue Mode的网络,可使用nmcli或者nmtui 直接配置网络,推荐nmtui,有命令行图形化,方向键即可选择和写入
配置网络完成后直接重新安装现有内核。不在使用上述修复的形式,而是采取重新安装的形式
dnf reinstall shim-x64 grub2-efi-x64 grub2-common
确认内核文件是否真的在 /boot
ls -l /boot/vmlinuz-*
如果提示文件不存在:说明你的 /dev/sda2(根分区)虽然挂载了,但 /dev/sda1(或者其他存放 /boot 的分区)没有挂载到 /boot 目录。
强制重新安装内核项
dnf reinstall kernel-core kernel-modules
如果提示没有网络或无法安装,请尝试手动将引导项写入:
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
重新注册主板启动项时才需要指定。请执行这一条命令来确保主板知道去 sda1 找启动文件:
-d /dev/sda:指定物理磁盘。-p 1:指定第 1 个分区(即你的 EFI 分区)。
efibootmgr -c -d /dev/sda -p 1 -L "Rocky Linux" -l '\EFI\rocky\shimx64.efi'