grub-install 但不使用 UUID;bios_grub

grub-install 但不使用 UUID;bios_grub

我安装了支持 MDADM RAID 的 Ubuntu 18,启动盘为 (INTELhd0,gpt2-UUID)。我在具有 GPT 分区的磁盘上使用 bios 启动。第一个分区 (hd0,gpt1) 当然是 1MB grub-bios,第二个分区 (hd0,gpt2) 是启动分区,其中包含带有阵列配置模块的完整版 grub。第三个分区是 OS 根系统文件,位于 RAID1 中。为简单起见,所有启动分区都通过 rsync 手动克隆。

当一个驱动器发生故障时,我希望系统仍能启动。我使用了grub安装在其他磁盘(TOSHhd0,gpt2-UUID)上安装 grub,不幸的是,它使用了当前启动磁盘的配置,并指向grub_bios到原始 (INTELhd0,gpt2-UUID) 启动盘。如果主 INTEL-UUID 启动驱动器发生故障,并且从备用磁盘 (TOSH-UUID) 启动,grub_bios 会抱怨原始启动盘 (INTELhd0,gpt2-UUID) 包含完整 grub2 的缺失,并进入救援状态。输入设置前缀=(hd0,gpt2)/grub,然后insmod normal,正常启动就好了。

我如何告诉 grub-install 设置 bios_grub 映像来查找 (hd0,gpt2)/grub 而不是 INTELhd0,gpt2-UUID/grub?

root@testubu:~# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0 223.6G  0 disk  
├─sda1    8:1    0     1M  0 part  #this bios_grub points to UUIDsda only
├─sda2    8:2    0   250M  0 part  /boot #also /boot/grub
└─sda3    8:3    0    15G  0 part  
  └─md0   9:0    0    15G  0 raid1 /
sdb       8:16   0 111.8G  0 disk  
├─sdb1    8:17   0     1M  0 part  #this bios_grub points to UUIDsdb only
├─sdb2    8:18   0   250M  0 part  #backup /boot directory and /boot/grub
└─sdb3    8:19   0    15G  0 part  
  └─md0   9:0    0    15G  0 raid1 /

grub.cfk 设置为使用标签来查找启动分区,因此我不需要指定分区号。fstab 使用 sda2 作为其 /boot 标识符,我可能应该将其更改为 LABEL=。

看来我可以手动启动每个磁盘一次,因此当我运行 grub-install /dev/sda 时,它会自动将其自己的磁盘 UUID 放入 grub-bios 映像中。这似乎是一种奇怪的做法。

相关内容