創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2016年10月13日 星期四

重新安裝GRUB 2

使用GRUB 2做Ubuntu MATE/Windows雙系統開機也用了很久,在某些少數特殊情況下不得不重新安裝GRUB 2,這裡就記錄一下其中一種作法:

先交代一下所用的作業系統:
Ubuntu MATE 16.04 64位元
Windows 10家用版 64位元

一、以Ubntu MATE 16.04 64位元LiveCD(或USB開機碟)開機,進入桌面環境

二、開啟Terminal

三、確定一下正常系統分割區。可用以下指令:

$ sudo fdisk -l
$ sudo blkid
$ df -Th
假定硬碟的分割區在原本作業系統中(不是此時用LiveCD的環境)的使用狀況如下:
/sda7:給根目錄使用
/sda6:給/boot目錄用
/sda2:efi分割區,Windows Boot Manager也在這裡

簡化的表示如下:
/sda7    /
/sda6    /boot
/sda2    /boot/efi
接下來要將這幾個掛載好後以便重裝GRUB 2。

四、掛載正常檔案系統

$ sudo mount /dev/sda7 /mnt
這裡因為/boot是獨立分割區,所以要另外掛載進來:

$ sudo mount /dev/sda6 /mnt/boot
五、掛載重要虛擬檔案系統

$ for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
掛efi分割區:

sudo mount /dev/sda2 /mnt/boot/efi
這個若沒掛載,後面的grub-install會出現這錯誤:
grub-install: error: cannot find EFI directory

六、chroot到正常系統裝置

$ sudo chroot /mnt
七、重新安裝GRUB 2

$ grub-install /dev/sda

在 EFI 系統的固定磁碟安裝,必須掛載 EFI 系統分區。如果將其掛載在 /boot/efi 就不須要任何特別參數。[2]


八、重新建立GRUB 2選單檔案(grub.cfg)


$ update-grub
九、按Ctrl-D離開chroot

十、重新開機

$ sudo reboot
有必要時,可使用 efibootmgr ,這是用來調整EFI Boot Manger用的,與上述GRUB選單不同。例如:刪除編號為6的條目:

$ efibootmgr -b 6 -B

efibootmgr也可調整開機裝置的順序,使用 -o 參數。

以上是使用EFI的情況,若不是,就不掛efi分割區了,重開機之後再sudo update-grub,會自動尋找並加入Windows Boot Manager到GRUB選單中。

相關文章:

參考:

  1. Grub2/Installing
  2. GNU GRUB Manual 2.04
update: 2020-9-7

沒有留言:

張貼留言