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