UEFI需要从大多数时间格式化为vFAT的ESP启动。 如果我记得正确的话,BTRFS可以像逻辑卷pipe理器(LVM)那样将子卷格式化为ext3 / ext4。 但是,UEFI不支持从BTRFS启动。 大多数情况下,解决scheme只需使用三个(或2N + 1)磁盘,其中两个用于RAID,另一个用于启动。 在这种情况下,我主要关心的是简单的RAID1镜像。 在这种情况下,虽然我只能使用两个磁盘。 如果主板使用BIOS,那么我可以简单地镜像启动分区。
我听说这个问题(不得不使用一个额外的磁盘启动)是为什么人们已经转向使用ZFS的(freeBSD)的一个动机,尽pipe我可能会错误地回想起来。
在我的情况下,我所做的是用分区镜像整个磁盘。 Id est,第二个磁盘有两个分区:一个ESP,一个btrfs分区。 但是,我认为这不是BTRFS-RAID1打算如何使用。 所以我的问题具体是:
根据我在您的陈述中收集的信息,您有两个具有以下(或类似)磁盘布局的磁盘:
sda: GPT sda1: Linux MD RAID member sda2: Swap sda3: BTRFS pool member (RAID 1 allocation policy) sdb: GPT sda1: Linux MD RAID member sda2: Swap sda3: BTRFS pool member (RAID 1 allocation policy) md0: ESP (~100mb? VFAT) mounted at /boot/efi (RAID 1 allocation policy) BTRFS pool: root subvol (mounted at /) home subvol (mounted at /home) et cetera ad nauseam.
在几乎所有情况下,这正是你想要的,如果你的configuration没有反映出来,你可能会想让它反映出来。
在这种情况下,Linux MD卷是sda1和sdb1之间的RAID 1。 不要直接和sd [a,b] 1混淆,只能挂载由它们创build的MD卷(通常是/dev/md0或者/dev/md/0除非你觉得需要给它一个特殊的名字在创作过程中)。 您绝对必须使用RAID 1作为ESP卷,因为主板固件希望在启动时在任何单个磁盘上查找完整的数据。
交换分区自然会分条,但是在几乎所有情况下都不会崩溃。 除非有充分的理由,否则不要使用MD进行交换,因为传呼机非常聪明。
BTRFS池将自动扫描,因此在/etc/fstab文件中添加条目时,最好使用UUID指定该卷。
GRUB2可以从任何BTRFS RAID级别启动。 只要确保“stage 1”加载程序安装到两个分区表(sda,sdb)。 这是在调用grub-install /dev/sda (根据发行版可能略有不同)。