如果你在安装了Ubuntu和Windows双系统后,又重装了Windows系统。那么Grub引导项大概率会被Windows Boot Manager覆盖,这时候你就进不了Ubuntu了。但不要慌,按照下面的步骤可以修复grub2引导,而且不需要安装额外的软件。
制作Ubuntu的U盘启动盘
为了修复引导项,我们需要用到Ubuntu系统提供的软件工具。虽然我们暂时进不去原来的Ubuntu系统,但是我们可以使用写在Ubuntu U盘中的镜像来获得一个可用的基本Ubuntu环境。
在Ubuntu官网下载镜像文件。
制作U盘启动盘可以使用免安装、小巧好用的rufus。你可以使用rufus快速创建一个U盘启动盘,注意选择GPT模式。
引导U盘启动盘
重启电脑,在BIOS引导设置中引导U盘,然后进入Ubuntu引导安装程序后,在安装界面选择Try Ubuntu进入Ubuntu Live。
执行Grub2重建操作
使用fdisk,找到EFI分区,/boot挂载点所在的分区(如果你没有设置/boot挂载点则为/挂载点)。
挂载/boot挂载点所在的分区到/mnt下(我的分区在nvme固态硬盘上)。
% sudo mount /dev/nvme0n1p6 /mnt/
挂载EFI分区,在这里你需要知道在你的硬盘中那一个分区是EFI系统分区(我这里是第五个分区)。
% sudo mount /dev/nvme0n1p5 /mnt/boot/efi
连接其他必要的目录
% sudo mount --bind /dev /mnt/dev % sudo mount --bind /dev/pts /mnt/dev/pts % sudo mount --bind /proc /mnt/proc % sudo mount --bind /sys /mnt/sys
转换根目录到/mnt下
% sudo chroot /mnt
修复Grub2引导
对于32位系统和64位系统,在这里你需要运行的命令是不同的。下面分别给出了它们对应的命令。
32位系统
% sudo grub-install --target=i386-efi /dev/nvme0n1
64位系统
% sudo grub-install --target=x86_64-efi /dev/nvme0n1
执行完上面命令当中的一条后,再执行一下Recheck
% grub-install --recheck /dev/nvme0n1
后续清理步骤(可要可不要)
% exit % sudo umount /mnt/sys % sudo umount /mnt/proc % sudo umount /mnt/dev/pts % sudo umount /mnt/dev % sudo umount /mnt
然后重新启动,你会发现已经能够成功进入grub2界面,并且grub2已经识别到了Ubuntu系统和Windows Boot Manager。
重建Grub2中的Windows Boot Manager引导项
重启电脑,通过Grub进入Ubuntu系统,运行以下命令重新生成配置文件
% sudo update-grub