FreeBSDブートローダが正しいプールから起動できない

FreeBSDブートローダが正しいプールから起動できない

2つのZFSプールがあるシステムにFreeBSD 10.1をインストールし、ブートローダーのみを含む他のハードドライブから起動しました。メインプールディスクがPCI-EカードのSATAポートに接続されており、ブートローダが間違ったプール(マザーボードのSATAポートに直接接続されている2番目のプール)から起動しようとしています。

エラーは次のとおりです。

Can't find /boot/zfsloader
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot:
/
Cant't find /boot/kernel/kernel
FreeBSD/x86 boot
Default: storage:/boot/kernel/kernel
boot: 

/mnt/boot/loader.conf で vfs.root.mountfrom="zfs:zpool" または "zfs:zpool/ROOT" を設定しようとしましたが、動作しません。

2番目のプールのディスクを取り外すと、システムが正しく起動します。

ありがとうございます。

答え1

まあ、私はそれを自分で見つけました。

ZFSローダーは起動するルートプールを設定できませんが、プールされたBIOSの起動優先順位で正しいルートプールを推測しようとします。

正しいプールから起動するために、ブートローダを含むドライブをBIOSの最初の起動デバイスとして設定し、ルートミラープールに属するドライブを2番目と3番目に設定しました。

答え2

cp -r /boot正しいプールから間違ったプールに移動してみてください。bootfs無効なプールのプロパティが空であるか、正しいプールに設定されていることを確認してください。

答え3

適切な展開CDから「ライブCD」モードで起動します。ルートとしてログインします。

では、起動可能なプールを「タンク」と仮定しましょう。

プールをインストールせずにインポート -

zpool import -N -f tank

次に、bootfs 属性を適切に設定します。一般的なブートファイルシステム名は「tank/ROOT/default」です。

zpool set bootfs=tank/ROOT/default tank

起動可能なプールの内容です。起動できないプールに対してこの手順を繰り返します。今回は bootfs プロパティを "" に設定します。これですべての作業が完了しました。

関連情報