正如你所说,mdadm元数据版本1.0可以完成这项工作。
我已经成功配置了Gigabyte的GA-C1037UN-EU EFI能够引导的设置。
这个配置仅限于ESP分区的RAID1,但允许在其他分区使用任何RAID配置。
以两个驱动器上的RAID1为例。每个磁盘的分区方式如下:
sda (gpt)
--sda1 (512MB)
mdadm array member with 1.0 metadata format
boot and esp flags set
--sda2 (rest of disk)
mdadm array member with 1.2 metadata format
首先,在每个驱动器上创建了sdX1分区的RAID,并用于ESP分区。其余驱动器的容量可以以任何方式使用,例如也可以用于RAID1。
让第一个RAID是/dev/md/efi
,第二个是/dev/md/data
。
/dev/md/efi
不应使用任何分区标签,如MBR或GPT。 /dev/md/data
稍后可以进行分区或用作LVM pv。例如:
/dev/md/efi
--fat32 fs, mounting to /boot/efi/
/dev/md/data
--/dev/md/data1
linux swap partition
--/dev/md/data2
ext4 root partition
... (other needed partitions)
元数据版本1.0具有一个简单的功能:超级块存储在RAID分区的末尾,因此BIOS可以检测到带有ESP和BOOT标志的普通FAT32分区。因此,没有任何阻止BIOS从该分区搜索EFI/BOOT/BOOTX64.EFI并从中引导的东西。
这种方法的主要限制是GRUB应配置为在可移动介质的路径中安装可引导的EFI文件,因为efibootmgr
试图使BIOS直接从md
设备而不是sdX
启动。可以使用grub-install
和--removable
标志来完成。
更新。存在兼容性问题。尝试在ASUS P8Z68-V PRO/GEN3主板上进行相同配置。无论我做什么系统都无法启动。