UEFIブータブルイメージvdevを構築する方法は?

UEFIブータブルイメージvdevを構築する方法は?

2つの同じディスクを持つサーバーがあります。このディスクからZFSイメージvdevを作成し、ここにZFSファイルシステムを作成し、それをルートファイルシステムとして使用し、ここから起動したいと思います。

私は過去に以前のブートメカニズムを使用してこれを正常に実行しました。しかし、今回はEFIを介して起動したいと思います。したがって、各ディスクに次のパーティションレイアウトを作成しました。

Device          Start        End    Sectors  Size Type
/dev/sda1     1048576 4000780287 3999731712  1.9T Solaris /usr & Apple ZFS
/dev/sda2          40    1048575    1048536  512M EFI System
/dev/sda9  4000780288 4000797326      17039  8.3M Solaris reserved 1

これは/dev/sda2EFIブートローダーを含むパーティションです。形式はですFAT32

2番目のディスクの/dev/sdbパーティションレイアウトは同じです。

次のようにミラーvdevを作成しようとすると

zpool create -o ... -O ... rpool mirror /dev/disk/by-id/ata-disk1 /dev/disk/by-id/ata-disk2

次のエラーメッセージが表示されます。

invalid vdev specification
use '-f' to override the following errors:
/dev/disk/by-id/ata-disk1 contains a filesystem of type 'vfat'
/dev/disk/by-id/ata-disk2 contains a filesystem of type 'vfat'

もちろん私もこの問題をどのように解決できるか長い間研究してきたが、役に立たなかった。 2つの一般的な解決策がありますが、どちらも適用できません。

  1. FATパーティションを削除するか、別のファイルシステムタイプを使用してフォーマットします。私の場合、これはEFIシステムパーティションなので言葉ではありません。〜しなければならない存在します〜しなければならないFATバリアントの1つとしてフォーマットしてください。そうしないと、EFI ブートローダをディスクに挿入できないか、UEFI BIOS がブートローダを見つけることができません。

  2. を使用してくださいzpool create -f ...。つまり、-f上記のコマンドに追加します。これはzpoolパーティションを破壊して同じ問題を引き起こすので、意味がありません。

私のもう一つのアイデアは、まずパーティション2なしでパーティションレイアウトを作成し、それに十分なスペースを残してから、ミラーvdevを作成してパーティション2を追加することです。これはうまくいくと確信していますが、ディスクの1つを交換したり再同期しようとしたときなど、あらゆる種類の問題が発生する可能性があることも読んでいます。デフォルトでは、ZFSはディスク上のこれらのパーティションを気に入らず、最初のvdevを作成するときに問題を解決すると後で費用がかかり、回復操作を実行したり、障害のあるパーティションを交換したりできない可能性があります。ディスク。

それでは、ミラー化されたvdevの一部として使用したいディスクにEFIシステムパーティションを配置する正しい方法は何ですか?

ベストアンサー1

おすすめ記事