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/sda2
EFIブートローダーを含むパーティションです。形式はです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つの一般的な解決策がありますが、どちらも適用できません。
FATパーティションを削除するか、別のファイルシステムタイプを使用してフォーマットします。私の場合、これはEFIシステムパーティションなので言葉ではありません。〜しなければならない存在します〜しなければならないFATバリアントの1つとしてフォーマットしてください。そうしないと、EFI ブートローダをディスクに挿入できないか、UEFI BIOS がブートローダを見つけることができません。
を使用してください
zpool create -f ...
。つまり、-f
上記のコマンドに追加します。これはzpool
パーティションを破壊して同じ問題を引き起こすので、意味がありません。
私のもう一つのアイデアは、まずパーティション2なしでパーティションレイアウトを作成し、それに十分なスペースを残してから、ミラーvdevを作成してパーティション2を追加することです。これはうまくいくと確信していますが、ディスクの1つを交換したり再同期しようとしたときなど、あらゆる種類の問題が発生する可能性があることも読んでいます。デフォルトでは、ZFSはディスク上のこれらのパーティションを気に入らず、最初のvdevを作成するときに問題を解決すると後で費用がかかり、回復操作を実行したり、障害のあるパーティションを交換したりできない可能性があります。ディスク。
それでは、ミラー化されたvdevの一部として使用したいディスクにEFIシステムパーティションを配置する正しい方法は何ですか?