名前 | 形式 | 機能説明 | オプション | IA での起動シーケンスの詳細 | IA での一次起動 | IA での二次起動 | 使用例 | ファイル | 関連項目 | 警告 | 注意事項
ブートストラップとは、スタンドアロンプログラムを読み込んで実行する処理のことです。ここでのブートストラップとは、起動可能なオペレーティングシステムを読み込んで実行することを意味します。通常、スタンドアロンプログラムはオペレーティングシステムカーネル (kernel(1M) のマニュアルページを参照) ですが、代わりに任意のスタンドアロンプログラムを起動することもできます。SPARC ベースのシステムでは、オペレーティングシステム以外に起動できるスタンドアロンプログラムの代表的な例として、マシンの診断モニターがあります。
スタンドアロンプログラムが動的にリンクされる実行可能プログラムとして識別された場合、 boot は実行可能形式によって指定されたインタプリタ (リンカー / ローダー) を読み込み、そのインタプリタに制御を渡します。スタンドアロンプログラムが静的にリンクされている場合は、そのスタンドアロンプログラムに直接ジャンプします。
カーネルは読み込まれると、UNIX システムを起動して、必要なファイルシステム (vfstab(4) のマニュアルページを参照) をマウントし、/sbin/init を実行して、システムを /etc/inittab で指定されている initdefault 状態にします。inittab(4) のマニュアルページを参照してください。
SPARC ベースのシステムでは、ほとんどのマシンでのブートストラップ手続きは次の基本フェーズからなります。
マシンの電源を投入すると、(PROM 内の) システムファームウェアが電源投入時自己診断テスト (POST) を実行します。この診断テストの形式と範囲は、システムに搭載されているファームウェアのバージョンによって異なります。
診断テストが正常に完了した後、ファームウェアが使用する不揮発性記憶領域に適切なフラグが設定されていれば、ファームウェアは自動起動を試みます。ファームウェアは、読み込むファイルの名前とそのファイルを読み込むデバイスを選択することができます。
これらのフラグと名前は、シェルから eeprom(1M) コマンドを使用するか、またはシステムの停止後に ok プロンプトで PROM コマンドを使用することにより、設定できます。
第 2 レベルのプログラムは、ufsboot (ディスクから起動する場合) または inetboot (ネットワークから起動する場合) のどちらかです。
ネットワーク起動
ネットワーク起動は、PROM で使用できる機能と PROM の構成に応じて、 RARP/bootparams または DHCP (Dynamic Host Configuration Protocol) のどちらかの方法で行います。 sun4u カーネルアーキテクチャのマシンには、DHCP 対応の PROM が搭載されており、デフォルトでは RARP/bootparams を使用してネットワークから起動します。RARP または DHCP のどちらのネットワーク起動方式が指定されても、マルチユーザーモードに移行するまで常に指定された方式が使用されます。したがって、RARP 動作と DHCP 動作を混在させることはできません。
次に、2 種類のネットワーク起動方式を指定する boot コマンド構文を示します。
boot net:rarp boot net:dhcp |
次のコマンドのように、rarp または dhcp 指示子を指定しないと、net が別名になっているネットワークインタフェースを介して、デフォルトのネットワーク起動方式が呼び出されます。
boot net |
以降では、RARP/bootparams を使用するネットワーク起動のイベントシーケンスについて説明します。そのあとで、DHCP を用いたシーケンスについて説明します。
RARP/bootparams を使用してネットワークから起動する場合、 PROM は逆 ARP 要求を発行し応答を受信したら、TFTP 要求をブロードキャストして、応答したサーバーから inetboot をネットワーク経由で取り込んで実行します。inetboot はもう 1 度、逆 ARP 要求を発行し、bootparams プロトコル (bootparams(4) のマニュアルページを参照) を使用して、ルートファイルシステムを検索します。さらに、NFS プロトコルを使用し、ネットワーク経由でカーネルを取り込んで実行します。
DHCP を使用してネットワークから起動する場合、PROM はハードウェアアドレスおよびカーネルアーキテクチャをブロードキャストし、IP アドレス、起動パラメタ、およびネットワーク構成情報を要求します。(可能性のある複数のサーバーの中から) DHCP サーバーが応答し選択されると、そのサーバーがクライアントに IP アドレスおよびクライアントの起動に必要な他のすべての情報を送信します。この情報を受信したクライアント PROM は inetboot をダウンロードし、そのファイルをメモリーに読み込んで実行します。 inetboot はカーネルを起動し、必要なファイルを読み込んでから inetboot を解放します。その後、起動スクリプトが DHCP エージェント (dhcpagent(1M) のマニュアルページを参照) を開始し、以降のDHCP アクティビティは DHCP エージェントによって実行されます。
ディスクからの起動
ディスク (またはディスク同様のデバイス) から起動する場合、ブートストラップ処理は、一次起動および二次起動という概念的に異なる 2 種類のフェーズからなります。一次起動フェーズでは、PROM が、起動デバイスとして選択されたディスクパーティションのブロック 1 〜 15 から主起動ブロックを読み込みます。
スタンドアロンプログラムのパス名が相対パス名の場合 (スラッシュで始まらない場合)、第 2 レベルの起動において、プラットフォームに依存する検索パスでスタンドアロンプログラムが検索されます。このパスには必ず、 /platform/platform-name が含まれています。多くの SPARC プラットフォームでは、次にプラットフォーム固有のパスエントリ /platform/hardware-class-name が検索されます。filesystem(5) のマニュアルページを参照してください。絶対パス名の場合、boot は指定されたパスを使用します。その後、boot プログラムは該当するアドレスからスタンドアロンプログラムを読み込み、制御を渡します。
ファイル名がコマンド行で、または boot-file NVRAM 変数などで指定されていない場合、boot はシステムにインストールされているソフトウェア、ハードウェアおよびファームウェアの能力、さらにユーザーが設定可能なポリシーファイル (「ファイル」を参照)に基づいて、読み込むべきデフォルトのファイルを選択します。
OpenBoot boot コマンドは、次の形式の引数をとります。
ok boot [device-specifier] [arguments] |
ok boot |
boot コマンド行で device-specifier を指定しない場合、OpenBoot は通常、boot-device 変数または diag-device nvram 変数を使用します。オプションの arguments をコマンド行で指定しないと、OpenBoot は通常、 boot-file または diag-file nvram 変数をデフォルトの boot 引数として使用します (システムが診断モードの場合、 boot-device および boot-file の代わりに、diag-device と diag-file が使用されます)。
arguments には複数の文字列を指定できます。すべての argument 文字列は二次起動プログラムに渡され、OpenBoot では解釈されません。
boot コマンド行に arguments を指定した場合、boot-file または diag-file nvram 変数のどちらも使用されません。nvram 変数の内容がコマンド行の引数とマージされることもありません。次のコマンドでは、boot-file および diag-file の設定値は無視され、文字列 -s は arguments として解釈されます。この場合、boot は boot-file または diag-file の内容を使用しません。
ok boot -s |
次の 2 つのコマンドの場合は引数がないので、boot-file または diag-file の設定値が (設定されている場合) デフォルトのファイル名および引数として使用され、boot に渡されます。 したがって、boot-file が 64 ビットカーネルのファイル名に設定されているときに、boot cdrom と入力してインストール CD を起動しようとしても、インストール CD に 32 ビットカーネルしかない場合は boot を実行できません。
ok boot net |
ok boot cdrom |
使用する boot コマンドの形式によっては boot-file または diag-file の内容が無視されるので、プロダクションシステムで boot-file に依存することは、一般に推奨しません。OS のポリシーを変更する場合は、ポリシーファイルを変更します。プロダクションシステムに 32 ビットと 64 ビットの両方のパッケージがインストールされている場合は例外ですが、プロダクションシステムでは 32 ビットの OS を使用する必要があります。
ほとんどの場合、システムタイプ、システムハードウェアおよびファームウェア、さらにルートファイルシステムにインストールされているソフトウェアに基づいて、boot コマンドに適切なデフォルトを選択させるのが最善の方法です。ポリシーファイルを変更することによって、boot コマンドのポリシーを変更しても差し支えありませんが、boot-file または diag-file を変更すると、状況によっては予期せぬ結果になることがあります。
これは、大部分の OpenBoot 2.x および 3.x ベースのシステムにおける一般的な動作です。プラットフォームによっては動作が異なる場合があるので注意してください。
IA ベースのシステムでは、ブートストラップ処理は一次起動および二次起動という概念的に異なる 2 つのフェーズからなります。一次起動はシステムボード上の BIOS ROM および周辺ボード上の BIOS ROM 拡張機能で実装されています。IAでのブートストラップ処理の特徴は、搭載されている周辺デバイスを制御するとソフトウェア割り込みによって入出力サービスを提供する機能に分けられます。起動処理はフロッピーディスク、ハードディスク、または CD-ROM から最初の物理セクターを読み込むことにより、開始されます。あるいは、システムまたはネットワークアダプタの BIOS がサポートしている場合には、ネットワーク起動サーバーからブートストラッププログラムを読み込むことで、開始されます。一次起動は、IA リアルモードコード で実装されています。
二次起動は一次起動によって読み込まれます。二次起動は 32 ビットのページング保護モードで実装されています。二次起動はまた、IA リアルモードで作成された周辺デバイス固有の BIOS 拡張機能を読み込んで使用します。二次起動は boot.bin と呼ばれ、ハードディスクまたは CD 上の UFS ファイルシステムから、または NFS プロトコルを使用して、LAN から読み込まれ、起動します。
二次起動は、システムに搭載されているデバイスを判別 (ユーザーの関与が必要) する Configuration Assistant プログラムを実行します。また、二次起動は、起動処理を制御する /etc/bootrc 内のスクリプトを読み込みます。このファイルには、boot interpreter コマンドが含まれています。これらのコマンドについては以降で説明しますが、これらのコマンドを修正することによって、デフォルト値を変更したり特定のマシンに合わせて調整したりできます。
標準の /etc/bootrc スクリプトは、オプションを指定して起動する場合は b、対話方式でインタプリタを呼び出す場合は i、デフォルトのカーネルを起動する場合はその他の任意の文字を入力するように、ユーザーに求めます。カーネルが読み込まれると、カーネルがオペレーティングシステムを起動し、必要なモジュールを読み込み、必要なファイルシステムをマウントして (vfstab(4) のマニュアルページを参照)、/sbin/init を実行し、システムを /etc/inittab で指定された initdefault 状態にします。inittab(4) のマニュアルページを参照してください。
OpenBoot PROM 指定を行います。たとえば、Desktop SPARC ベースのシステム上で /sbus/esp@0,800000/sd@3,0:a を指定した場合は、スロット 0 の esp ホストアダプタで、SCSI バス上の lun0 、ターゲット 3 の SCSI ディスク (sd) を意味します。
起動するスタンドアロンプログラムの名前。boot コマンド行または boot-file NVRAM 変数でファイル名を明示的に指定しないと、boot は適切なデフォルトファイル名を選択します。ほとんどのシステムでは、デフォルトのファイル名は 32 ビットカーネルです。32 ビットカーネルと 64 ビットカーネルを両方ともサポートできるシステムでは、32 ビットカーネルより 64 ビットカーネルが優先的に選択されます。boot はシステムにインストールされているソフトウェア、ハードウェアおよびファームウェアの能力、さらにユーザーが設定可能なポリシーファイルに基づいて、boot の実行に適したデフォルトの file を選択します。
boot プログラムはこのフラグを問い合わせと解釈し、スタンドアロンプログラムの名前を要求します。-a フラグはその後、スタンドアロンプログラムに渡されます。
Autoclient システムを起動する場合、このフラグによって boot プログラムがクライアントのローカルキャッシュを迂回して、ネットワーク経由でクライアントのファイルサーバーからすべてのファイルを読み込むようにします。Autoclient 以外のシステムでは、このフラグは無視されます。-f フラグはその後、スタンドアロンプログラムに渡されます。
詳細なデバッグ情報を表示します
default-file を明示的に指定します。一部のシステムでは、なにも指定されていない場合、boot は動的デフォルトファイルを選択します。このオプションを使用すると、 default-file を明示的に指定できます。 kadb(1M) を起動する場合に便利です。これは、kadb がデフォルトで、boot プログラムによってエクスポートされたデフォルトファイルを読み込むためです。
boot プログラムはすべての boot-flags を file に渡します。これらのフラグは、boot では解釈されません。デフォルトのスタンドアロンプログラムで使用できるオプションについては kernel(1M) および kadb(1M) のマニュアルページを参照してください。
boot プログラムはすべての client-program-args を file に渡します。これらの引数は、boot では解釈されません。
起動するスタンドアロンプログラムの名前。デフォルトではルートパーティションから /platform/platform-name/kernel/unix を起動しますが、コマンド行に他のプログラムを指定することもできます。
Autoclient システムを起動する場合、このフラグによって boot プログラムがクライアントのローカルキャッシュを迂回して、ネットワーク経由でクライアントのファイルサーバーからすべてのファイルを読み込むようにします。Autoclient 以外のシステムでは、このフラグは無視されます。 -f フラグはその後、スタンドアロンプログラムに渡されます。
boot プログラムはすべての boot-args を file に渡します。これらの引数は、boot では解釈されません。カーネルで使用できるオプションについては、kernel(1M) および kadb(1M) のマニュアルページを参照してください。
PC 互換マシンの電源を投入すると、 BIOS ROM のシステムファームウェアが電源投入時自己診断テスト (POST) を実行し、周辺ボード上の ROM の BIOS 拡張機能を実行し、ソフトウェア割り込み INT 19h のブートストラップを起動します。INT 19h のハンドラは通常、標準の PC 互換起動処理を実行します。その場合、1 番目のフロッピーディスクドライブから最初の物理セクターを読み取ります。読み取れない場合は、1 番目のハードディスクから読み取ります。次にプロセッサは、メモリー内でこのセクターイメージの先頭バイトにジャンプします。
フロッピーディスクの最初のセクターには、マスター起動ブロックがあり、この起動ブロックがブートローダー strap.com のイメージを読み込み、さらに strap.com が二次起動プログラム boot.bin を読み込みます。 CD-ROM から起動する場合も、同様なシーケンスが実行されますが、マスター起動ブロックの位置および内容は、El Torito 仕様で規定されています。El Torito 準拠の起動でも、strap.com が読み込まれ、次にboot.bin が読み込まれます。
ハードディスクの最初のセクターには、マスター起動ブロックがあり、そのブロックにはマスター起動プログラムと FDISK テーブルが含まれており、PC プログラムがそのテーブルを管理しています。マスター起動プログラムは、FDISK テーブルでアクティブパーティションを見つけ、その最初のセクターを読み込み、メモリー内のセクターイメージの先頭バイトにジャンプします。標準の PC 互換ハードディスクでの起動処理はこれで完了します。
Solaris ソフトウェア用の IA FDISK パーティションは、1 シリンダの起動スライスから始まり、最初のセクターにパーティション起動プログラム (pboot) が含まれています。第 2 および第 3 セクターにはそれぞれ、標準 Solaris ディスクラベルおよびボリューム構成テーブル (VTOC) があり、第 4 およびそれ以降のセクターには bootblk プログラムが含まれています。Solaris ソフトウェアの FDISK パーティションがアクティブパーティションの場合、マスター起動プログラム (mboot) は第 1 セクターのパーティション起動プログラムをメモリーに読み込んでそこにジャンプします。次に、 bootblk プログラムをメモリーに読み込んでそこにジャンプします。ドライブに FDISK パーティションが複数ある場合、ユーザーはアクティブパーティションのタイプに関係なく、別のパーティションを再起動できます。
(アクティブパーティションのタイプに応じて) bootblk または strap.com は、Solaris ルートスライスのファイルシステムから boot.bin を読み込み、メモリー内でその先頭バイトにジャンプします。
ネットワークから起動する場合、起動フロッピーまたは Intel の Preboot eXecution Environment (PXE) 規格のどちらを使用するか選択できます。起動フロッピーを使用してネットワークから起動する場合は、起動特性を編集し、net-config-strategy の設定値を変更することによって、必要なネットワーク構成ストラテジを選択できます。デフォルトでは、net-config-strategy は rarp に設定されています。設定できるのは rarp または dhcp のいずれかです。PXE を使用してネットワークから起動する場合、システムまたはネットワークアダプタの BIOS が DHCP を使用して、起動サーバー上の ネットワークブートストラッププログラム (NBP) を見つけ、Trivial File Transfer Protocol (TFTP) を使用してそのプログラムを読み込みます。BIOS はメモリー内の NBP イメージの先頭バイトにジャンプすることによって NBP を実行します。NBP は DHCP を使用して、起動サーバー上で第 2 ブートストラップを見つけ、TFTP を使用して読み込んで実行します。
二次起動プログラムの boot.bin は、プロセッサを 32 ビットのページング保護モードに切り替え、限定的なマシン初期化処理を実行します。次に、 auto-boot? 変数 (eeprom(1M) のマニュアルページを参照) の状態に応じて、システムを自動的に起動する Configuration Assistant プログラムを実行するか、または使用できる起動デバイスの一覧を表示します。
ディスクターゲットデバイス (CDROM ドライブを含む) に UFS ファイルシステムが組み込まれていることが前提です。ネットワーク装置は、DHCP または逆アドレス解決プロトコル (RARP) のどちらか一方および bootparams RPC を使用して、マシンの IP アドレスおよびルートファイルシステムを提供するサーバーを検出するように構成できます。その後、ルートファイルシステムが NFS を使用してマウントされます。ルートのマウントが正常に完了すると、boot.bin がコマンドインタプリタを起動し、インタプリタが /etc/bootrc を解釈します。
IA ベースのシステムではさまざまなハードウェアをサポートしなければならないため、起動処理に最大限の柔軟性が求められます。この柔軟性は、二次起動をプログラム可能にすることによって、ある程度達成されます。二次起動プログラムには、sh や csh のような単純なコマンド言語を受け付けるインタプリタが組み込まれています。主な違いはパイプライン、ループ、標準出力、出力の転送がサポートされていない点です。
起動インタプリタは、入力行を空白文字およびタブで区切られたワード単位に分割します。メタキャラクタはドル記号 ($)、単一引用符 (')、二重引用符 (")、番号記号 (#)、復帰改行、およびバックスラッシュ (\) です。前にバックスラッシュを指定すると、メタキャラクタが持つ特殊な意味を打ち消すことができます。復帰改行の前にバックス行ラッシュを指定すると、空白文字として扱われます。番号記号はコメント行の始まりを意味し、次に復帰改行が現れるまでコメントとして扱われます。
単一引用符または二重引用符のペアで囲まれた文字列は、1 つのワードの全体または部分を形成します。引用符で囲まれた文字列の中の空白および復帰改行記号は、ワードの一部になります。引用符で囲まれた文字列の中で、文字に引用符をつける場合は、その前にバックスラッシュを使用します。単一引用符の前にバックスラッシュを指定することによって、単一引用符で囲まれた文字列の中で引用符を使用できます。バックスラッシュを 2 つ続けて指定すると、単一のバックスラッシュになります。また、復帰改行の前にバックスラッシュを指定すると、文字列の中で復帰改行を使用できます。
boot には一連の変数があり、各変数には文字列値が割り当てられます。変数名の先頭文字は、英字でなければなりません。後続文字には英字、数字、または下線を使用できます。set コマンドを使用すると、変数の作成や、変数への値の割り当て、変数値の表示が行えます。変数を削除するには unset コマンドを使用します。
インタプリタが先行するバックスラッシュのないドル記号を検出すると、変数置換が実行されます。ドル記号に続く変数名が変数の値に置き換えられ、値の先頭から構文解析が続けられます。変数置換は、二重引用符で囲まれた文字列では実行されますが、単一引用符で囲まれた文字列では実行されません。変数名を中括弧で囲むと、後続文字と分離できます。
コマンドは、復帰改行文字で終了する一連のワードです。最初のワードはコマンド名で、以降のワードはコマンドに対する引数です。コマンドはすべて組み込みコマンドです。スタンドアロンプログラムは run コマンドで実行されます。
コマンドを if、elseif、else、および endif コマンドで囲むことによって、条件付きの実行が可能になります。
if expr1 . . . elseif expr2 . . . elseif expr3 . . . else . . . endif |
set、if、および elseif コマンドは、C プログラミング言語の構文および意味論を使用して算術式を評価します。||、&&、|、‸、&、==、!=、<、>、<=、>=、>>、<<、+、-、*、/、%、~、および ! という演算子を (、)およびコンマと同様に使用できます。符号付き 32 ビット整数演算が実行されます。
式はコマンド行全体が形成された後で構文解析されます。式の中の各トークンは、別個の引数ワードにし、空白文字でコマンド行上のすべてのトークンを区切る必要があります。
オペランドワードは、それに対する算術演算が実行される前に、文字列から符号付き 32 ビット整数値に変換されます。オプションの先行符号のうしろに先行する 0 があると 8 進数変換が行われ、先行する 0x または 0X がある場合は、16 進数変換が行われます。それ以外の場合は、10 進数変換が行われます。文字列が有効な整数にならない場合は、ゼロに変換されます。
文字列を操作できるように、いくつかの組み込み関数が用意されています。組み込み関数名はドットで始まります。これらの関数に対する文字列引数は、整数に変換されません。たとえば、演算子 - が文字列として扱われるようにするには、バックスラッシュを前につけ、そのバックスラッシュをもう 1 つのバックスラッシュでクォートする必要があります。また、ヌル文字列によって空白文字の引数が生成されるため、式で構文エラーが発生することがあるので注意してください。以下に例を示します。
if .strneq ( ${usrarg}X , \- , 1 )
起動インタプリタはシステムコンソールまたは 1 つ以上のファイルから入力を読み込みます。ソースコマンドは、インタプリタがファイルをメモリーに読み込み、ファイルの構文解析を開始するようにします。また、コンソールコマンドは、インタプリタがシステムコンソールからの入力を受け付けるようにします。EOF に到達すると、インタプリタはその前の入力ソースの構文解析を再開します。コンソール行の先頭に CTRL-D を入力すると、EOF として扱われます。
echo コマンドは引数をディスプレイに出力します。read コマンドはシステムコンソールを読み込み、引数変数にワード値を割り当てます。
verbose コマンドは、詳細表示モードのオン / オフを切り替えます。詳細表示モードでは、インタプリタは現在のソースファイルの行を表示し、変数置換後に実際に実行されたコマンドを表示します。
singlestep コマンドは、ステップ実行モードのオン / オフを切り替えます。ステップ実行モードでは、インタプリタは次のコマンドを処理する前に step ? を表示し、キーボード入力を待ちます。そのキーボード入力は破棄されます。ENTER を押すと、処理を進められるのでこれにより、詳細表示モードでは実行速度を遅くすることができます。
boot がインタプリタを最初に呼び出したとき、インタプリタはコンパイル時に設定された初期化文字列の実行を開始します。この文字列は通常、ルートファイルシステム内の起動スクリプトを実行する source /etc/bootrc\n からなります。
boot は run コマンドに対する引数を通じて、スタンドアロンプログラムに情報を渡します。スタンドアロンプログラムは var_ops() 起動サービス関数を使用して、起動インタプリタ変数を設定することにより、boot に情報を返すことができます。また、setprop() 起動サービス関数を使用してカーネルに情報を渡すこともできます。whoami 属性はスタンドアロンプログラムの名前に設定します。
CTRL-D を検出するまでコンソールからの入力を解釈します。
空白文字で区切られ、復帰改行で終わる引数を表示します。
空白文字で区切られているが復帰改行で終わらない引数を表示します。
属性 propname の値を変数 varname に割り当てます。長さゼロの属性値からはヌル文字列が生成されます。属性が存在しない場合、変数は設定されません。
変数 varname に属性 propname の値の長さを 16 進数で割り当てます。属性値の長さには終了を示すヌルが含まれます。属性が存在しない場合、変数は 0xFFFFFFFF (-1) に設定されます。
式 expr が真の場合、次の elseif、else、または endif までの命令を実行します。expr が偽の場合は、命令を実行しません。
それまでの if コマンドおよび elseif コマンドがすべてエラーとなり、なおかつ expr が真の場合、次の elseif、else、または endif までの命令を実行します。それ以外の場合は、命令を実行しません。
それまでの if コマンドおよび elseif コマンドがすべてエラーになった場合、次の elseif、else、または endif までの命令を実行します。それ以外の場合は、命令を実行しません。
囲んでいるブロックの実行モードに戻ります。
利用可能なすべての起動シェルコマンドの要約を示すヘルプ画面を表示します。
コンソールから行を読み取り、ワードに分割し、それらを値として変数 name1 (以下同様) に割り当てます。
read と同じですが、time で指定された秒数が経過したら、タイムアウトします。
スタンドアロンプログラム name を読み込んで制御を渡し、arg1 とそれに続く引数を渡します。
現在の変数およびその値をすべて表示します。
変数 name の値をヌル文字列に設定します。
変数 name の値を word に設定します。
変数 name の値を expr の値に設定します。expr は複数のワードで構成されていなければなりません。値は符号なしの 16 進数で符号化されます。たとえば、-1 は 0xFFFFFFFF で表されます。
テキストモードの表示属性を設定します。使用できる色は black、blue、green、cyan、red、magenta、brown、white、gray、lt_blue、lt_green、lt_cyan、lt_red、lt_magenta、yellow、および hi_white です。
属性 propname の値を word に設定します。
ステップ実行モードを有効にします。この場合、インタプリタは各コマンドを処理する前に step ? を表示し、キーボード入力を待ちます。ENTER キーを押すと次のコマンドが実行されます。
ステップ実行モードを無効にします。
ファイル name をメモリーに読み込み、解釈を開始します。EOF に到達したら、その前の入力ソースに戻ります。
変数 name を削除します。
詳細表示モードを有効にします。ソースファイルの各行と、実行されるコマンドが表示されます。
詳細表示モードを無効にします。
次の組み込み関数を式の中で使用できます。
string1 が字句構造上、string2 より小さい、等しい、または大きいことにより、ゼロより小さい、または大きい整数値を返します。
string1 が字句構造上、string2 より小さい、等しい、または大きいことにより、ゼロより小さい、または大きい整数値を返します。最大 n 文字が比較されます。
string1 が string2 に等しい場合は真、それ以外の場合は偽を返します。
string1 が string2 に等しい場合は真、それ以外の場合は偽を返します。最大 n 文字が比較されます。
addr から始めてメモリー内の位置を n 個走査し、string の開始位置を探します。string はヌルで終わっていなくてもかまいません。string が見つかった場合は真、見つからなかった場合は偽を返します。.strfind を使用すると、さまざまなマシンや周辺ボードを識別するために ROM BIOS および BIOS 拡張機能内の文字列を検索できます。
対話モードでシングルユーザーとしてデフォルトのカーネルを起動するには、ok プロンプトで次のいずれかを入力します。
boot -as boot disk3 -as |
デフォルトファイルとして 32 ビットカーネルを指定して kadb を起動するには、次のように入力します。
boot kadb -D kernel/unix |
32 ビットカーネルを明示的に起動するには、カーネルファイル名を指定する必要があります。そのため、32 ビットカーネルを対話モードでシングルユーザーとして起動するには、 ok プロンプトで次のいずれかを入力します。
boot kernel/unix -as boot disk3 kernel/unix -as |
64 ビットカーネルを明示的に起動するには、カーネルファイル名を指定する必要があります。そのため、64 ビットカーネルを対話モードでシングルユーザーとして起動するには、 ok プロンプトで次のいずれかを入力します。
boot kernel/sparcv9/unix -as boot disk3 kernel/sparcv9/unix -as |
ディスクまたは CD から起動する 第 2 レベルのプログラム
initedefault 状態が指定されているテーブル
システムを initedefault 状態に移行するプログラム
boot ポリシーファイルの主パス名および代替パス名。ポリシーファイルはすべてのプラットフォーム上で実装されているわけではありません。
システムを起動するデフォルトのプログラム
「注意事項UltraSPARC システムの起動」を参照してください。
uname(1), eeprom(1M), init(1M), installboot(1M), kadb(1M), kernel(1M), shutdown(1M), uadmin(2), bootparams(4), inittab(4), vfstab(4), filesystem(5)
『Sun Hardware Platform Guide』
『OpenBoot Command Reference Manual』
boot ユーティリティは、起動可能プログラムとして使用できるファイルかどうか判別できません。起動不可能なファイルを起動するように要求された場合、 boot ユーティリティはそのファイルを読み込み、そのファイルに制御を渡します。その場合の結果は予測できません。
platform-name を調べるには、uname(1) の -i オプションを使用します。hardware-class-name を調べるには、uname(1) の -m オプションを使用します。
一部のプラットフォームでは、64 ビットカーネルを実行するために、ファームウェアのアップグレードが必要な場合があります。詳細は『Sun Hardware Platform Guide』を参照してください。64 ビットカーネルパッケージがインストールされており、boot が、そのプラットフォームで 64 ビットカーネルを実行するにはファームウェアのアップグレードが必要であることを検出した場合、コンソールにメッセージが表示され、デフォルトのファイルとして 32 ビットカーネルが選択されます。
200MHz 以下の UltraSPARC-1 プロセッサを搭載したシステムでは、ユーザーが、プロセッサを停止することが可能な 64 ビットプログラムを実行してしまうことがあります。32 ビットカーネルで 64 ビットプログラムを実行することはできないので、このようなシステムでは、32 ビットカーネルがデフォルトのファイルとして選択されます。
問題を引き起こすコードシーケンスはきわめてまれなもので、コンパイラによって生成される可能性はほとんどありません。この問題を再現するためには、特殊なアセンブラコードを作成する必要があります。手作業で作成された適切なアセンブラルーチンがこのコードシーケンスを使用することはまずありません。
ユーザーが偶然または故意に、プロセッサの停止を引き起こすプログラムを実行してしまうリスクを甘受するのであれば、boot ポリシーファイルを変更することによって 64 ビットカーネルを実行するという選択も可能です。/platform/platform-name/boot.conf を編集し、以下の例に示すように、ALLOW_64BIT_KERNEL_ON_UltraSPARC_1_CPU という変数の値を true に設定したコメント行を解除します。
ALLOW_64BIT_KERNEL_ON_UltraSPARC_1_CPU=true
詳細は 『Sun Hardware Platform Guide』を参照してください。
各国語キーボードから「-」キーがなくなったので、このようなキーボードを使用する IA ベースのシステムでは、代わりのキーを使用して boot コマンドに引数を渡してください。数字キーパッドの - を使用してください。キーボードの対応言語別に、起動時に - の代わりに使用するキーを示します。
代替キー
'
'
+
?
?
たとえば、スウェーデン語対応のキーボードの場合、b -r は b +r と打鍵します。画面には b -r が表示されます。
名前 | 形式 | 機能説明 | オプション | IA での起動シーケンスの詳細 | IA での一次起動 | IA での二次起動 | 使用例 | ファイル | 関連項目 | 警告 | 注意事項