BTRFS-RAID 和從 EFI 系統分割區啟動

BTRFS-RAID 和從 EFI 系統分割區啟動

UEFI 需要從 ESP 啟動,ESP 大部分時間格式化為 vFAT。如果我沒記錯的話,BTRFS 可以將子磁碟區格式化為 ext3/ext4,就像邏輯磁碟區管理員 (LVM) 一樣。但是,UEFI 不支援從 BTRFS 啟動。大多數情況下,解決方案只是使用三個(或 2N + 1)個磁碟,其中兩個用於 RAID,一個用於引導。在這種情況下,我主要關心的是簡單的 RAID1 鏡像。在這種情況下,我只能使用兩個磁碟。如果主機板使用 BIOS,那麼我可以簡單地鏡像啟動分區。

我聽說這個問題(必須使用額外的磁碟來啟動)是人們轉向(帶有 ZFS 的 freeBSD)的一個動機,儘管我可能記錯了。

就我而言,我所做的是用一個分割區鏡像整個磁碟。據了解,第二個磁碟有兩個分割區:一個ESP,一個btrfs分割區。但是,我假設這不是 BTRFS-RAID1 的用途。所以我的問題具體是:

  • 此配置是否會導致損壞或其他意外後果?
  • 更好的解決方案是什麼?

答案1

根據我在您的陳述中收集的信息,您有兩個具有以下(或類似)磁碟佈局的磁碟:

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 磁碟區是 sda1 和 sdb1 之間的 RAID 1。不要直接弄亂 sd[a,b]1,並且只安裝從它們創建的 MD 磁碟區(通常/dev/md0/dev/md/0除非您覺得需要在創建過程中為其指定一個特殊名稱)。您絕對必須對 ESP 磁碟區使用 RAID1,因為主機板韌體希望在啟動時在任何單一磁碟上找到完整的資料。

交換分區自然會進行條帶化,但在幾乎所有情況下,一個分區的故障都不會導致系統崩潰。除非有充分的理由,否則不要使用 MD 進行交換,因為尋呼機非常聰明。

BTRFS 池將自動掃描,因此在檔案中新增條目時最好透過 UUID 指定該磁碟區/etc/fstab

GRUB2 可以從任何 BTRFS RAID 等級開機。只需確保“第一階段”載入程式已安裝到兩個分區表(sda、sdb)。這是在呼叫時完成的grub-install /dev/sda(根據發行版可能略有不同)。

相關內容