外付けドライブの2番目のパーティションにインストールされているFreeBSDを起動する方法

外付けドライブの2番目のパーティションにインストールされているFreeBSDを起動する方法

外付けハードドライブの2番目のパーティションにFreeBSD 9.1をインストールしましたが、コンピュータを起動できませんでした。 FreeBSDは、USBフラッシュドライブに追加されたFreeBSD memstickイメージを使用してインストールされます。

最初のパーティションはバックアップを含むNTFSパーティションです。 FreeBSDをインストールする必要があることがわかったとき、私はFreeBSDのための空き容量を確保するために(Windows上で)最初のパーティションを「縮小」してからFreeBSDをインストールしました。ブートマネージャのインストールを要求したことがありません。

初めて起動しようとしたときにエラーメッセージなしで失敗しました(おそらく起動マネージャがインストールされていない可能性があります)。そのため、フラッシュドライブから起動し、コマンドを実行しましたboot0cfg -B /dev/ad1)(ad1は外付けハードドライブを表します)。これで実行すると、以下のメニューが表示されます。

F1 Win
F2 FreeBSD
F5 First disk

F1またはF2を押すと、「BOOTMGRがありません」というエラーメッセージが表示されます。何が問題なのでしょうか?

FreeBSDのインストールを開始するのに役立ちます。

答え1

ハードディスクad0とad1の両方がboot0ブートコードを持ち、FreeBSDを持つad1スライス(MBRパーティション)にはboot1が必要です。これは少し混乱していますが、MBRパーティション内でbsdディスクラベルを使用することによるアーキテクチャの決定に由来します。

Boot0 は実際には小さく、動的であるため、他のオペレーティングシステムのブートローダを実行し続けることができます。デフォルトでは、boot0はMBRにあります。 Boot0はディスクラベルを読み取ることができないため、パーティション(スライス)の最初のブロックのみをロードし、そのコードを実行するためにジャンプします。

Boot1はFreeBSD固有のコードが実際に起動する場所であり、メモリはFreeBSDカーネルに適したモードに設定され、boot1コードはBSDディスクラベルを読み取り、ファイルシステムを照会/読み取ることができ、名前でカーネルファイルを見つけることができます。 Boot1は非常に複雑で、より多くのブートコード、モジュール、カーネルをロードし、カーネルの実行を開始するなど、多くのタスクを実行します。

あなたのディスクレイアウトは次のとおりです。

ad0 - 内部ハードドライブ (boot0)
ad0s1 - 内部ハードドライブの最初で唯一のパーティション (スライス)、C:\

ad1 - 外付けハードドライブ (boot0)
ad1s0 - 外付けドライブの FAT または NTFS パーティション (スライス)、D:\
ad1s1 - FreeBSD パーティション (スライス) (boot1)
ad1s1a - FreeBSD /
ad1s1b - FreeBSD スワップ
ad1s1c - FreeBSD /usr
.. .

boot0とboot1ローダーが必要な場所を確認しました。

これを手動で行うと、FreeBSDの起動方法に関する貴重なレッスンを得ることができます。次のレッスンでは、カーネル自体をロードする前に/boot/環境を設定し、カスタムイメージを変更し、カーネルモジュールを選択して設定します。

私は主に学習目的でこれを行っており、インストールを簡素化することに興味があると思います。 NanoBSDは見る価値があります。

関連情報