uEFIファームウェアがソフトウェアRAID 1 /boot/efiパーティションにアクセスできないのはなぜですか?

uEFIファームウェアがソフトウェアRAID 1 /boot/efiパーティションにアクセスできないのはなぜですか?

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 64ビットmdadm RAID設定を使用しています。

答え1

EFIはFATおよびFAT32ファイルシステムにアクセスする方法を知っています。これがEFIブートパーティションがFATまたはFAT32形式である必要がある理由です。しかし、EFIはいいえFAT32でフォーマットされていても、ソフトウェアRAID 1パーティションを読み取る方法を学びます。少なくとも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に設定する必要があります。)

関連情報