我有两个 GPT 格式的磁盘,它们都以 EFI 分区开头,后面跟着一个物理 raid 分区。我在这两个 raid 分区上安装了带有软件 raid 的 ubuntu-server 16.04,安装完成后,我使用 将 EFI 分区从已安装的 EFI 分区克隆到未安装的分区dd if=/dev/sda1 of=/dev/sdb1
,然后使用 将第二个磁盘插入 UEFI 启动链,sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l '\EFI\ubuntu\shimx64.efi'
这样如果一个磁盘坏了,我仍然能够从另一个磁盘启动。
在某个时候我这样做了apt upgrade
,并注意到 grub 已更新,因此我检查了哪个 EFI 分区已安装,并使用相同的日像之前一样命令,然后重新启动并检查 efibootmgr 的输出。
我注意到两个 HD 启动项都以“ubuntu HD(1, ....”开头。但我期望其中一个以“ubuntu2”开头(也许是“HD(2, ...”?)
我的问题是:这个输出是什么意思?这些条目是否都指向同一个磁盘,还是如我所料指向每个磁盘?为了确保相互可引导性,我是否需要删除这些条目,然后按原样重新插入它们?
我害怕关闭系统并移除磁盘来测试,以防在没有正确理解正在发生的事情的情况下做某事而导致大量停机时间。
$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 3 seconds
BootOrder: 0001,0000,2001,2002,2003
Boot0000* ubuntu HD(1,GPT,ae9a1a9a-1336-4871-a8a8-07cdaf82fc9f,0x800,0xee000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* ubuntu HD(1,GPT,9a770a2c-e8b6-4921-ab2c-4153c3efc8ea,0x800,0xee000)/File(\EFI\ubuntu\shimx64.efi)
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.7T 0 disk
├─sda1 8:1 0 476M 0 part
└─sda2 8:2 0 3.7T 0 part
└─md0 9:0 0 3.7T 0 raid1
├─vg-root 252:0 0 3.7T 0 lvm /
└─vg-swap 252:1 0 29.8G 0 lvm [SWAP]
sdb 8:16 0 3.7T 0 disk
├─sdb1 8:17 0 476M 0 part /boot/efi
└─sdb2 8:18 0 3.7T 0 part
└─md0 9:0 0 3.7T 0 raid1
├─vg-root 252:0 0 3.7T 0 lvm /
└─vg-swap 252:1 0 29.8G 0 lvm [SWAP]
答案1
解决了这个问题,它在我的相关问题中得到了解释和回答:如何在每个 EFI 分区上生成/或编辑指向同一物理磁盘上的 ubuntu 安装的 grub.cfg?