UEFI требует загрузки из ESP, который в большинстве случаев отформатирован как vFAT. Если я правильно помню, BTRFS мог иметь подтома, отформатированные как ext3 / ext4, как диспетчер логических томов (LVM). Однако UEFI не поддерживает загрузку из BTRFS. В большинстве случаев решение состоит в простом использовании трех (или 2N + 1) дисков, два для RAID и один для загрузки. В этом случае меня больше всего беспокоит простое зеркалирование RAID1. В этом случае я могу использовать только два диска. Если бы материнская плата использовала BIOS, я мог бы просто отразить загрузочный раздел.
Я слышал, что эта проблема (необходимость использования дополнительного диска для загрузки) является одной из причин, по которой люди перешли на (freeBSD с) ZFS, хотя я могу вспомнить ложные сведения.
В моем случае я сделал зеркальное отображение всего диска с разделом. То есть на втором диске было два раздела: один 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.
Это именно то, что вы хотите почти во всех случаях, и если ваша конфигурация не отражает этого, вы, вероятно, захотите сделать так, чтобы она отражала это.
Том Linux MD в этом случае представляет собой RAID 1 между sda1 и sdb1. Не связывайтесь напрямую с sd [a, b] 1 и монтируйте только том MD, созданный из них (обычно /dev/md0
или /dev/md/0
если вы не почувствовали необходимость дать ему особое имя во время создания). Вы обязательно должны использовать RAID1 для тома ESP, поскольку прошивка материнской платы ожидает найти эти данные без изменений на любом отдельном диске во время загрузки.
Разделы подкачки, естественно, будут чередоваться, но отказ одного из них не приведет к сбою вашей системы почти во всех случаях. Не используйте MD для обмена, если у вас нет веской причины, так как пейджер очень умен.
Пул BTRFS будет сканировать автоматически, поэтому лучше указать этот том по UUID при добавлении записей для него в /etc/fstab
файл.
GRUB2 может загружаться с любого уровня RAID BTRFS. Просто убедитесь, что загрузчик "stage 1" установлен в обе таблицы разделов (sda, sdb). Это делается при вызове grub-install /dev/sda
(может немного отличаться в зависимости от дистрибутива).