環境:
雙系統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 分區和 / 分區)的作用、在不同系統環境下的名稱,切記切記!
————————————————