Answers:
如您所说,mdadm元数据版本 1.0完成工作。
我已经设法获得技嘉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
第二个RAID /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
with --removable
标志来完成。
UPD。存在兼容性问题。在华硕P8Z68-V PRO / GEN3主板上尝试相同的配置。无论我做什么,系统都不会启动。
经过大量的实验,我认为这是答案:
EFI系统分区(通常挂载在/boot/efi/
)不会保存很多文件,除非GRUB而不是直接存储在此处/boot/grub/
。内容通常不会更改,因此无需RAID分区。在不同磁盘上具有该分区的多个副本还需要使用UEFI引导条目进行设置efibootmgr
。通常GRUB根据安装的分区初始化这个/boot/efi/
。
因此,似乎既不需要又不容易做到。
我认为简短的答案是:不,EFI系统分区(ESP)无法进行RAID处理。但是,如果在RAID磁盘之间克隆ESP并将两个分区都添加到EFI引导链中,则仍然可以获得类似RAID的优势。有关详细信息,请参阅如何在UEFI / GPT系统上安装具有双引导RAID 1分区的Ubuntu 14.04 64位?。
/boot
如果您进行更改(例如添加新内核等),那么您建议什么是同步每个分区的最佳方法?