外付けハードドライブの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は見る価値があります。