EFI系统分区可以被RAID吗?


12

我正在将UEFI和RAID与GPT磁盘一起使用Ubuntu 64位设置HTPC。

是否可以使用以下命令将EFI系统分区(分区类型0xEF00)作为RAID1阵列的一部分mdadm?我希望元数据版本1.0(位于磁盘末尾)将允许这样做。

此外,还应该设置“用于引导加载程序安装的设备”是什么,或者这仅适用于MBR磁盘?

Answers:


6

如您所说,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-installwith --removable标志来完成。

UPD。存在兼容性问题。在华硕P8Z68-V PRO / GEN3主板上尝试相同的配置。无论我做什么,系统都不会启动。


我也想知道如果您的BIOS写入分区之一会发生什么情况
sourcejedi

什么mdadm的0.90应该支持旧的GRUB(阅读)?也许它将适用于华硕P8Z68。
hrvoj3e

我对其进行了测试,并且只有在MD元数据1.0版中才有可能,因为ESP分区保留在GPT中,而元数据则存储在其后。在元数据版本2.0中,该分区已合并到MD超级块中,因此固件无法检测到它。
Kouros

5

经过大量的实验,我认为这是答案:

EFI系统分区(通常挂载在/boot/efi/)不会保存很多文件,除非GRUB而不是直接存储在此处/boot/grub/。内容通常不会更改,因此无需RAID分区。在不同磁盘上具有该分区的多个副本还需要使用UEFI引导条目进行设置efibootmgr。通常GRUB根据安装的分区初始化这个/boot/efi/

因此,似乎既不需要又不容易做到。


1
但是,假设您想为了一个磁盘出现故障而仅仅出于安全考虑而拥有raid1。会“而且不容易做到”。意味着有可能吗?
zidarsk2012年

所有这些指导说明引导分区和efi系统分区的指南呢?
CMCDragonkai 2014年

4

我认为简短的答案是:不,EFI系统分区(ESP)无法进行RAID处理。但是,如果在RAID磁盘之间克隆ESP并将两个分区都添加到EFI引导链中,则仍然可以获得类似RAID的优势。有关详细信息,请参阅如何在UEFI / GPT系统上安装具有双引导RAID 1分区的Ubuntu 14.04 64位?


/boot如果您进行更改(例如添加新内核等),那么您建议什么是同步每个分区的最佳方法?
CMCDragonkai 2015年


2

不,这还不可能,大多数具有UEFI的主板可以读取有限数量的EFI分区类型(例如FAT32),而RAID并不是其中之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.