Solaris 10 インストールガイド (ネットワークインストール)

第 4 章 x86: Solaris インストールのための GRUB ベースのブート

この章では、Solaris インストールに関連する、x86 システムでの GRUB ベースのブートについて説明します。この章の内容は次のとおりです。

x86: GRUB ベースのブート (概要)

Solaris 10 1/06 以降のリリースでは、オープンソースのブートローダーである GRUB が、Solaris OS のデフォルトのブートローダーとして採用されています。


注 –

GRUB ベースのブートは、SPARC システムでは使用できません。


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

GRUB は、簡単なメニューインタフェースを備えたオープンソースのブートローダーで、メニューには構成ファイルに定義されたブートオプションが表示されます。また、GRUB はコマンド行インタフェースも備えており、メニューインタフェースからアクセスしてさまざまなブートコマンドを実行できます。Solaris OS では、GRUB 実装はマルチブート仕様に準拠しています。マルチブート仕様について詳細は、http://www.gnu.org/software/grub/grub.html を参照してください。

Solaris カーネルはマルチブート仕様に完全に準拠しているため、GRUB を使用して Solaris x86 システムをブートできます。GRUB を使用すると、さまざまなオペレーティングシステムのブートおよびインストールがより簡単にできます。たとえば、1 つのシステムで次のオペレーティングシステムを別々にブートできます。

GRUB の主な利点は、ファイルシステムおよびカーネル実行可能ファイルの形式に対して直観的であるため、ディスク上のカーネルの物理的位置を記録せずにオペレーティングシステムをロードできることです。GRUB ベースのブートでは、カーネルのファイル名、ドライブ、およびカーネルがあるパーティションを指定することでカーネルがロードされます。GRUB ベースのブートは Solaris Device Configuration Assistant (デバイス構成用補助) を置き換え、GRUB メニューによってブート処理を簡略化します。

x86: GRUB ベースのブートの動作

GRUB がシステムの制御を取得すると、コンソールにメニューが表示されます。GRUB メニューでは次の操作を実行できます。

デフォルトで登録されている OS ブートでは、設定可能なタイムアウトを利用できます。いずれかのキーを押すと、デフォルトの OS エントリのブートが中止されます。

GRUB メニューの例については、「GRUB メインメニューについて」を参照してください。

x86: GRUB デバイス命名規則

GRUB が使用するデバイス命名規則は、以前の Solaris OS バージョンの場合と若干異なっています。GRUB デバイス命名規則を理解すると、使用しているシステムで GRUB を構成するときに、ドライブとパーティションの情報を正しく指定できます。

次の表に、GRUB デバイス命名規則を示します。

表 4–1 GRUB デバイスの命名規則

デバイス名 

説明 

(fd0), (fd1)

最初のフロッピーディスク、2 番目のフロッピーディスク 

(nd)

ネットワークデバイス 

(hd0,0), (hd0,1)

最初の bios ディスクの 1 番目と 2 番目の fdisk パーティション

(hd0,0,a), (hd0,0,b)

最初の bios ディスクの 1 番目の fdisk パーティションの Solaris/BSD スライス 0 および 1


注 –

GRUB デバイス名はすべて括弧で囲む必要があります。パーティション番号は、1 からではなく 0 (ゼロ) から数えます。


fdisk パーティションの詳細については、『Solaris のシステム管理 (デバイスとファイルシステム)』「fdisk パーティションの作成上のガイドライン」を参照してください。

x86: GRUB ベースのインストールについての情報の参照先

変更内容の詳細については、次の関連情報を参照してください。

表 4–2 GRUB ベースのインストールについての情報の参照先

トピック 

GRUB メニューでの作業 

参照先 

インストール 

Solaris OS CD または DVD メディアからインストールする方法 

『Solaris 10 インストールガイド (基本編)』

ネットワークインストールイメージからインストールする方法 

パート II「ローカルエリアネットワーク経由のインストール」

 

ネットワークインストールのために DHCP サーバーを構成する方法 

「DHCP サービスによるシステム構成情報の事前設定 (作業)」

 

カスタム JumpStart プログラムでインストールする方法 

『Solaris 10 インストールガイド (カスタム JumpStart/ 上級編)』「カスタム JumpStart インストールの実行」

 

Solaris Live Upgrade を使用してブート環境のアクティブ化またはフォールバックを行う方法 

システム管理 

GRUB および管理作業についての詳細 

『Solaris のシステム管理 (基本編)』の第 11 章「GRUB ベースのブート (手順)」

x86: GRUB ベースのブート (計画)

この節では、GRUB ベースのブートの基本と、GRUB メニューについて説明します。

Solaris OS のインストール時に、デフォルトで 2 つの GRUB メニューエントリがシステムにインストールされます。最初のエントリは Solaris OS エントリです。2 番目のエントリはフェイルセーフブートアーカイブで、システムの回復に使用されます。Solaris GRUB メニューエントリは、Solaris ソフトウェアのインストールおよびアップグレード処理の一環として自動的にインストールおよびアップグレードされます。これらのエントリは OS によって直接管理されるため、手動で編集しないでください。

Solaris OS の標準インストール中に、システム BIOS の設定を変更せずに GRUB が Solaris fdisk パーティションにインストールされます。この OS が BIOS ブートディスクにない場合は、次のいずれかの操作を行う必要があります。

ブートディスクに Solaris OS をインストールする方法をお勧めします。マシンに複数のオペレーティングシステムがインストールされている場合は、エントリを menu.lst ファイルに追加できます。これらのエントリは、システムを次にブートしたときに GRUB メニューに表示されます。

複数のオペレーティングシステムの詳細については、『Solaris のシステム管理 (基本編)』「GRUB ブート環境で複数のオペレーティングシステムをサポートする方法」を参照してください。

x86: ネットワークからの GRUB ベースのインストールの実行

GRUB ベースのネットワークブートを実行するには、PXE クライアント用に構成された DHCP サーバーと、tftp サービスを提供するインストールサーバーが必要です。DHCP サーバーには、DHCP クラスである PXEClient GRUBClient に応答する機能が必要です。DHCP 応答には、次の情報が含まれている必要があります。


注 –

rpc.bootparamd は、通常、ネットワークブートを実行する場合にサーバー側で必要とされるファイルですが、GRUB ベースのネットワークブートでは不要です。


PXE も DHCP サーバーも使用できない場合は、CD-ROM またはローカルディスクから GRUB をロードできます。次に GRUB でネットワークを手動で構成し、ファイルサーバーからマルチブートプログラムとブートアーカイブをダウンロードできます。

詳細については、「x86: PXE を使用したネットワーク経由のブートとインストールの概要」を参照してください。

GRUB メインメニューについて

x86 システムをブートすると、GRUB メニューが表示されます。このメニューには、選択可能なブートエントリの一覧が表示されます。「ブートエントリ」は、使用しているシステムにインストールされている OS インスタンスです。GRUB メニューは、構成ファイルの menu.lst ファイルに基づいています。menu.lst ファイルは、Solaris インストールプログラムによって作成され、インストール後に変更できます。menu.lst ファイルには、GRUB メニューに表示される OS インスタンスの一覧が記述されています。


例 4–1 GRUB メインメニュー

次の例では、GRUB メインメニューに Solaris オペレーティングシステムと Microsoft Windows オペレーティングシステムが表示されています。また、Solaris Live Upgrade ブート環境も second_disk という名前で一覧に表示されています。各メニューの項目については、続く説明を参照してください。


GNU GRUB version 0.95 (616K lower / 4127168K upper memory)
+-------------------------------------------------------------------+
|Solaris                                                            |
|Solaris failsafe                                                   |
|second_disk                                                        |
|second_disk failsafe                                               |
|Windows                                                            |
+-------------------------------------------------------------------+
Use the ^ and v keys to select which entry is highlighted. Press
enter to boot the selected OS, 'e' to edit the commands before
booting, or 'c' for a command-line.
Solaris

Solaris OS を指定します。

Solaris failsafe

Solaris OS が損傷した場合に、回復のために使用できるブートアーカイブを指定します。

second_disk

Solaris Live Upgrade ブート環境を指定します。second_disk ブート環境は、Solaris OS のコピーとして作成されました。luactivate コマンドによってアップグレードおよびアーカイブされています。ブート環境は、ブート時に使用できます。

Windows

Microsoft Windows OS を指定します。GRUB はこれらのパーティションを検出しますが、OS がブート可能かどうかは確認しません。


GRUB menu.lst ファイルについて

GRUB menu.lst ファイルには、GRUB メインメニューの内容の一覧が記述されています。GRUB メインメニューには、Solaris Live Upgrade ブート環境を含め、システムにインストールされているすべての OS インスタンスのブートエントリが一覧表示されます。Solaris のソフトウェアアップグレード処理では、このファイルに対して行なった変更内容がすべて保持されます。

menu.lst ファイルに対する修正は、Solaris Live Upgrade エントリと一緒に、すべて GRUB メインメニューに表示されます。ファイルに対する変更点はすべて、システムを次にリブートしたときに有効になります。このファイルは、次の目的で変更できます。


注意 – 注意 –

GRUB menu.lst ファイルを使用して Solaris Live Upgrade エントリを変更しないでください。変更により、Solaris Live Upgrade の実行に失敗する可能性があります。


menu.lst ファイルを使用してカーネルデバッガによるブートなどのブート動作をカスタマイズできますが、カスタマイズする場合は eeprom コマンドを使用する方法をお勧めします。menu.lst ファイルを使用してカスタマイズすると、ソフトウェアのアップグレード時に Solaris OS エントリが変更される可能性があります。これにより、ファイルに加えた変更内容が失われます。

eeprom コマンドの使用法については、『Solaris のシステム管理 (基本編)』「eeprom コマンドを使用して Solaris ブートパラメータを設定する方法」を参照してください。


例 4–2 menu.lst ファイル

次に menu.lst ファイルの例を示します。


default 0
timeout 10
title Solaris
  root (hd0,0,a)
  kernel /platform/i86pc/multiboot -B console=ttya
  module /platform/i86pc/boot_archive
title Solaris failsafe
  root (hd0,0,a)
  kernel /boot/multiboot -B console=ttya -s
  module /boot/x86.miniroot.safe
#----- second_disk - ADDED BY LIVE UPGRADE - DO NOT EDIT  -----
title second_disk
  root (hd0,1,a)
  kernel /platform/i86pc/multiboot
  module /platform/i86pc/boot_archive
title second_disk failsafe
  root (hd0,1,a)
  kernel /boot/multiboot kernel/unix -s
  module /boot/x86.miniroot-safe
#----- second_disk -------------- END LIVE UPGRADE ------------
title Windows
  root (hd0,0)
  chainloader -1
default

タイムアウトした場合にブートする項目を指定します。デフォルトの設定を変更する場合は、番号を変更して一覧の別の項目を指定できます。最初のタイトルを 0 として数えます。たとえば、デフォルトを 2 に変更すると、second_disk ブート環境が自動的にブートします。

timeout

デフォルトのエントリをブートするまで、ユーザーの入力を待つ時間を秒単位で指定します。タイムアウトを指定しない場合は、エントリを選択する必要があります。

title OS name

オペレーティングシステムの名前を指定します。

  • これが Solaris Live Upgrade ブート環境の場合、OS name は新しいブート環境の作成時にその環境に指定した名前です。前の例では、Solaris Live Upgrade ブート環境の名前は second_disk です。

  • これがフェイルセーフブートアーカイブの場合、このブートアーカイブは主 OS が損傷したときの回復処理に使用されます。前の例では、Solaris フェイルセーフと second_disk フェイルセーフが Solaris および second_disk オペレーティングシステムの回復用ブートアーカイブです。

root (hd0,0,a)

ファイルのロード先となるディスク、パーティション、およびスライスを指定します。GRUB は、ファイルシステムの種類を自動的に検出します。

kernel /platform/i86pc/multiboot

マルチブートプログラムを指定します。kernel コマンドのあとに、必ずマルチブートプログラムを指定する必要があります。マルチブートのあとの文字列は、解釈されずに Solaris OS に渡されます

複数のオペレーティングシステムの詳細については、『Solaris のシステム管理 (基本編)』「GRUB ブート環境で複数のオペレーティングシステムをサポートする方法」を参照してください。


GRUB メニューを変更するための menu.lst ファイルの検出

GRUB メニューの menu.lst ファイルを検出するには、常に bootadm コマンドを使用する必要があります。アクティブな GRUB メニューを見つけるには、list-menu サブコマンドを使用します。menu.lst ファイルには、システムにインストールされているすべてのオペレーティングシステムが一覧表示されています。このファイルの内容は、GRUB メニューに表示されるオペレーティングシステムの一覧を記述したものです。このファイルに変更を加える場合は、「x86: GRUB メニューの menu.lst ファイルの検出 (作業)」を参照してください。

x86: GRUB メニューの menu.lst ファイルの検出 (作業)

Solaris 10 1/06 以降のリリースでは、GRUB メニューを更新することができます。たとえば、デフォルトの OS がブートするまでのデフォルトの時間を変更できます。また、別の OS を GRUB メニューに追加することができます。

通常、アクティブな GRUB メニューの menu.lst ファイルは /boot/grub/menu.lst に置かれています。場合によっては、GRUB menu.lst ファイルが別の場所に置かれていることもあります。たとえば、Solaris Live Upgrade を使用するシステムの場合は、GRUB menu.lst ファイルが現在稼働中のブート環境ではないブート環境に存在することもあります。また、x86 ブートパーティションがあるシステムをアップグレードした場合、menu.lst ファイルは /stubboot ディレクトリに置かれている場合があります。システムのブートには、アクティブな GRUB menu.lst ファイルのみが使用されます。システムのブート時に表示される GRUB メニューを変更するには、アクティブな GRUB menu.lst ファイルに変更を加える必要があります。それ以外の GRUB menu.lst ファイルに変更を加えても、システムのブート時に表示されるメニューに影響はありません。アクティブな GRUB menu.lst ファイルの場所を特定するには、bootadm コマンドを使用します。list-menu サブコマンドを実行すると、アクティブな GRUB メニューの場所が表示されます。次の手順で、GRUB メニューの menu.lst ファイルの場所を特定します。

bootadm コマンドの詳細については、bootadm(1M) のマニュアルページを参照してください。

ProcedureGRUB メニューの menu.lst ファイルの検出

次の手順では、システムに次の 2 つのオペレーティングシステムが含まれています。Solaris、および Solaris Live Upgrade ブート環境である second_disk です。Solaris OS はブート済みで、GRUB メニューが含まれています。

手順
  1. スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. menu.lst ファイルを検出するには、次のように入力します。


    # /sbin/bootadm list-menu
    

    ファイルの場所と内容が表示されます。


    The location for the active GRUB menu is: /boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe

Procedureアクティブな menu.lst ファイルが別のブート環境にある場合の GRUB メニューの menu.lst ファイルの検出

次の手順では、システムに次の 2 つのオペレーティングシステムが含まれています。Solaris 、および Solaris Live Upgrade ブート環境である second_disk です。この場合、現在稼働中のブート環境には menu.lst ファイルは存在しません。second_disk ブート環境がブートされています。Solaris ブート環境には GRUB メニューが含まれています。Solaris ブート環境はマウントされていません。

手順
  1. スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. menu.lst ファイルを検出するには、次のように入力します。


    # /sbin/bootadm list-menu
    

    ファイルの場所と内容が表示されます。


    The location for the active GRUB menu is: /dev/dsk/device_name(not mounted)
    The filesystem type of the menu device is <ufs>
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe
  3. menu.lst ファイルを含むファイルシステムがマウントされていないため、ファイルシステムをマウントします。UFS ファイルシステムとデバイス名を指定します。


    # /usr/sbin/mount -F ufs /dev/dsk/device_name /mnt
    

    device_name は、マウントするブート環境のディスクデバイスにあるルート (/) ファイルシステムの場所を指定します。デバイス名は、/dev/dsk/cwtxdysz の形式で入力します。次に例を示します。


    # /usr/sbin/mount -F ufs /dev/dsk/c0t1d0s0 /mnt
    

    GRUB メニューには /mnt/boot/grub/menu.lst でアクセスできます。

  4. ファイルシステムをマウント解除します。


    # /usr/sbin/umount /mnt
    

    注 –

    ブート環境またはブート環境のファイルシステムをマウントする場合は、使用後に必ずファイルシステムをマウント解除してください。これらのファイルシステムをマウント解除しないと、その後 Solaris Live Upgrade を同じブート環境で実行したときに失敗する可能性があります。


ProcedureSolais Live Upgrade ブート環境がマウントされている場合の GRUB メニューの menu.lst ファイルの検出

次の手順では、システムに次の 2 つのオペレーティングシステムが含まれています。Solaris 、および Solaris Live Upgrade ブート環境である second_disk です。second_disk ブート環境がブートされています。Solaris ブート環境には GRUB メニューが含まれています。Solaris ブート環境は /.alt.Solaris にマウントされています。

手順
  1. スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. menu.lst ファイルを検出するには、次のように入力します。


    # /sbin/bootadm list-menu
    

    ファイルの場所と内容が表示されます。


    The location for the active GRUB menu is: /.alt.Solaris/boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe

    GRUB メニューを含むブート環境がすでにマウントされているため、/.alt.Solaris/boot/grub/menu.lstmenu.lst ファイルにアクセスできます。

Procedureシステムに x86 ブートパーティションがある場合の GRUB メニューの menu.lst ファイルの検出

次の手順では、システムに次の 2 つのオペレーティングシステムが含まれています。Solaris、および Solaris Live Upgrade ブート環境である second_disk です。second_disk ブート環境がブートされています。システムはアップグレードされており、x86 ブートパーティションが残されています。ブートパーティションは /stubboot にマウントされ、GRUB メニューが含まれています。x86 ブートパーティションについては、「x86: パーティション分割に関する推奨事項」を参照してください。

手順
  1. スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. menu.lst ファイルを検出するには、次のように入力します。


    # /sbin/bootadm list-menu
    

    ファイルの場所と内容が表示されます。


    The location for the active GRUB menu is: /stubboot/boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris
    1 Solaris failsafe
    2 second_disk
    3 second_disk failsafe

    menu.lst ファイルには、/stubboot/boot/grub/menu.lst でアクセスできます。