EN JA
GPTBOOT(8)
GPTBOOT(8) FreeBSD System Manager's Manual GPTBOOT(8)

名称

gptbootBIOS ベースのコンピュータで UFS のための GPT ブートコード

解説

gptboot は、GPT でパーティション化されたディスクで UFS パーティションからブートするための BIOS ベースのコンピュータで使用されます。 gptboot は、 gpart(8) がある freebsd-boot パーティションにインストールされます。

実装に関する注

GPT 標準は、可変数のパーティションを許可しますが、 gptboot は、128 のパーティションまたはそれ以下のテーブルからのみブートします。

パーティションの属性

gptboot は、GPT UFS パーティションのいくつかの属性をチェックし管理します。
bootme
このパーティションからブートすることを試みます。 2 つ以上のパーティションに bootme 属性セットがあるなら、 gptboot は、成功するまで各々をブートすることを試みます。
bootonce
このパーティションから 1 度だけブートすることを試みます。この属性を gpart(8) に設定することは、自動的に bootme 属性も設定します。複数のパーティションは、 bootoncebootme 属性セットがあります。
bootfailed
bootfailed 属性は、 bootonce 属性セットがあるパーティションをマークしますが、ブートに失敗します。この属性は、システムによって管理されます。詳細については、下記の ブートポストブートアクション を参照してください。

使用法

通常の使用法については、ユーザは、パーティション属性のいずれかを設定するか、または管理する必要はありません。 gptboot は、見つかった最初の UFS パーティションからブートします。

既に動作しているコンピュータでアップグレードされたオペレーティングシステムをテストするために bootonce 属性を使用することができます。既存のシステムパーティションは、変更しないままとし、テストされるオペレーティングシステムの新しいバージョンは、別のパーティションにインストールされます。 bootonce 属性は、新しいテストパーティションで設定されます。次のブートは、テストパーティションから試みられます。成功または失敗は、システムのログファイルに表示されます。テストパーティションのブートが成功した後に、ユーザのスクリプトは、テストパーティションが新しいシステムパーティションになれるように、ログをチェックし、 bootme 属性を変更することができます。 bootonce 属性は、試みられたブートの後にクリアされるで、失敗したブートは、決して成功しないパーティションからブートすることを試みるシステムのままにしません。代わりに、システムは、より古い知られている修正されていないオペレーティングシステムで動作するものからブートします。 bootme 属性があらゆるパーティションに設定されているなら、ブートは、最初に、それらから試みられます。 bootme 属性があるパーティションが見つからなければ、ブートは、最初に見つかった UFS パーティションから試みられます。

ブート

gptboot は、最初にパーティションテーブルを読み込みます。 bootonce 属性セットだけがあるすべての freebsd-ufs パーティションは、失敗したブーツを含んで、 bootfailed に設定されます。次に、 gptboot は、 freebsd-ufs パーティションのすべてを通してスキャンします。ブートの振る舞いは、それらのパーティションに設定された bootmebootonce 属性の組み合わせに依存します。
bootonce + bootme
最高の優先順序: ブートは、これらの属性の両方がある freebsd-ufs パーティションの各々から試みられます。各パーティションにおいて、 bootme 属性は、削除され、ブートが試みられます。
bootme
中間の優先順序: ブートは、 bootme 属性がある freebsd-ufs パーティションの各々から試みられます。

bootoncebootme 属性も、あらゆるパーティションで見つからないなら、ブートは、ディスク上の最初の freebsd-ufs パーティションから試みられます。

ポストブートアクション

起動時のスクリプト /etc/rc.d/gptboot は、すべての GPT ディスク上の freebsd-ufs パーティションの属性をチェックします。 bootfailed 属性があるパーティションは、“boot from X failed”システムログメッセージを生成します。 bootonce 属性だけがあるパーティションは、成功してブートされたパーティションを示し、“boot from X succeeded”システムログメッセージを生成します。 bootfailed 属性は、すべてのパーティションからクリアされます。 bootonce 属性は、成功してブートされたパーティションからクリアされます。通常、これらの 1 つだけがあります。

関連ファイル

/boot/gptboot
ブートコードバイナリ
/boot.config
parameters for the boot blocks ブートブロックのためのパラメータ (オプション)

使用例

gptboot は、一般的に“保護 MBR” ( gpart(8) を参照) と組み合わせてインストールされます。次は、 ada0 ドライブに gptboot をインストールします:

gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0

また、PMBR なしで gptboot をインストールすることができます:

gpart bootcode -p /boot/gptboot -i 1 ada0

パーティション 2 のために bootme 属性を設定します:

gpart set -a bootme -i 2 ada0

また自動的に bootme 属性を設定して、パーティション 2 のために bootonce 属性を設定します:

gpart set -a bootonce -i 2 ada0

歴史

gptboot は、FreeBSD 7.1 で登場しました。

作者

Warren Block <wblock@FreeBSD.org>
July 3, 2013 FreeBSD