安装Windows后如何安装/更新Grub并恢复双系统启动
别慌,这种情况真的太常见了——Windows安装时会直接覆盖UEFI引导分区里的引导项,把Grub给挤没了,再加上你之前设置过Secure Boot密码,咱们得先把这个前置问题处理好,一步步来恢复双系统启动:
第一步:先处理Secure Boot设置
开机时按对应快捷键进入BIOS/UEFI设置(不同品牌电脑快捷键不一样,一般是F2、Del、Esc或者F10,开机时屏幕底部会有提示)。找到Secure Boot选项,输入你之前设置的密码,把它暂时关闭(或者选择允许第三方引导程序,不过直接关闭更稳妥,后续你可以再重新开启)。保存设置后重启。第二步:用Ubuntu安装介质启动进入试用环境
找个能正常启动的Ubuntu安装U盘/光盘,插到电脑上,开机选择从这个介质启动,然后选择「试用Ubuntu(Try Ubuntu without installing)」,进入桌面环境。第三步:确认Ubuntu的系统分区和EFI分区
打开终端(按下Ctrl+Alt+T),输入命令:sudo fdisk -l
查看输出内容,找到你的Ubuntu根分区(一般是ext4格式,大小和你之前安装的Ubuntu系统对应,比如/dev/sda2或者/dev/nvme0n1p2),再找到EFI引导分区(FAT32格式,大小通常在200MB-500MB之间,比如/dev/sda1),把这两个分区路径记下来。第四步:挂载Ubuntu系统分区和EFI分区
假设你的Ubuntu根分区是/dev/sda2,EFI分区是/dev/sda1,依次输入以下命令:sudo mount /dev/sda2 /mntsudo mount /dev/sda1 /mnt/boot/efi
如果你的分区路径不一样,替换成你自己的即可。第五步:挂载系统关键目录
为了让后续的Grub操作能正确识别系统环境,需要挂载几个关键目录:sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys第六步:切换到Ubuntu系统环境
输入命令进入你原来的Ubuntu系统环境:sudo chroot /mnt第七步:更新Grub并重新安装
首先更新Grub配置,让它自动检测到Windows引导项:sudo update-grub
执行完这个命令后,你应该能看到终端输出里提到「Found Windows Boot Manager」的提示,说明已经识别到Windows了。
接着重新安装Grub到磁盘的引导区域:sudo grub-install /dev/sda
注意这里是磁盘的名称(比如/dev/sda或者/dev/nvme0n1),不要加分区号(比如不要写成/dev/sda1)。第八步:重启电脑完成恢复
输入exit退出chroot环境,然后重启电脑,拔掉Ubuntu安装介质。这时候开机应该就能看到Grub引导菜单了,里面会有Ubuntu和Windows的选项,你可以自由选择启动哪个系统。
如果之后你想重新开启Secure Boot,只需要再次进入BIOS/UEFI设置,打开该选项并输入密码即可,不会影响已经恢复的Grub引导。
备注:内容来源于stack exchange,提问作者Lauri

