环境:
双系统windows10 + Ubuntu20.04
windows系统盘由256G升级到1T固态!
方式:分区助手系统迁移!导致的问题如下:
1.没有备份winRE分区,丢失WinRE环境,无法更新!
修复方法:重置引导EFI分区,带来问题:
2.格式化重置ESP分区,丢失ubuntu的引导文件导致无法进入Ubuntu!
修复方法:Ubuntu安装U盘进入live模式
UEFI启动时需要有一个ESP分区(EFI 系统分区),这个分区的EFI目录下有三个目录(安装Ubuntu后),一个是BOOT目录,一个是Microsoft目录还有一个是Ubuntu目录,我是将系统启动项分别放到了两个硬盘中分别是sda(SSD)与sdb(机械硬盘)。UEFI方式时会找到BOOT目录下的bootx64.efi启动文件并运行,及默认启动文件。而Microsoft目录下有一个bootmgfw.efi,对比发现这两文件一样的,也就是说UEFI找到的bootx64.efi就是Microsoft下的efi文件,因此系统默认启动的就是windows系统,而在ubuntu启动界面中我们可以选择进入ubuntu和windows系统,因此我们可以,将ubuntu文件夹中的grubx64.efi文件替换掉bootx64.efi,并重命名为bootx64.efi即可让系统默认启动ubuntu系统,或者我们可以在BIOS中新建一个ubuntu16.04的启动项,将其链接到grubx64.efi的启动文件上,但由于重装win10并更新了bios后ubuntu启动文件丢失因为我们需要重新生成启动文件。
解决方法:
主要思路
** MBR**
** 找到grub启动程序,grubx64.efi,放到ESP分区的ubuntu目录下即可。**
** 进入ubuntu的live模式:**
sudo -i (取得root特权)
fdisk -l (只能用于MBR分区结构,找到你ubuntu“/”和“/boot”所在的磁盘区号)
** 进入windows系统使用diskgenius查看分区**
解决过程:
EFI+GPT模式下修复GRUB2双系统引导:
对于双系统用户,一般而言,推荐先安装 Windows 8/10,再安装 Linux,并使用 Linux 的 GRUB2 作为双系统引导管理器。那么,重装 Windows 后,GRUB2 会被破坏,只能进入 Windows。如何再次找回 GRUB2 双系统引导,就是本文的主题。
用 Linux 启动盘进入 Live 系统环境,在 Live 的终端里,创建修复 GRUB2 所需的文件夹:
$ sudo mkdir -p /mnt/system
把 Linux 的 / 分区挂载到创建的文件夹:(注意:站长的是 sdb9,请确认自己的 / 分区所在,不可照搬)
gdisk -l (只能用于MBR分区结构,找到你ubuntu“/”和“/boot”所在的磁盘区号)
$ sudo mount /dev/sdb9 /mnt/system
把 EFI 分区(即 ESP 分区)也挂载:
$ sudo mount /dev/sdb8 /mnt/system/boot/efi
用 efibootmgr 创建 ubuntu 的启动项:(注意:站长的主硬盘是 sdb,请确认自己的主硬盘,不可照搬)
$ sudo efibootmgr -c -d /dev/sdb -p 2 -w -L ubuntu
重启,并在 BIOS 中选择刚才创建的 ubuntu 启动项,进入 Ubuntu。
OK,已经进入本机硬盘上的 Ubuntu 系统了,但 GRUB2 修复并未完毕。打开终端,重新安装 GRUB2 到 EFI 分区:
$ sudo grub-install /dev/sda1
刷新一下 GRUB2 配置:
$ sudo update-grub2
现在重启,即可看到亲切的 GRUB2 终于“夺回”双系统引导权了!
修订: 站长另外介绍一种更简便的方法。用 Linux 启动盘进入 Live 系统环境,在终端中依次执行如下命令:
$ sudo su
mount /dev/sdb9 /mnt(注意先确认自己的 / 分区是 sdaX)
mount /dev/sdb8 /mnt/boot/efi
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
mount -t devpts pts /mnt/dev/pts/
chroot /mnt
grub-install /dev/sdb8
update-grub2
重启:sudo reboot
按F2进入bios界面
添加在uefi处添加ubuntu16.04的启动选项,并将启动文件连接到efi/ubuntu/grubx64.efi上,可参考我前面的博客。
小结:EFI 引导 + GPT 分区模式下的双系统问题稍微复杂一点,需要朋友们多实操、多领会,关键是搞清楚自己的硬盘分区(EFI 分区和 / 分区)的作用、在不同系统环境下的名称,切记切记!
————————————————