Solaris のシステム管理 (基本編)
  Искать только в названиях книг
Просмотреть эту книгу в:
Загрузить это руководство в формате PDF (3233 КБ)

第 9 章 システムのシャットダウンとブート (概要)

この章では、システムのブートについての概要を説明します。Solaris ブートデザイン、ブートプロセス、および Solaris OS でシステムをブートする各種方法について説明します。

この章で説明する情報は次のとおりです。

Solaris システムのブート手順については、第 12 章Solaris システムのブート (手順)を参照してください。

GRUB を実装していない Solaris システムのブート手順については、第 16 章x86: GRUB を実装しないシステムのブート (手順)を参照してください。

システムのシャットダウンとブートに関する新機能については、「システムのシャットダウンとブートに関する新機能」を参照してください。

ブートローダーの管理と Solaris ブート動作の変更に関する概要と手順については、第 11 章Solaris ブート動作の変更 (手順)を参照してください。

サービス管理機能 (SMF) によるブートサービスの管理については、「SMF とブート」を参照してください。

Solaris ブートデザインの基礎

SPARC と x86 の両方のプラットフォーム向けの Solaris ブートデザインには、次の特徴があります。

  • ブートアーカイブの使用

    ブートアーカイブとは、システムのブートに必要なすべてのファイルが含まれている RAM ディスクイメージのことです。Solaris OS をインストールすると、一次アーカイブとフェイルセーフアーカイブの 2 つのブートアーカイブが作成されます。詳細については、「Solaris SPARC でのブートアーカイブの実装」を参照してください。

    bootadm コマンドも、SPARC プラットフォームで使用できるように変更されました。このコマンドは、Solaris x86 プラットフォームの場合と同じように機能します。bootadm コマンドは、アーカイブの更新と検証を細部にわたって自動的に処理します。インストールまたはシステムのアップグレード中に、bootadm コマンドによって初期ブートアーカイブが作成されます。正常なシステムシャットダウンの処理中に、シャットダウンプロセスで、ブートアーカイブの内容がルートファイルシステムと突き合わせてチェックされます。何らかの不一致が検出されると、システムはブートアーカイブを再構築して、リブート時に必ずブートアーカイブとルート (/) ファイルシステムの同期がとれるようにします。bootadm コマンドを使用してブートアーカイブを手動で更新することもできます。bootadm コマンドを使用してブートアーカイブを管理する」を参照してください。


    注 –

    SPARC システムでは、bootadm コマンドの一部のオプションを使用できません。


    詳細は、bootadm(1M) および boot(1M) のマニュアルページを参照してください。

  • インストールおよびフェイルセーフ処理中に RAM ディスクイメージをルートファイルシステムとして使用

    このプロセスは、Solaris SPARC および Solaris x86 の両方のプラットフォームで同じになりました。RAM ディスクイメージは、ブートアーカイブから生成されたあと、ブートデバイスからシステムに転送されます。


    注 –

    SPARC プラットフォームでは、OpenBootTM PROM を引き続き使用して、ブートデバイスにアクセスし、ブートアーカイブをシステムのメモリーに転送します。 反対に、x86 プラットフォームでは、システムは最初に BIOS によって制御されます。BIOS を使用して、ネットワークデバイスからのブートアーカイブの転送を開始するか、ブートローダーを実行します。Solaris OS では、ディスクからのブートアーカイブの転送に使用する x86 ブートローダーは GRUB です。「x86: ブートプロセス」を参照してください。


    ソフトウェアをインストールする場合、RAM ディスクイメージは、インストールプロセス全体に使用されるルートファイルシステムになります。この目的で RAM ディスクイメージを使用すると、リムーバブルメディアからシステムをブートする必要がなくなります。RAM ディスクファイルシステムのタイプには、HSFS (High Sierra File System) または UFS を指定できます。

新しい Solaris SPARC ブートアーキテクチャーについて

Solaris SPARC プラットフォームのブートプロセスは、Solaris x86 ブート動作との共通性を高めるために再設計および改善されました。新しい Solaris SPARC ブートデザインでは、ブートチェーンの複数の部分に変更を加えなくても、新しいファイルシステムタイプなどの新機能を追加できます。変更には、ブートフェーズの独立性の実装も含まれます。

これらの改善の重要点は、次のとおりです。

  • SPARC および Solaris x86 プラットフォームでのブートプロセスの共通性

  • ネットワークブート動作の共通性

  • さまざまなファイルシステムタイプからシステムをより簡単にブートできるようにする、ブートアーキテクチャーの柔軟性

次の 4 つのブートフェーズは、互いに独立しています。

  1. OBP (Open Boot PROM) フェーズ

    Solaris SPARC プラットフォームでのブートプロセスの OBP フェーズは変わっていません。

    ディスクデバイスの場合、ファームウェアドライバは通常 OBP ラベルパッケージの「読み込み」メソッドを使用します。このメソッドは、ディスクの先頭にある VTOC ラベルを解析して、指定されたパーティションを見つけます。 そして、パーティションのセクター 1 - 15 がシステムのメモリーに読み込まれます。この領域は一般にブートブロックと呼ばれ、通常はファイルシステムリーダーが格納されています。

  2. ブーターフェーズ

    このフェーズの間に、ブートアーカイブが読み取られ、実行されます。ブートファイルシステムの形式を認識しておく必要があるのは、ブートプロセスのこのフェーズだけです。場合によっては、ブートアーカイブがインストールミニルートでもあることがあります。ブートローダーとブートアーカイブの転送に使用されるプロトコルには、ローカルディスクアクセス、NFS、および HTTP があります。

  3. RAM ディスクフェーズ

    RAM ディスクは、カーネルモジュールまたはインストールミニルートから成るブートアーカイブです。

    Solaris SPARC ブートアーカイブは、Solaris x86 ブートアーカイブと同じです。ブートアーカイブのファイルシステム形式は非公開です。そのため、システムのブート時に使用されるファイルシステムタイプ (HSFS または UFS ファイルシステムなど) の情報は、ブーターやカーネルには必要ありません。RAM ディスクはブートアーカイブからカーネルイメージを抽出して、それを実行します。RAM ディスク、特にシステムのメモリーに常駐するインストールミニルートのサイズを最小化するため、ミニルートの内容が圧縮されます。この圧縮はファイルレベルごとに行われ、個々のファイルシステム内で実装されます。ファイルを圧縮して、ファイルに圧縮済みのマークを付けるには、/usr/sbin/fiocompress ユーティリティーが使用されます。


    注 –

    このユーティリティーには、ファイル圧縮ファイルシステム dcfs との非公開インタフェースが備わっています。


  4. カーネルフェーズ

    カーネルフェーズは、ブートプロセスの最終段階です。このフェーズの間に、Solaris OS が初期化され、ブートアーカイブから構築された RAM ディスク上に最小ルートファイルシステムがマウントされます。ブートアーカイブがインストールミニルートである場合、OS は引き続きインストールプロセスを実行します。それ以外の場合は、指定されたルートデバイス上にルートファイルシステムをマウントするために十分な 1 組のカーネルファイルおよびドライバが RAM ディスクに格納されます。

    そして、カーネルはブートアーカイブから主モジュールの残りを抽出し、それ自体を初期化し、実際のルートファイルシステムをマウントして、ブートアーカイブを破棄します。

ミニルートの圧縮と展開

RAM ディスクベースのミニルートは、root_archive コマンドによって圧縮および展開されます。 新しいブートアーキテクチャーをサポートする SPARC システムだけがミニルートの圧縮版を圧縮および展開できます。


注意 – 注意 –

Solaris 10 バージョンの root_archive ツールは、ほかの Solaris リリースに含まれているツールのバージョンと互換性がありません。そのため、RAM ディスクの操作はアーカイブと同じ Solaris リリースが動作するシステムでのみ行うようにしてください。


ミニルートの圧縮および展開の詳細については、root_archive(1M)のマニュアルページを参照してください。

ソフトウェアのインストールとアップグレード

Solaris OS をインストールまたはアップグレードするには、CD/DVD またはネットワークからミニルートをブートする必要があります。どちらの場合も、ミニルートのルートファイルシステムは RAM ディスクです。このプロセスを使用すると、システムをリブートしなくても Solaris ブート CD を取り出すことができます。ブートアーカイブにはミニルート全体が含まれています。インストール CD の構築は、HSFS ブートブロックを使用するように変更されました。ミニルートは、RAM ディスクとして読み込まれる単一の UFS ファイルに圧縮されます。ミニルートはすべての OS インストールタイプに使用されます。

インストールのメモリー要件

Solaris 10 リリースでは、システムをインストールする際の最小メモリー要件が 256M バイトから 384M バイトに増やされました。このメモリー容量では、テキストベースのインストールだけが可能になります。インストール GUI プログラムを実行するには、768M バイト以上のメモリーが必要です。

ネットワークブートサーバーの設定プロセスの変更点

ネットワークブートサーバーの設定プロセスが変更されました。ブートサーバーは、ブートストラッププログラムだけでなく、RAM ディスクにも対応するようになりました。RAM ディスクは、CD/DVD からブートしようと、NFS または HTTP を使ってネットワークインストールを実行しようと、すべてのインストールの単一のミニルートとしてダウンロードされ、ブートされます。NFS または wanboot プログラム (HTTP) によるネットワークブート用のネットワークブートサーバーの管理は何も変わりません。 ただし、ネットワークブートプロセスの内部実装は、次のように変更されました。

  1. ブートサーバーはブートアーカイブの形でブートストラップをターゲットシステムに転送する。

  2. ターゲットシステムはブートアーカイブを RAM ディスクに展開する。

  3. ブートアーカイブは読み取り専用の初期ルートデバイスとしてマウントされる。

SPARC システムのブートについては、「SPARC システムのブート (作業マップ)」を参照してください。

複数の Solaris カーネルのブートのサポート

SPARC システムでは、ok プロンプトで boot と入力すると、デフォルトのブートデバイスが自動的に選択されます。代替ブートデバイスを指定するには、boot-device NVRAM 変数を変更します。ブート時にコマンド行から代替ブートデバイスまたは代替カーネル (ブートファイル) を指定することもできます。「SPARC: デフォルトのカーネル以外の Solaris カーネルをブートする方法」を参照してください。

Solaris SPARC でのブートアーカイブの実装

以前は x86 プラットフォームでしか使用できなかった Solaris ブートアーカイブが Solaris SPARC ブートアーキテクチャーに不可欠な要素となりました。

bootadm コマンドは、Solaris SPARC プラットフォームでも使用できるように変更されました。このコマンドは、Solaris x86 プラットフォームの場合と同じように機能します。bootadm コマンドは、アーカイブの更新と検証を細部にわたって処理します。x86 プラットフォームでは、インストールまたはシステムのアップグレード中に、bootadm コマンドによって GRUB メニューが更新されます。ブートアーカイブを手動で管理する場合にも、bootadm コマンドを使用できます。

boot-archive サービスは、サービス管理機能 (SMF) によって管理されます。ブートアーカイブのサービスインスタンスは svc:/system/boot-archive:default です。このサービスを有効、無効、または更新するには、svcadm コマンドを使用します。SMF を使用したサービスの管理については、第 17 章サービスの管理 (概要)を参照してください。

サポートされている Solaris リリースでは、SPARC と x86 の両方のシステムに 2 種類のブートアーカイブが用意されています。

  • 一次ブートアーカイブ

  • フェイルセーフブートアーカイブ

Solaris SPARC ブートアーカイブに含まれるファイルは、/platform ディレクトリにあります。

/platform ディレクトリの内容は 2 つのグループのファイルに分けられます。

  • sun4u ブートアーカイブに必要なファイル

  • sun4v ブートアーカイブに必要なファイル

ブートアーカイブの管理については、「Solaris ブートアーカイブの管理 (作業マップ)」を参照してください。

x86: GRUB ブートローダーの管理

オープンソースの GRUB (GRand Unified Bootloader) は、x86 システムのデフォルトのブートローダーです。GRUB は、ブートアーカイブをシステムのメモリーに読み込むソフトウェアです。ブートアーカイブは、システムの起動中にルートファイルシステムがマウントされる前に必要な、重要なファイルの集まりです。ブートアーカイブとは、Solaris OS のブートに使用されるインタフェースのことです。GRUB の詳細は、http://www.gnu.org/software/grub/grub.html を参照してください。grub(5) のマニュアルページも参照してください。

GRUB ベースのブートの動作

x86 システムの電源を入れると、BIOS (Basic Input/Output System) により、CPU、メモリー、およびプラットフォームハードウェアが初期化されます。初期化フェーズが完了すると、BIOS が構成済みブートデバイスからブートローダーをロードし、システムの制御をブートローダーに移します。「ブートローダー」は、システムの電源を投入したあとに最初に動作するソフトウェアプログラムです。このプログラムによってブートプロセスが開始されます。

GRUB は、menu.lst ファイルと呼ばれる構成ファイルに定義済みのブートオプションが含まれているメニューインタフェースを実装します。また、デフォルトのブート動作の変更など、さまざまなブート機能の実行に使用できる GUI メニューインタフェースからアクセス可能なコマンド行インタフェースも備えています。Solaris OS では、GRUB の実装はマルチブート仕様に準拠しています。マルチブート仕様の詳細は、http://www.gnu.org/software/grub/grub.html を参照してください。

Solaris カーネルはマルチブート仕様に完全に準拠しているため、GRUB を使用して x86 システムをブートできます。GRUB を使用すると、単一の x86 システムにインストールされている各種オペレーティングシステムをブートできます。たとえば、ブート時に GRUB メニューでブートエントリを選択するか、デフォルトで特定の OS をブートするように menu.lst ファイルを設定することで、Solaris OS、Linux、または Windows を個別にブートできます。

GRUB では、ファイルシステムとカーネル実行可能ファイルの形式が認識されるため、ディスク上のカーネルの物理的な位置を記録しておかなくても、オペレーティングシステムを読み込むことができます。GRUB ベースのブートでは、カーネルは、カーネルのファイル名、およびカーネルが存在するドライブとパーティションを指定することでロードされます。 詳細は、「GRUB の構成に使用される命名規則」を参照してください。

GRUB を使ってシステムをブートする手順については、「GRUB を使用して x86 システムをブートする (作業マップ)」を参照してください。

また、次のマニュアルページも参照してください。

新しい findroot コマンドの GRUB サポート

この Solaris リリースでは、新しい findroot コマンドの GRUB サポートが実装されました。findroot コマンドは、以前に GRUB が使用していた root コマンドと同様に機能しますが、ブートデバイスに関係なく、目的のディスクを発見する機能が強化されました。findroot コマンドは、ZFS ルートファイルシステムからのブートもサポートします。

このコマンドの menu.lst エントリのもっとも一般的な形式は次のとおりです。


title Solaris 10 10/08 s10x_u6wos_03 X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

詳細は、「x86: findroot コマンドの実装」を参照してください。

GRUB の参照情報については、第 15 章x86: GRUB ベースのブート (参照情報)を参照してください。

ZFS ルートファイルシステムからの起動

ZFS ルートファイルシステムからのブートのサポートが Solaris OS に追加されました。Solaris インストールソフトウェアには、ZFS ルートを含むシステムのアップグレードやパッチ適用のサポートも含まれています。ブート方法、システム操作、およびインストール手順は、この変更をサポートするように修正されました。ブートに関する変更には、SPARC プラットフォームでの新しいブートアーキテクチャーの実装があります。新しい SPARC ブート設計では、Solaris x86 ブートアーキテクチャーとの共通性を高める機能強化が行われています。

この機能を使用する前に、『Solaris 10 ご使用にあたって』で既知の問題に関する情報を確認してください。

用語の完全なリストなど、ZFS の詳細は、『Solaris ZFS 管理ガイド』「ZFS の用語」を参照してください。

ZFS の Solaris インストール要件

Solaris ソフトウェアの新規インストールを実行する前、または Solaris Live Upgrade を使って UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する前に、次の要件が満たされていることを確認してください。

  • Solaris リリース情報

    ZFS ルートファイルシステムからインストールやブートを行う機能は、Solaris 10 10/09 リリースで使用できます。Solaris Live Upgrade 処理を実行して ZFS ルートファイルシステムに移行するには、Solaris 10 10/09 リリースをインストールしておくか、そのリリースにアップグレードしておく必要があります。

  • ZFS ストレージプールの容量要件

    ZFS ルート環境ではスワップデバイスとダンプデバイスが共有されないため、ブート可能な ZFS ルートファイルシステムに必要な空きプール領域の最小容量は、ブート可能な UFS ルートファイルシステムの場合よりも大きくなります。

    スワップボリュームのサイズは物理メモリーのサイズの 1/2 (ただし 2G バイト以下かつ 512M バイト以上) として計算されます。ダンプボリュームのサイズは、dumpadm の情報と物理メモリーのサイズに基づいて、カーネルによって計算されます。新しいサイズがシステムの運用をサポートする限り、JumpStart プロファイルで、または最初のインストール時に、スワップボリュームとダンプボリュームのサイズを好きなサイズに調整できます詳細は、『Solaris ZFS 管理ガイド』「スワップデバイスおよびダンプデバイスの ZFS サポート」を参照してください。

ZFS ルートファイルシステムからのブートの動作

ZFS ルートファイルシステムからのブート動作は、UFS ファイルシステムからブートする場合とは異なります。ZFS はインストールやブートに新しい概念をいくつか適用するため、システムのブートに関する基本的な管理業務がいくつか変更されました。ZFS ルートファイルシステムからのブートと UFS ルートファイルシステムからのブートのもっとも重要な違いは、ZFS からのブートでは、デバイス識別子がルートファイルシステムを一意に特定しないことです。これはつまり、ブート環境 (BE) であると言えます。ZFS を使用した場合は、デバイス識別子によって「ストレージプール」が一意に識別されます。ストレージプールには、複数のブート可能データセット (ルートファイルシステム) が含まれていることがあります。そのため、ブートデバイスを指定するほかに、ブートデバイスによって識別されたプール内のルートファイルシステムも指定する必要があります。

x86 システムでは、GRUB によって識別されるブートデバイスに ZFS ストレージプールが含まれている場合、GRUB メニューの作成に使われる menu.lst ファイルがそのプールのデータセット階層のルートにあるデータセットに格納されています。このデータセットには、プールと同じ名前が付いています。各プールにそのようなデータセットが 1 つあります。

「デフォルトのブート可能データセット」は、ブート時にマウントされ、ルートプールの bootfs プロパティーによって定義される、プールのブート可能データセットです。ルートプール内のデバイスがブートすると、このプロパティーによって指定されるデータセットがルートファイルシステムとしてマウントされます。

新しい bootfs プールプロパティーは、指定されたプールのデフォルトのブート可能データセットを指定するためにシステムが使用するメカニズムです。ルートプール内のデバイスが起動すると、デフォルトでルートファイルシステムとしてマウントされるデータセットは bootfs プールプロパティーによって識別されるデータセットになります。

SPARC システムでは、boot コマンドの新しい -Z dataset オプションを使用することで、デフォルトの bootfs プールプロパティーが上書きされます。

x86 システムでは、ブート時に GRUB メニューで代替ブート環境を選択することで、デフォルトの bootfs プールプロパティーが上書きされます。

SPARC: ZFS ルートファイルシステムからのブートをサポートするブートオプション

SPARC プラットフォームでは、次の 2 つのブートオプションが新たに追加されました。

  • -L オプション。システム上の使用可能なすべての BE のリストを表示します。


    ok boot -L
    

    注 –

    -L オプションは、ok プロンプトから実行されます。このオプションは、システム上の使用可能な BE のリストを表示するだけです。システムをブートするには、- Z ブートオプションを使用します。


  • -Z オプション。boot コマンドでこのオプションを使用すると、bootfs プールプロパティーによって指定されるデフォルトのデータセット以外のブート可能データセットを指定できます。


    ok boot -Z dataset
    

ZFS ブートローダーを備えたデバイスで -L オプションを使用したときに表示される BE のリストは、当該システムで使用可能な menu.lst エントリを反映しています。使用可能な BE のリストのほかに、BE を選択する方法や -Z オプションを使ってシステムをブートする方法も表示されます。メニュー項目の bootfs 値によって指定されたデータセットは、ブーターによって読み込まれる後続のすべてのファイル (/etc ディレクトリに格納されているブートアーカイブや各種の構成ファイルなど) に使用されます。その後、このデータセットはルートファイルシステムとしてマウントされます。

手順については、「SPARC システムで ZFS ルートファイルシステムからブートする」を参照してください。

x86: ZFS ルートファイルシステムからのブートをサポートするブートオプション

x86 プラットフォームでは、新しい GRUB キーワード $ZFS-BOOTFS が導入されました。x86 システムのブート時に、GRUB メニューエントリに対応するルートファイルシステムが ZFS データセットである場合は、GRUB メニューエントリに、デフォルトで $ZFS-BOOTFS トークンを持つ -B オプションが含まれます。ZFS ブートローダーをサポートする Solaris リリースをシステムにインストールするか、そのリリースにアップグレードする場合は、GRUB menu.lst ファイルがこの情報で自動的に更新されます。 デフォルトのブート可能データセットは、bootfs プロパティーによって識別されます。

ZFS ブートローダーをサポートする Solaris リリースが稼働する x86 システムでは、この情報は GRUB メニューに組み込まれます。

ZFS ブートローダーをサポートする GRUB 実装のデフォルトの menu.lst ファイルの例を次に示します。


title Solaris 10 5/08 s10x_nbu6wos_nightly X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

ZFS からシステムをブートする手順については、「x86 システムで ZFS ルートファイルシステムから起動する」を参照してください。