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 Loader では、起動元のルート プールを設定することはできませんが、起動優先順位の BIOS をプールして正しいルート プールを推測しようとします。

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

答え2

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

答え3

適切なディストリビューション CD から「ライブ CD」モードで起動します。root としてログインします。

ここで、ブート可能なプールの名前が「tank」であるとします。

プールをマウントせずにインポートする -

zpool import -N -f tank

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

zpool set bootfs=tank/ROOT/default tank

ブート可能プールの場合はこれで完了です。ブート不可能なプールについても繰り返しますが、今回は bootfs プロパティを "" に設定します。これで完了です。

関連情報