スポンサーリンク

BOOT(8) FreeBSD/i386 システム管理者マニュアル BOOT(8)

名称

boot − システム立上げ時の手続き

解説

電源断とクラッシュからの回復。通常、電源復旧時とクラッシュ発生後には、シ ステムは自動的にリブートします。ファイルシステムの整合性チェックが自動実 行され、途中で失敗しなければ、システムはマルチユーザ・モードに移行しま す。

コールドスタート。大多数の i386 PC は、まずフロッピドライブ 0 (ドライブ A: ともいう) からのブートを試み、それに失敗すると、ハードディスクドライブ 0 (ドライブ C: もしくは BIOS のドライブ 0x80 ともいう) からブートしようと します。いくつかの BIOS では、このデフォルトの順序を変えたり、 CD-ROM デ バイスをブートデバイスとして含めることができます。

デフォルトでは 3 段階のブートストラップが使用され、ブートブロック (ブート ストラップの 第 1 および 第 2 段階) から、これとは別の第 3 段階のブートス トラッププログラム loader(8) へと自動的に制御が移行されます。この第 3 段 階では、ブート処理において、ブートブロックにおいて可能なことよりも洗練さ れた制御を提供します。ブートブロックには、ディスクやスライスの限られた空 間しか与えられないという制約があります。

しかしながら、第 3 段階をまったく使用せずに済ますこともできます。このよう にするには、ブートブロックパラメータファイル /boot.config においてカーネ ル名を指定するか、 −n 無指定時には loader(8) が起動される前の短い待ち時間 (文字 -, \, |, / のいずれかが表示されている間) にキーを打ちます。第 3 段 階をロードできない場合にも、第 2 段階においてブートが試みられます。

/boot.config は ‘a’ パーティションからだけ読み取れることに注意して下さ い。結果として、 ‘a’ パーティションのないスライスでは、ブートの過程でユー ザが介入する必要があります。

本サブセクションの残りの部分では、ブートブロックについてのみ扱います。 loader(8) プログラムの文書は別にあります。

ブートブロックがロードされたあとで、次のようなプロンプトが現れます。

>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:

自動ブートにおいては、フロッピもしくはハードディスクのパーティション ‘a’ から /boot/loader をロードしようとします。この動作は ‘boot:’ というプロン プトが出ている間なら、キーボードから適当な文字を入力することで中断できま す。以下にあげるような入力はブート動作に対する指示として受付けられます。

       ?

ブートファイルを探す際のヒントとして、デフォルトのブートデバイス のルートディレクトリにあるファイルの名前を表示します。 (パスの最 後の部分に ? を指定することもできます。この場合、任意のサブディレ クトリの一覧となります。)

bios_drive:interface(unit,[
slice
,]part) filename [−aCcDdghmnPprsv]
ブートファイルとブートフラグを指定します。

bios_drive
BIOS によって認識されるドライブ番号です。 1 つ目のドライ ブに対しては 0、 2 つ目のドライブに対しては 1、などです。

interface
そこからブートするコントローラのタイプです。ブートファイ ルのイメージをロードするのには BIOS の機能を使用するの で、そのコントローラに対する BIOS サポートが必要となるこ とに注意して下さい。

サポートされているインタフェースを以下にあげます。

ad
WD100[2367] とその互換コントローラ上の ST506, IDE, ESDI, RLL ディスク
fd
5 1/4" または 3 1/2" 高密度 フロッピ
da
サポートされている SCSI コントローラ上の SCSI ディ スク

unit
使用されているインタフェース上のドライブのユニット番号で す。 1 つ目のドライブに対しては 0、 2 つ目のドライブに対 しては 1、などです。

[
slice
,]part
ディスク上の BSD 部分内のパーティション文字です。詳しくは bsdlabel(8) を参照して下さい。慣例として、パーティション ‘a’ のみがブート可能なイメージを含んでいます。ディスクに スライス (‘‘fdisk パーティション’’) が設けられていた場 合、任意の slice (1 が最初のスライスで 2 が 2 番目のスラ イス等となります) からブート可能であり、デフォルト (無指 定時) はアクティブスライスから、これがない場合は最初の FreeBSD スライスからのブートとなります。指定された slice が 0 の場合、最初の FreeBSD スライス (‘‘互換’’ スライスと も呼ばれます) からブートします。

filename
ブートファイルの (指定されたパーティションのルートディレ クトリからの相対) パス名です。デフォルトでは /kernel とな ります。シンボリックリンクはサポートされていません (ハー ドリンクは使用できます)。

−aCcDdghmnPprsv
ブートフラグです。

−a
カーネル初期化中に、ルートファイルシステムとしてマ ウントされるデバイスを尋ねて来るようにします。
−C

CDROM からブートします。
−c

ロードしたカーネルに対し、ハードウェアのパラメータ を変更するため、 UserConfig を実行します。 USERCONFIG, INTRO_USERCONFIG, VISUAL_USERCONFIG の いずれかのオプション付きでカーネルが構築された場 合、スクリプト中に quit コマンドがあったとして も、UserConfig 中にとどまります。
−D

シングルとデュアルのコンソール設定を切り替えます。 シングル設定では、下記の −h オプションの状態によっ て、コンソールは内部ディスプレイかシリアルポートの いずれかになります。デュアルコンソール設定では、内 部ディスプレイとシリアルポートの両方が、 −h オプ ションの状態によらず、同時にコンソールになります。 しかし、デュアルコンソール設定は、ブートプロンプト の間だけでしか効果を持ちません。一旦カーネルがロー ドされると、 −h オプションによって指定されたコン ソールが唯一のコンソールになります。
−d

カーネルの初期化のできる限り早い段階で DDB カーネル デバッガ (ddb(4) を参照) に入ります。
−g

GDB リモートデバッギングプロトコルを使用します。
−h

内部コンソールとシリアルコンソールの切り替えを行い ます。これを使用してコンソールデバイスを変更できま す。例えば、内部コンソールからブートした場合、カー ネルがコンソールデバイスとしてシリアルポートを使用 するようにするため、 −h オプションを使用できます。 反対に、シリアルポートからブートした場合、カーネル がコンソールとして代わりに内部ディスプレイを使用す るようにするため、このオプションを使用できます。シ リアルポートドライバ sio(4) には、このオプションに 優先するフラグがあります。そのフラグが設定される と、ここで記述した −h オプションとは無関係に、シリ アルポートが常にコンソールとして使用されます。更な る詳細については、マニュアルページ sio(4) を参照し てください。
−m

コンソールを黙らせます。
−n

loader(8) 起動前の、キー入力によるブート中断を無視 します。
−P

キーボードを検出します。キーボードが発見できなかっ た場合には、 −D−h オプションが自動的にセットさ れます。
−p

デバイスの検出フェーズにおいて、各デバイスがアタッ チされるたびに停止します。
−r

ルートファイルシステムを含むデバイスとしてスタ ティックに config されたデフォルトを使用します (config(8) を参照)。
−s

シングルユーザ・モードで立上がるようになります。コ ンソールが ‘‘insecure’’ (ttys(5) を参照) に設定され ていた場合には、root のパスワードを入力しなければな りません。
−v

デバイス検出の際 (そしてその後も)、詳細を出力しま す。

デフォルトを設定するため、BIOS ドライブ番号, コントローラタイプ, ユニット 番号, パーティション, カーネルファイル名と有効なオプションを /boot.config に書くこともできます。 ‘boot:’ プロンプトでタイプするように、 1 行で書い てください。

関連ファイル

       /boot.config

ブートブロックに対するパラメータ (必須ではない)
/boot/boot1
第 1 段階のブートストラップ
/boot/boot2
第 2 段階のブートストラップ
/boot/loader
第 3 段階のブートストラップ
/boot/kernel/kernel
デフォルトカーネル
/boot/kernel.old/kernel
普通は非デフォルトカーネル (必須ではない)

関連項目

ddb(4), ttys(5), boot0cfg(8), bsdlabel(8), btxld(8), config(8), halt(8), loader(8), reboot(8), shutdown(8)

診断

ディスク関連のエラーが発生すると、第 2 段階のブートストラップがエラーを報 告します。 BIOS が返すものと同じエラーコードを使用し、例えば ‘‘Disk error 0x1 (lba=0x12345678)’’ などと報告します。エラーコードの一部のリストを示し ます:

       0x1

不正な引数
0x2
アドレスマークが見付かりません
0x4
セクタが見付かりません
0x8
DMA オーバラン
0x9
64K 境界を越えて DMA を試みました
0xc
不正なメディア
0x10
訂正できない CRC/ECC エラー
0x20
コントローラの異常
0x40
シークの失敗
0x80
タイムアウト

: 古いマシンや EDD サポート (ディスクパケットインタフェースサポート) が 無いマシンでは、ブートフェーズにアクセスされるブート関連の全ファイルと構 造 (カーネルを含みます) は、ディスク上で (BIOS が理解するジオメトリにおい て) シリンダ 1023 以下に置かれることが必要です。第 2 段階のブートストラッ プが ‘‘Disk error 0x1’’ を報告する場合、通常はこの条件が満されていないこ とを意味します。

バグ

このバージョンの BSD で使用されている bsdlabel(5) のフォーマットは、他の アーキテクチャで使用されている物とは全く異なっています。

空間の制約により、 −P オプションにより起動されるキーボード検出は、BIOS が ‘‘拡張’’ キーボードを検出したかを単にテストするだけです。 ‘‘XT/AT’’ キー ボード (F11, F12 キーなどを持ちません) を接続した場合、検出は失敗します。

FreeBSD 10.0 September 23, 2004 FreeBSD 10.0

スポンサーリンク