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 プロパティを "" に設定します。これで完了です。