この章では、Solaris システムのブート動作の変更方法について説明します。
この章の内容は次のとおりです。
ブートに関する新機能とブートプロセスの概要については、第 8 章システムのシャットダウンとブートの概要を参照してください。
Oracle Solaris システムのブート手順については、第 12 章Oracle Solaris システムのブート (手順)を参照してください。
ブート PROM はシステムのブートに使用します。必要に応じて、システムのブート方法を変更します。たとえば、システムをマルチユーザーレベルにする前に、どのデバイスからブートするかを設定し直したり、ハードウェア診断プログラムを実行したりする場合です。
システム管理者は、通常 PROM レベルを使ってシステムをブートします。PROM レベルでデフォルトのブートファイルやブートデバイスを変更することもできます。
次のいずれかの作業を行う必要がある場合は、デフォルトのブートデバイスを変更する必要があります。
新しいドライブを永久または一時的にシステムに追加します
ネットワークブート方法を変更します
スタンドアロンシステムを一時的にネットワークからブートします
すべての PROM コマンドについては、monitor(1M) および eeprom(1M) のマニュアルページを参照してください。
システムの PROM リビジョン番号を表示するには、banner コマンドを使用します。
ok banner Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard OpenBoot 3.15, 128 MB memory installed, Serial #number. Ethernet address number, Host ID: number. |
ハードウェア構成情報が表示され、その中に PROM のリビジョン番号があります。この例では、PROM のリビジョン番号は 3.15 です。
システム上のデバイスを確認して、ブートに適したデバイスを見極めることが必要な場合があります。
probe コマンドを使用してシステムに接続されているデバイスを安全に確認するためには、次のことを行なっておく必要があります。
PROM の auto-boot? パラメータの値を false に変更します。
ok setenv auto-boot? false |
reset-all コマンドを発行して、システムのレジスタをクリアします。
ok reset-all |
sifting probe コマンドを使用すると、システム上で利用可能な probe コマンドを表示できます。
ok sifting probe |
システムのレジスタをクリアしないで probe コマンドを実行すると、次のメッセージが表示されます。
ok probe-scsi This command may hang the system if a Stop-A or halt command has been executed. Please type reset-all to reset the system before executing this command. Do you wish to continue? (y/n) n |
システム上のデバイスを確認します。
ok probe-device |
(省略可能) 電源障害後や reset コマンドの使用後にシステムをリブートするようにするには、auto-boot? パラメータを true にリセットします。
ok setenv auto-boot? true auto-boot? = true |
システムをマルチユーザーモードでブートします。
ok reset-all |
次の例は、Ultra 10 システムに接続されているデバイスの確認方法を示しています。
ok setenv auto-boot? false auto-boot? = false ok reset-all Resetting ... Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard OpenBoot 3.15, 128 MB memory installed, Serial #10933339. Ethernet address 8:0:20:a6:d4:5b, Host ID: 80a6d45b. ok probe-ide Device 0 ( Primary Master ) ATA Model: ST34321A Device 1 ( Primary Slave ) Not Present Device 2 ( Secondary Master ) Removable ATAPI Model: CRD-8322B Device 3 ( Secondary Slave ) Not Present ok setenv auto-boot? true auto-boot? = true |
別の方法として、devalias コマンドを使うと、システムに接続されている「可能性のある」デバイスの別名と関連パスを確認できます。次に例を示します。
ok devalias screen /pci@1f,0/pci@1,1/SUNW,m64B@2 net /pci@1f,0/pci@1,1/network@1,1 cdrom /pci@1f,0/pci@1,1/ide@3/cdrom@2,0:f disk /pci@1f,0/pci@1,1/ide@3/disk@0,0 disk3 /pci@1f,0/pci@1,1/ide@3/disk@3,0 disk2 /pci@1f,0/pci@1,1/ide@3/disk@2,0 disk1 /pci@1f,0/pci@1,1/ide@3/disk@1,0 disk0 /pci@1f,0/pci@1,1/ide@3/disk@0,0 ide /pci@1f,0/pci@1,1/ide@3 floppy /pci@1f,0/pci@1,1/ebus@1/fdthree ttyb /pci@1f,0/pci@1,1/ebus@1/se:b ttya /pci@1f,0/pci@1,1/ebus@1/se:a keyboard! /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8:forcemode keyboard /pci@1f,0/pci@1,1/ebus@1/su@14,3083f8 mouse /pci@1f,0/pci@1,1/ebus@1/su@14,3062f8 name aliases |
システムを ok PROM プロンプトにします。
詳細は、「スタンドアロンシステムをシャットダウンする方法」を参照してください。
printenv コマンドを使用して、デフォルトのブートデバイスを調べます。
ok printenv boot-device |
ブートするデバイスを設定するパラメータを示します。
boot-device の値 (disk または net) を設定します。n はディスク番号です。
次のような形式で、デフォルトのブートデバイス (boot-device) が表示されます。
boot-device = /pci@1f,4000/scsi@3/disk@1,0:a
デフォルトのブートデバイスがネットワークブートデバイスの場合は、次のような出力が表示されます。
boot-device = /sbus@1f,0/SUNW,fas@e,8800000/sd@a,0:a \ /sbus@1f,0/SUNW,fas@e,8800000/sd@0,0:a disk net
デフォルトのブートデバイスをほかのデバイスに変更するには、まずシステム上のデバイスを確認しておく必要があります。システム上のデバイスを確認する方法については、「SPARC: システム上のデバイスを確認する方法」を参照してください。
実行レベル 0 に変更します。
# init 0 |
ok PROM プロンプトが表示されます。詳細は、init(1M) のマニュアルページを参照してください。
boot-device パラメータの値を変更します。
ok setenv boot-device device[n] |
ディスク番号を確認する必要がある場合は、probe コマンドのいずれかを使用します。
デフォルトのブートデバイスが変更されていることを確認します。
ok printenv boot-device |
新しい boot-device 値を保存します。
ok reset-all |
新しい boot-device 値が PROM に書き込まれます。
この例では、デフォルトのブートデバイスをディスクに設定しています。
# init 0 # INIT: New run level: 0 . . . The system is down. syncing file systems... done Program terminated ok setenv boot-device /pci@1f,4000/scsi@3/disk@1,0 boot-device = /pci@1f,4000/scsi@3/disk@1,0 ok printenv boot-device boot-device /pci@1f,4000/scsi@3/disk@1,0 ok boot Resetting ... screen not found. Can't open input device. Keyboard not present. Using ttya for input and output. Sun Enterprise 220R (2 X UltraSPARC-II 450MHz), No Keyboard OpenBoot 3.23, 1024 MB memory installed, Serial #13116682. Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a. Rebooting with command: boot disk1 Boot device: /pci@1f,4000/scsi@3/disk@1,0 File and args: |
この例では、デフォルトのブートデバイスをネットワークに設定しています。
# init 0 # INIT: New run level: 0 . . . The system is down. syncing file systems... done Program terminated ok setenv boot-device net boot-device = net ok printenv boot-device boot-device net disk ok reset Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 333MHz), No Keyboard OpenBoot 3.15, 128 MB memory installed, Serial #number. Ethernet address number, Host ID: number. Boot device: net File and args: . . . pluto console login: |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
ブートする代替カーネルを指定します。
# eeprom boot-device new-boot-device |
新しいパラメータが設定されていることを確認します。
# eeprom boot-device |
この出力には、boot-device パラメータの新しい eeprom 値が表示されるはずです。
ok reset-all |
自己診断プログラムが実行され、ハードウェアの診断テストが行われたあと、auto-boot? パラメータが true に設定されていれば、システムがリブートします。
実行レベル 0 に変更します。
# init 0 |
ok PROM プロンプトが表示されます。詳細は、init(1M) のマニュアルページを参照してください。
boot-file プロパティーを代替カーネルに設定します。
ok setenv boot-file boot-file |
デフォルトのブートデバイスが変更されていることを確認します。
ok printenv boot-file |
新しい boot-file 値を保存します。
ok reset-all |
新しい boot-file 値が PROM に書き込まれます。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
ブートする代替カーネルを指定します。
# eeprom boot-file new boot-file |
次に例を示します。
# eeprom boot-file=kernel.name/sparcv9/unix |
新しいパラメータが設定されていることを確認します。
# eeprom boot-file |
この出力には、指定したパラメータの新しい eeprom 値が表示されるはずです。
ITU ユーティリティーを使用して、ソフトウェアパッケージとパッチのドライバ更新 (DU) 形式への変換、および Oracle Solaris インストールメディアへのパッチ適用を行います。これにより、これらの新規パッケージとパッチを使用してシステムをブートできるようになります。Oracle Solaris 10 9/10 以降、itu コマンドが変更され、SPARC システム上に ITU を作成して格納し、新規作成した ITU を使ってシステムをブートできるようになりました。
ITU ユーティリティーを使用すると、インストール時にドライバをすぐにインストールして、バグ修正を適用できます。次の手順は、SPARC システムで ITU を作成および格納し、新規作成した ITU を使ってシステムをブートするプロセスを示します。
ITU を使ってブートするシステムで、ユーパーユーザーになります。
itu コマンドに次のオプションを指定して、ITU を作成します。
# itu makedu -r solaris-release -o iso-file package1-name package2-name... |
1 つ以上のドライバパッケージを入力として取り、パッケージを DU 形式に変換します。
ドライバを更新する Oracle Solaris リリースの番号を指定します。使用されるリリース番号の形式は、5.10 です
作成する ISO イメージファイルのパスを指定します。
itu コマンドおよびそのオプションすべての詳細は、itu(1M) のマニュアルページを参照してください。
システムを ok PROM プロンプトにします。
auto-boot プロパティーを無効にします。
ok setenv auto-boot?=false |
システムをリセットします。
ok reset-all |
前の手順により、システムのブート時に itu-device 文字列が消去されないことが保証されます。このため、この手順は重要です。
cdrom 別名を見つけます。
ok devalias cdrom |
この別名は、システムに接続されている CD または DVD ドライブのデバイスパスです。この出力は、システムによって変化することに留意してください。たとえばこの手順では、cdrom 別名の場所は次のようになります。
/pci@8,700000/scsi@1/disk@6,0:f |
ITU のインストールに使用される itu-device のパスを設定します。
次の例に示すように、config-string の最初の部分で手順 6 の出力が使用されます。
ok> " /pci@8,700000/scsi@1/disk@6,0:f" d# 80 config-string itu-device |
80 は文字列の最大長を表します。cdrom 別名を変更して 80 文字より長くする場合は、この数値を必要に応じて大きくします。
ITU を使ってシステムをブートします。
ok boot |
システムをブートし、Solaris インストールプロセスが始まると、itu-device に格納されている ITU がシステムにより検出されます。次に、itu-device で使用可能なシステムコンポーネントがシステムで識別および構成されます。これらのドライバ用のデバイスも識別および構成されます。インストールが完了すると、デバイスがインストール先として使用可能になります。
インストールの完了後に、auto-boot プロパティーのデフォルト値が復元されて、システムがブートします。
ok setenv auto-boot?=true |
前述の例では、auto-boot プロパティーのデフォルト値が true であることを前提としています。
システムをブートします。
ok boot |
作業 |
説明 |
参照先 |
---|---|---|
eeprom コマンドを使用してブートファイルパラメータを設定します。 |
eeprom コマンドを使用して、x86 システムのブート動作を変更します。 eeprom コマンドを使って設定するブートオプションは、ブート時に GRUB メニューでカーネルの動作を変更してオプションを上書きしないかぎり、システムをリブートしても持続します。 | |
ブート時に GRUB メニューを編集してブート動作を変更します。 |
ブート時に GRUB メニューを編集してブート動作を変更します。GRUB メニューでブート動作を変更することで指定するブートオプションは、次にシステムをリブートするまでしか持続しません。 | |
手動で menu.lst ファイルを編集してブート動作を変更します。 |
menu.lst 構成ファイルを編集して新しい OS エントリを追加するか、コンソールをリダイレクトすることで、ブート動作を変更します。ファイルに加えた変更は、システムをリブートしても持続します。 | |
menu.lst ファイルを、findroot コマンドをサポートするエントリを含むように変更します。 |
インストールまたはアップグレードが完了したら、findroot コマンドを使用するそのほかのメニューエントリを menu.lst ファイルメニューに追加できます。 |
x86 システムのブート動作を変更する主な方法は、次のとおりです。
eeprom コマンドを使用する方法。
eeprom コマンドを使用して、一連の標準プロパティーに別の値を割り当てます。これらの値は、SPARC の OpenBoot PROM NVRAM 変数と等価で、/boot/solaris/bootenv.rc ファイルに格納されます。eeprom コマンドを使用してブート動作に加えた変更は、システムをリブートしても持続し、ソフトウェアのアップグレード中も保持されます。これらの変更を上書きするには、ブート時に GRUB メニューを編集するか、menu.lst ファイルを編集します。詳細は、eeprom(1M) のマニュアルページを参照してください。
bootenv.rc ファイルを直接編集して加えた変更は、ソフトウェアのアップグレード中に必ずしも保持されるとは限りません。そのため、この方法はお勧めしません。この種類の変更を加える場合は、eeprom コマンドを使用する方法をお勧めします。
ブート時に GRUB メニューを編集する方法。
ブート時に GRUB カーネルの動作を変更して加えた変更は、eeprom コマンドを使用して設定するオプションより優先されます。ただし、これらの変更の効果は、次にシステムをブートするまでしか持続しません。詳細は、kernel(1M) のマニュアルページを参照してください。
手動で GRUB menu.lst ファイルを編集する方法。
menu.lst エントリに加えられたシステム生成の変更はすべて、システムのアップグレード中に変更されるか、失われます。ただし、手動で追加した新しいブートエントリは、アップグレード後も維持されます。eeprom の設定を上書きするには、ブート時に GRUB メニューを編集するか、menu.lst ファイルを編集します。ブート時に GRUB メニューを編集して加えた変更は持続しません。ただし、menu.lst ファイルを編集して加えた変更は、システムをリブートしても持続します。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
指定されたパラメータを変更します。
# eeprom parameter=new-value |
新しいパラメータが設定されていることを確認します。
# eeprom parameter |
この出力には、指定したパラメータの新しい eeprom 値が表示されるはずです。
次の例は、システムが 64 ビットカーネルをブートするように手動で指定する方法を示しています。64 ビット対応のシステムが必要です。
# eeprom boot-file=kernel/amd64/unix |
次の例は、64 ビット対応システムで 32 ビットカーネルを手動でブートする方法を示しています。
# eeprom boot-file=kernel/unix |
次の例は、システム上で自動検出されたデフォルトのブート動作を復元する方法を示しています。
# eeprom boot-file="" |
次の例は、ZFS ルートファイルシステムからのシステムのブートをサポートする Oracle Solaris リリースの GRUB メインメニューを示しています。このメニューは、menu.lst ファイルの内容に基づいて、システム上のブート可能なすべての OS インスタンスのメニューエントリを含んでいます。特に指定がないかぎり、メニューの最初のエントリはデフォルトです。別のブートエントリをデフォルトとして指定するには、default=n コマンドを menu.lst ファイルに追加します。この場合の n は 0 (最初のブートエントリ) から始まる数値です。
GNU GRUB version 0.95 (637K lower / 3144640K upper memory) +-------------------------------------------------------------------------+ be1) be1 failsafe be3 be3 failsafe be2 be2 failsafe +-------------------------------------------------------------------------+ 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. |
menu.lst ファイルに含まれる情報は、Oracle Solaris のリリースと使用したインストール方法によって異なります。
GRUB メニューのブートエントリを編集するには、矢印キーを使ってエントリを選択してから、e と入力します。
GNU GRUB version 0.95 (637K lower / 3144640K upper memory) +-------------------------------------------------------------------------+ findroot (BE_be1,0,a) bootfs rpool/ROOT/szboot_0508 kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive +-------------------------------------------------------------------------+ 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. |
ブート時に GRUB メニューを編集する方法については、「x86: ブート時に GRUB メニューを編集してブート動作を変更する方法」を参照してください。
次の例は、さまざまな GRUB 実装の編集メニューを示しています。
GRUB ZFS をサポートしている場合
grub edit> kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS,prop=value [,prop=value...]][-asrvxk] [-m smf-options] [-i altinit] |
ZFS をサポートしているシステムでブート引数を追加するときは、デフォルトの -B $ZFS-BOOTFS 引数の後ろに追加の - B オプションを含めるようにしてください。
GRUB UFS をサポートしている場合
grub edit> kernel /platform/i86pc/multiboot [-asrvxk] [-m smf-options] [-i altinit][-B prop=value [,prop=value...]] |
次の一覧では、ブート時に GRUB メニューを編集して指定できるブート引数とオプションについて説明します。
ブートするカーネルを指定します
構成情報の入力を求めるプロンプトを表示します
システムをシングルユーザーモードでブートします
再構成用ブートを指定します
接続されているすべてのハードウェアデバイスを検索してから、実際に見つかったデバイスだけに、ファイルシステムのノードを割り当てます。
詳細メッセージを有効にした状態でシステムをブートします
クラスタモードではシステムをブートしません
カーネルデバッガを有効にした状態でシステムをブートします
サービス管理機能 (Service Management Facility、SMF) のブート動作を制御します
復元オプションとメッセージオプションという、2 種類のオプションがあります
代替実行可能ファイルを原始プロセスとして指定します。 altinit は実行可能ファイルへの有効なパスです。
カーネルのブートプロパティーを指定します。
次に、-B prop=val オプションを使用して GRUB メニューでブート動作を変更できる各種方法を示します。
出力先をコンソールから ttya に変更します。
デバイスの ACPI (Advanced Configuration and Power Interface) 列挙を使用不可にします。
出力先をコンソールから ttya に変更し、デバイスの ACPI 列挙を使用不可にします。
ACPI を完全に使用不可にします。
プロパティーを指定するときに、eeprom コマンドと GRUB コマンド行を使用した場合には、GRUB コマンドが優先されます。
ブート時に GRUB メニューを編集して GRUB カーネルの動作を変更すると、その変更はシステムをリブートするまでしか持続しません。次にシステムをブートすると、デフォルトのブート動作が復元されます。
システムを再起動します。
ブートシーケンスが始まると、GRUB メインメニューが表示されます。
矢印キーを使用して、編集するブートエントリを選択します。
e と入力して、GRUB 編集メニューにアクセスします。
このメニューで、kernel 行または kernel$ 行を選択します。
e と入力して、ブート引数をその行に追加します。
指定する追加のブート引数を入力します。
Return キーを押して変更を保存し、前のメニューに戻ります。
変更を保存せずに GRUB メインメニューに戻るには、Escape キーを押します。
システムをブートするために、b と入力します。
適用した変更は、システムをブートしたあとで有効になります。
64 ビット対応のシステムで 32 ビットのカーネルをブートするには、kernel/unix 引数を追加します。
grub edit> kernel /platform/i86pc/multiboot kernel/unix |
シリアルコンソールを ttyb にリダイレクトするには、 -B console=ttyb 引数を追加します。
grub edit> kernel /platform/i86pc/multiboot -B console=ttyb |
また、次の例に示すように、input-device/output-device プロパティーを使用することもできます。
grub edit> kernel /platform/i86pc/multiboot -B input-device=ttyb,output-device=ttyb |
次の例は、シリアル回線速度を上書きする方法を示しています。
grub edit> kernel /platform/i86pc/multiboot -B ttyb-mode="115200,8,n,1,-" |
注意: この例のプロパティー値には、プロパティーの区切り文字としてのコンマも含まれています。プロパティーの構文解析部と混同しないようにするため、二重引用符を使用してプロパティー値全体を囲んでください。
GRUB メニューは、menu.lst 構成ファイルに基づいており、カスタマイズできます。システムをインストールまたはアップグレードすると、bootadm コマンドによって自動的に menu.lst ファイルが更新されて、そのリリースでサポートされているメニューエントリが反映されます。新しくインストールした OS は、このファイルに登録され、システムのリブート時に GRUB メニューのブートエントリとして表示されます。Oracle Solaris 以外のオペレーティングシステムをインストールしたときは、あとでそのメニューエントリを menu.lst ファイルに手動で追加する必要があります。
次の例は、menu.lst ファイルの内容に基づいた、一般的な GRUB メインメニューを示しています。 GRUB メインメニューは、使用可能なすべてのブートエントリ、およびフェイルセーフアーカイブで構成されます。
GNU GRUB version 0.95 (631K lower / 2095488K upper memory) +-------------------------------------------------------------------------+ | Solaris 10.1 ... X86 | | Solaris failsafe | | | +-------------------------------------------------------------------------+ |
デフォルトで登録されている OS ブートでは、設定可能なタイムアウトを利用できます。ブート対象となるデフォルトの OS ブートエントリは、default コマンドによって設定可能です。インストールソフトウェアでは通常、有効なブートエントリのいずれかがブートするようにこのコマンドを設定します。Oracle Solaris OS の別のインスタンスをブートするか (適切な場合)、別の OS をブートするには、矢印キーを使用して別のブートエントリを強調表示します。次に、Enter キーを押してそのエントリをブートします。default コマンドが設定されていない場合は、GRUB メニューの最初のブートエントリがブートされます。
システムのブートに使用されるのは、アクティブな menu.lst ファイルだけです。システムのブート時に表示される GRUB メニューを変更するには、アクティブな GRUB menu.lst ファイルを編集します。それ以外の menu.lst ファイルに変更を加えても、システムのブート時に表示されるメニューに影響はありません。アクティブな menu.lst ファイルの場所を調べるには、bootadm コマンドの list-menu サブコマンドを使用します。bootadm コマンドの使用法の詳細は、「bootadm コマンドを使用してブートアーカイブを管理する」を参照してください。
Solaris OS のそれぞれの GRUB 実装での menu.lst ファイルの詳細は、「x86: サポートされる GRUB のバージョン」を参照してください。
次のいずれかの理由により、menu.lst ファイルの変更が必要になる場合があります。
新しい OS エントリを追加するため
GRUB コンソールのリダイレクション情報を追加するため
システムのブートにはアクティブな GRUB menu.lst ファイルしか使用できないため、必ず適切なファイルを編集するようにしてください。それ以外の GRUB menu.lst ファイルに変更を加えても、システムのブート時に表示されるメニューに影響はありません。
アクティブな menu.lst ファイルの場所は、稼働するシステムに UFS ルートと ZFS ルートのどちらが含まれるかで異なります。
UFS ルートの場合、アクティブな menu.lst ファイルは /boot/grub/menu.lst です。
ZFS ルートの場合、アクティブな menu.lst ファイルは /pool-name/boot/grub/menu.lst です。
アクティブな GRUB menu.lst ファイルの場所を調べるには、bootadm コマンドで list-menu サブコマンドを指定します。
# bootadm list-menu |
bootadm コマンドの詳細は、bootadm(1M) のマニュアルページを参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
アクティブな menu.lst ファイルに新しい OS エントリを追加するには、テキストエディタを使ってファイルを変更します。
menu.lst ファイル内のコメントを読めば、新しい OS エントリを追加するのに必要な情報が得られます。
次の例は、ZFS ブート対応のリリースが稼働するシステムの menu.lst ファイルを示しています。menu.lst ファイルに含まれるブートエントリは、実行している Oracle Solaris リリースに応じて異なります。
#---------- ADDED BY BOOTADM - DO NOT EDIT ---------- title Solaris Solaris 10 s10x_nbu6wos_nightly X86 kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive #---------------------END BOOTADM-------------------- |
menu.lst ファイルの元の内容を直接編集しないでください。 このファイルの OS エントリに変更を加えるには、ファイルを手動で編集して既存の内容を複製します。次に、複製した内容に変更を加えます。
また、手動でこのファイルに新しいエントリを追加するときは、「Added by bootadm」などの保護コメントを決して含めないでください。これらのコメントは、システムで予約されています。保護コメントを含めないことで、これらのエントリはソフトウェアアップグレード中にそのまま維持されます。
デフォルトのエントリ以外に、エントリを新しく追加した場合は、同等の変更をすべて手動で行なってください。
[-B *] フラグと [*] フラグが元の menu.lst ファイルに存在する場合は、これらのフラグを保持する必要があります。また、failsafe エントリには常に -s フラグが付いているはずです。
必要な情報を追加したあとで、ファイルを保存します。
ファイルに加えた変更は、次にシステムをリブートしたときに有効になります。
Linux が稼働しているマシンに Oracle Solaris をインストールすると、システムのリブート時に Linux のエントリは GRUB メニュー内に保持されません。システムをインストールまたはアップグレードする前に、Linux 情報が含まれている menu.lst ファイルのコピーを保存します。インストールが完了したら、Solaris パーティションに新しく作成された menu.lst ファイルに Linux 情報を追加します。
menu.lst ファイルに加えた変更は、Oracle Solaris OS と直接の関係がありません。このため、eeprom コマンドを使用して変更を行うことはできません。ファイルを直接編集する必要があります。ソフトウェアのアップグレード処理では、menu.lst ファイルに加えた変更内容がすべて保持されます。
GRUB では、Linux と Oracle Solaris の両方をブートできます。ただし、Linux GRUB では Oracle Solaris をブートできません。
必ず次のいずれかの条件が満たされていることを確認してください。
fdisk パーティションがアクティブになっていて、そこに GRUB がインストールされていること。また、menu.lst ファイルがアクティブな GRUB メニューであること
Oracle Solaris GRUB がマスターブートレコード (MBR) にインストールされ、fdisk パーティションにある menu.lst を参照すること
各 Oracle Solaris リリースに関連する GRUB menu.lst の詳細は、「x86: サポートされる GRUB のバージョン」を参照してください。
次の例は、Oracle Solaris ZFS ブートローダーを備えたシステムで menu.lst ファイルがどのように表示されるかを示しています。デフォルトでは、このシステムは ZFS ルートファイルシステムからブートします。このファイルの内容は、インストールの種類によって異なります。
新規インストールまたは標準アップグレードの場合:
title Solaris 10 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 |
Oracle Solaris Live Upgrade
title be1 findroot (BE_be1,0,a) bootfs rpool/ROOT/szboot_0508 kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title be1 failsafe findroot (BE_be1,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttyb module /boot/x86.miniroot-sa |
次の例は、UFS ルートファイルシステムがインストールされているシステムで menu.lst ファイルがどのように表示されるかを示しています。デフォルトでは、このシステムは UFS ルートファイルシステムからブートします。
新規インストールまたは標準アップグレードの場合:
title Solaris 10 s10x_nbu6wos_nightly X86 findroot (rootfs0,0,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title Solaris failsafe findroot (rootfs0,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttyb module /boot/x86.miniroot-safe |
Oracle Solaris Live Upgrade:
title be1 findroot (BE_be1,0,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title be1 failsafe findroot (BE_be1,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttyb module /boot/x86.miniroot-safe |
ZFS ルートを含むシステムでは、アクティブな menu.lst ファイルは通常 /pool-name/boot/grub/menu.lst にあります。
UFS ルートを含むシステムでは、アクティブな menu.lst ファイルは通常 /boot/grub/menu.lst にあります。
アクティブな GRUB メニューを検出するには、bootadm コマンドで list-menu サブコマンドを指定します。
# bootadm list-menu |
このコマンドを使用すると、アクティブな menu.lst ファイルの内容も表示できます。
# bootadm list-menu The location for the active GRUB menu is: /pool-name/boot/grub/menu.lst default 0 timeout 10 0 be1 1 be1 failsafe 2 be3 3 be3 failsafe 4 be2 5 be2 failsafe |
bootadm コマンドの使用法の詳細は、「bootadm コマンドを使用してブートアーカイブを管理する」を参照してください。
Oracle Solaris Live Upgrade など、すべてのインストール方法では、ブート対象の x86 システム上のディスクスライスを指定する際に findroot コマンドを使用するようになりました。 この拡張機能は、UFS ルートだけでなく Oracle Solaris ZFS ルートを含むシステムのブートもサポートします。この情報は、GRUB が使用する menu.lst ファイル内に格納されます。以前は、root コマンド root ( hd0.0.a) を使ってブート対象のディスクスライスを明示的に指定していました。
インストール方法には、Oracle Solaris Live Upgrade、Oracle Solaris JumpStart、インストール GUI プログラムなどがあります。
findroot コマンドのほかに、スライス (mysign, 0, a) 上の署名ファイルも使用されます。この場合の mysign は /boot/grub/bootsign ディレクトリにある署名ファイルの名前です。ZFS ルートからシステムをブートすると、ZFS GRUB プラグインが ZFS ファイルシステムを探して、fdisk パーティション 0 のスライス a にマウントしようとします。
署名ファイルの名前は、使用したインストール方式に応じて異なります。findroot コマンドで使用される命名規則の詳細は、「findroot コマンドで使用される命名規則」を参照してください。
インストールまたはアップグレードが完了したら、findroot コマンドを使用するそのほかのメニューエントリを GRUB メニューに追加できます。方法については、「x86: findroot コマンドを使用する GRUB メニューエントリを追加する方法」を参照してください。
ブートの署名は一意にする必要があります。Oracle Solaris ソフトウェアの複数のインスタンス間で複製される、システム生成の署名またはユーザーの署名を使用したり削除したりしないでください。そのようにすると、正しくない OS インスタンスがブートされたり、システムがブートできなくなる場合があります。
root コマンドは、Windows のブートなどの特定の場合に menu.lst ファイルで引き続き使用できます。ただし、findroot コマンドが優先される場合は、root コマンドは使用しないでください。
次の例は、findroot コマンドを使用する menu.lst ファイルエントリの形式を示しています。
title Solaris 10 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 |
次の例は、Oracle Solaris ZFS ブートローダーをサポートするシステムの menu.lst ファイルを示しています。Oracle Solaris Live Upgrade を実行すると、ZFS ルートファイルシステムからブートするための情報がこのファイルに自動的に追加されます。
title be1 findroot (BE_be1,0,a) kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS module /platform/i86pc/boot_archive title be1 failsafe findroot (BE_be1,0,a) kernel /boot/multiboot kernel/unix -s -B console=ttyb module /boot/x86.miniroot-safe |
この手順は、findroot コマンドを使用するユーザー定義エントリで menu.lst ファイルを手動で更新する方法を示しています。通常、これらのエントリはインストールまたはアップグレード後に追加されます。findroot コマンドを使用するユーザー定義エントリを追加するためのガイドラインについては、「x86: findroot コマンドの実装」を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
ブート対象のルート (/) ファイルシステムまたはルートプールのブート署名ファイルを作成します。
ZFS プール my-pool の場合、ブート署名ファイルを /my-pool/boot/grub/bootsign ディレクトリに作成します。
# touch /my-pool/boot/grub/bootsign/user-sign |
UFS ファイルシステムの場合、ブート署名ファイルをブート対象のルートファイルシステムの /boot/grub/bootsign ディレクトリに作成します。
# touch /boot/grub/bootsign/user-sign |
ブート署名用に選択したファイル名が一意であることを確認してください。Oracle Solaris の複数のインスタンス間で複製されるシステム生成の署名またはユーザーの署名の名前を使用しないでください。そのようにすると、システムがブートできなくなったり、間違った Oracle Solaris インスタンスがブートされたりする場合があります。
findroot コマンドを含むメニューエントリを追加します。
アクティブな menu.lst ファイルを検出します。
# bootadm list-menu |
テキストエディタを使用して、アクティブな menu.lst ファイルを編集し、次のエントリを追加します。
title User Solaris boot entry findroot (user-sign, 3, c) kernel$ /platform/i86pc/multiboot module /platform/i86pc/boot_archive |
前の例で、3 は 4 番目の fdisk パーティション (パーティションは 0 から始まる) を表します。c は Solaris fdisk パーティション内のスライス (スライスは a から始まる) を表します。
システムを再起動します。
新しいエントリが GRUB メニューに表示され、指定の Oracle Solaris OS インスタンスをブートするために選択できます。