如何在每个 EFI 分区上生成/或编辑指向同一物理磁盘上的 ubuntu 安装的 grub.cfg?

如何在每个 EFI 分区上生成/或编辑指向同一物理磁盘上的 ubuntu 安装的 grub.cfg?

我在两个磁盘上安装了 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]

答案1

使用您最喜欢的文本编辑器,打开/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)。

相关内容