web-dev-qa-db-ja.com

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

FreeBSD 10.1を、2つのZFSプールがあり、ブートローダーのみを含む他のハードディスクから起動するシステムにインストールしました。メインプールディスクは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番目のプールのディスクを抜くと、システムは正しく起動します。

どうもありがとう。

3
linkxvi

わかりました、私はそれを自分で理解しました。

ZFSローダーは起動元のルートプールを設定することを許可していませんが、起動優先順位のBIOSをプールすることにより、正しいプールを推測しようとします。

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

0
linkxvi

適切な配布CDから「ライブCD」モードで起動します。 rootとしてログインします。

ここで、起動可能なプールが「タンク」と呼ばれているとしましょう。

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

zpool import -N -f tank

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

zpool set bootfs=tank/ROOT/default tank

起動可能なプールについては以上です。起動できないプールについても繰り返します。今回はbootfsプロパティを「」に設定します。これで完了です。

0
Ross

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

0
raven428