483 words
2 minutes
记修复 Arch Linux grub + Windows Boot Manager 双系统 UEFI 引导
笔者装有 Nvidia 驱动 + KDE Plasma + Arch Linux 的笔记本电脑从睡眠状态重新唤醒时,有时会遇到黑屏或显示图像错乱的情况,不论在 UEFI 选项中开关 Optimus / Hybrid 设置均会出现类似情况。
为重新进入系统,笔者选择了强制重启以退出黑屏状态。然而,重启后发现电脑不断循环重启,没能进入系统。进入 BIOS 启动项选择后发现 grub 及 Windows Boot Manager 引导选项双双消失。
经检索,这可能是由于…
强制断电导致 BIOS 损坏,于是开机后主板自动从备份 BIOS 里恢复,EFI 启动记录就丢失,然后 grub 就消失了。
—— reuixiy
遂决定使用 Arch Linux 安装盘进行抢救。
NOTE或许,也可以使用其他系统的 Live CD 进行 grub 的引导修复
修复 grub 引导
从 Arch Linux 安装盘进行启动
使用
lsblk
命令查看磁盘分区状况。以笔者为例,分区状况大致为…/dev/nvme0n1p7
: EFI 分区/dev/nvme0n1p8
: Swap 分区/dev/nvme0n1p9
: Arch Linux 根目录
挂载文件系统
WARNING注意替换 Volume 名称
mount /dev/root_partition /mnt
mount --mkdir /dev/efi_system_partition /mnt/boot
swapon /dev/swap_partition
chroot
进入 Arch Linux 系统
arch-chroot /mnt
- (若此前从未进行过此步骤…) 使用 Pacman 安装
grub
,efibootmgr
与os-prober
包
NOTE请依据 Arch Linux Wiki 进行网络配置,此处不再赘述
sudo pacman -S grub efibootmgr os-prober
- 运行
grub-install
grub-install --efi-directory=/boot --bootloader-id=grub
借助 grub 修复 Windows Boot Manager
进入 Linux 终端编辑
/etc/default/grub
,取消注释或新增GRUB_DISABLE_OS_PROBER=false
一行生成
grub.cfg
sudo grub-mkconfig -o /boot/grub/grub.cfg
一般情况下,此时的 grub 会返回其已发现 Windows Boot Manager 的提示
重启进入 grub 引导,会发现 grub 新增了
Windows
之选项通过该选项进入 Windows 系统后,Windows 会修复自身引导,再次重启后即可在 UEFI 选项中重新看到 grub 与 Windows Boot Manager 的引导选项。
参考内容
记修复 Arch Linux grub + Windows Boot Manager 双系统 UEFI 引导
https://wrye.dev/posts/repair-grub-windows-uefi-boot/