Boot

如何在每個 EFI 分區上生成/或編輯 grub.cfg,該分區引用同一物理磁碟上的 ubuntu 安裝?

  • July 12, 2019

我在兩個磁碟上安裝了 Ubuntu 16.04 伺服器,軟體 raid 跨越兩個大分區。每個磁碟的開頭都包含一個 EFI 分區。我希望能夠從任一磁碟啟動(以防萬一失敗)-我閱讀的一份指南指示在安裝後使用“dd”簡單地複製 EFI 分區-但是,我發現這不起作用-閱讀後一點點,我認為這是因為 GRUB 條目包含一個分區 UID,該分區 UID 表示它應該引導的核心位置。所以我認為複製的 grub.cfg 僅包含一個磁碟的某種 UID 引用

我的問題是:如何在每個 EFI 分區上生成甚至手動編輯 grub.cfg 以便它引用同一物理磁碟上的 ubuntu 安裝?

$ lsblk
NAME          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda             8:0    0 953.9G  0 disk  
├─sda1          8:1    0   476M  0 part  /boot/efi
└─sda2          8:2    0 953.4G  0 part  
 └─md0         9:0    0 953.3G  0 raid1 
   ├─vg-root 252:0    0 923.5G  0 lvm   /
   └─vg-swap 252:1    0  29.8G  0 lvm   [SWAP]
sdb             8:16   0 953.9G  0 disk  
├─sdb1          8:17   0   476M  0 part  
└─sdb2          8:18   0 953.4G  0 part  
 └─md0         9:0    0 953.3G  0 raid1 
   ├─vg-root 252:0    0 923.5G  0 lvm   /
   └─vg-swap 252:1    0  29.8G  0 lvm   [SWAP]

使用您最喜歡的文本編輯器,打開/etc/default/grub.cfg並取消註釋顯示的行GRUB_DISABLE_LINUX_UUID=true

使用新配置更新 grub:

sudo update-grub

將更新的 grub 配置複製到另一個 EFI 分區:

dd if=/dev/sda1 of=/dev/sdb1

進入 UEFI 菜單並禁用所有不屬於 ubuntu 安裝的選項(例如 UEFI shell)。

引用自:https://serverfault.com/questions/974809