Oracle Solaris ブートアーキテクチャーには、次の基本特性があります。
ブートアーカイブを使用します。
ブートアーカイブには、メモリー内ディスクを使用してマウントされるファイルシステムイメージが含まれています。このイメージは自己記述型であり、特にブートブロックにはファイルシステムリーダー (または x86 プラットフォームの場合に GRUB ブートローダー) が含まれています。SPARC プラットフォームで、ファイルシステムリーダーは RAM ディスクイメージをマウントして開いたあと、その中に含まれているカーネルを読み取って実行します。デフォルトで、このカーネルは /platform/`uname -m'/kernel/unix にあります。x86 プラットフォームでは、GRUB ブートローダーが、カーネルファイルとブートアーカイブをメモリーにロードしてから、制御をカーネルに転送します。x86 プラットフォームのデフォルトのカーネルは /platform/i86pc/kernel/amd64/unix です。
ZFS ルートファイルシステムからブートする場合は、アーカイブとカーネルファイルの両方のパス名が、ブート用に選択されたルートファイルシステム (データセット) 内で解決されます。
ブート管理インタフェースを使用して、Oracle Solaris ブートアーカイブを保守し、x86 プラットフォームで GRUB 構成と GRUB メニューを管理します。
bootadm コマンドは、ブートアーカイブの更新と検証を細部にわたって処理します。インストールまたはアップグレードの間、bootadm コマンドは初期ブートアーカイブを作成します。通常のシステムシャットダウンの処理中に、シャットダウンプロセスではブートアーカイブの内容がルートファイルシステムと比較されます。システムにドライバや構成ファイルなどの更新がある場合、ブートアーカイブがこれらの変更を含むように再構築されることによって、リブート時にブートアーカイブとルートファイルシステムの同期がとられます。bootadm コマンドを使用して、ブートアーカイブを手動で更新することができます。
x86 ベースのシステムでは、grub.cfg ファイルと x86 ブートローダーは bootadm コマンドで管理します。このリリースでは、bootadm コマンドが変更され、いくつかの新しいサブコマンドが追加されて、これまで menu.lst ファイルを編集して実行していたほとんどの管理タスクを実行できるようになりました。これらのタスクには、GRUB メニューの管理、特定のブートエントリへのカーネル引数の設定、ブートローダーの管理などが含まれます。手順については、bootadm コマンドを使用して GRUB 構成を管理するを参照してください。
詳細は、bootadm(1M)およびboot(1M)のマニュアルページを参照してください。
インストール時にルートファイルシステムとして RAM ディスクイメージを使用します。
このプロセスは、SPARC と x86 の両方のプラットフォームで同じです。RAM ディスクイメージは、ブートアーカイブから生成されたあと、ブートデバイスからシステムに転送されます。
ソフトウェアをインストールする場合、RAM ディスクイメージは、インストールプロセス全体に使用されるルートファイルシステムになります。この目的の RAM ディスクイメージにより、リムーバブルメディアから、頻繁に必要となるインストールコンポーネントにアクセスする必要がなくなります。RAM ディスクファイルシステムのタイプには、HSFS (High Sierra File System) または UFS を指定できます。
GPT ラベル付きディスクからのブートをサポートします。
Oracle Solaris には、GPT ラベル付きディスクからのブートのサポートが含まれます。GPT ラベル付きディスクからのブートは、MSDOS パーティション分割スキームを使用したディスクからのブートとはやや異なります。x86 または GPT 対応ファームウェアを搭載した SPARC ベースのシステムに Oracle Solaris 11.3 をインストールすると、ほとんどの場合にディスク全体を使用するルートプールディスクで GPT ディスクラベルが適用されます。サポートされる SPARC ベースのシステムで GPT 対応ファームウェアを適用する方法については、Oracle Solaris 11.3 ご使用にあたって の SPARC: GPT ラベル付きディスクのサポートを参照してください。それ以外の場合は、SPARC ベースのシステムに Oracle Solaris 11.3 をインストールすると、単一のスライス 0 でルートプールディスクに SMI (VTOC) ラベルが適用されます。
x86 プラットフォームでは、GRUB 2 の導入により、このサポートが可能になります。BIOS ファームウェアを搭載したシステムでは、MBR は、引き続きファームウェアがロードしてブートプロセスを開始する最初のコードのチャンクです。GPT ラベル付きディスクには VTOC がなくなり、個別のパーティションだけです。GRUB は、GPT パーティション分割スキームの読み取りおよび解釈を直接サポートするようになったため、ブートローダーが、ZFS GPT パーティションでホストされるルートプール内の Oracle Solaris カーネルおよびブートアーカイブを検出できます。
UEFI ファームウェアを搭載したシステムでの主な違いは、ファームウェアがブートアプリケーションを (FAT ベースの) EFI システムパーティションからロードすることです。UEFI システムに GRUB がロードされると、BIOS 対応の GRUB と同様のタスクを実行します。
ブートアーカイブはルートファイルシステムのサブセットです。このブートアーカイブには、すべてのカーネルモジュール、driver.conf ファイル、およびいくつかの構成ファイルが含まれています。これらのファイルは、/etc ディレクトリにあります。ブートアーカイブ内のファイルは、ルートファイルシステムがマウントされる前にカーネルによって読み取られます。ルートファイルシステムがマウントされると、ブートアーカイブはカーネルによってメモリーから破棄されます。次に、ファイル I/O がルートデバイスに実行されます。
bootadm コマンドは、ブートアーカイブの更新と検証の詳細など、SPARC プラットフォームと x86 プラットフォームの両方で、ブートアーカイブを管理します。通常のシステムシャットダウンの処理中に、シャットダウンプロセスではブートアーカイブの内容がルートファイルシステムと比較されます。システムにドライバや構成ファイルなどの更新があった場合、ブートアーカイブがこれらの変更を含むように再構築されることによって、リブート時にブートアーカイブとルートファイルシステムの同期がとられます。
x86 ブートアーカイブに含まれるファイルは、/platform/i86pc/amd64/archive_cache ディレクトリにあります。SPARC ブートアーカイブ内のファイルは /platform/`uname ‐m`/archive_cache ディレクトリにあります。SPARC プラットフォームと x86 プラットフォームの両方で、ブートアーカイブの内容を一覧表示するには、bootadm list-archive コマンドを使用します。
$ bootadm list-archive
ブートアーカイブ内のファイルが更新された場合、アーカイブを再構築する必要があります。bootadm update-archive コマンドにより、ブートアーカイブを手動で再構築できます。コマンドは、予防措置としても回復プロセスの一部としても使用できます。
# bootadm update-archive
変更を有効にするには、次にシステムがリブートする前にアーカイブを再構築する必要があります。詳細は、Oracle Solaris ブートアーカイブの管理を参照してください。