Ubuntu

為什麼 uEFI 韌體無法訪問軟體 RAID 1 /boot/efi 分區?

  • November 22, 2016

BIOS 韌體可以引導安裝在軟體 RAID 1 對上的 BIOS 格式化 /boot 分區,沒有問題。它甚至可以從安裝在軟體 RAID 1 對上的 LVM 卷上的 /boot 引導。

但是使用 uEFI 安裝,/boot/efi 必須位於非 md 分區上,否則韌體無法訪問它。

這是 uEFI 韌體的缺陷嗎?或者是 Ubuntu 如何在軟體 RAID 設備上設置 /boot/efi 的問題?GPT 分區表向韌體呈現軟體 RAID 的方式是否存在缺陷?

作為參考,我使用的是:Ubuntu Server 14.04.3 64bit mdadm RAID setup from the ‘Manual’ option in the partitioner。

EFI 知道如何訪問 FAT 和 FAT32 文件系統。這就是為什麼您的 EFI 引導分區必須是 FAT 或 FAT32 格式的原因。然而,EFI知道如何讀取軟體 RAID 1 分區,即使它是使用 FAT32 格式化的。有一個非常簡單的方法,至少使用 Arch Linux。安裝系統時,您將引導分區設置為 FAT32 格式的 RAID,但您指示 EFI 從各個分區引導。具體來說,你這樣做。

mdadm --create /dev/md0 --metadata 1.0 --raid-devices=2 --level=1 /dev/sd[ab]1
mkfs.fat -F32 /dev/md0

然後繼續安裝。不過,就 EFI 而言,引導分區分別是 /dev/sda1 和 /dev/ sb1。您將每一個都設置為引導設備,然後如果 /dev/sda 失敗,系統仍將從 /dev/sdb1 引導。系統啟動後,/dev/md0 RAID 1 啟動,確保 /dev/sda1 和 /dev/sdb1 保持同步。

我像這樣設置了所有系統並且沒有任何問題。(請注意,在引導分區上安裝軟體 raid 時,需要將 mdadm 元數據設置為 1.0。)

引用自:https://unix.stackexchange.com/questions/265368