Contained WithinFind More DocumentationFeatured Support Resources | Descargar este libro en PDF (3233 KB)
第 11 章 Solaris ブート動作の変更 (手順)この章では、Solaris システムのブート動作の変更方法について説明します。 この章の内容は以下のとおりです。 ブートに関する新機能とブートプロセスの概要については、第 8 章システムのシャットダウンとブートの概要を参照してください。 Solaris システムのブート手順については、第 12 章Solaris システムのブート (手順)を参照してください。 SPARC システムでのブート動作の変更 (作業マップ)
SPARC: ブート PROM の使用ブート PROM はシステムのブートに使用します。必要に応じて、システムのブート方法を変更します。たとえば、システムをマルチユーザーレベルにする前に、どのデバイスからブートするかを設定し直したり、ハードウェア診断プログラムを実行したりする場合です。 システム管理者は、通常 PROM レベルを使ってシステムをブートします。PROM レベルでデフォルトのブートファイルやブートデバイスを変更することもできます。 次のいずれかの作業を行う必要がある場合は、デフォルトのブートデバイスを変更する必要があります。
すべての PROM コマンドについては、monitor(1M) または eeprom(1M) のマニュアルページを参照してください。
|
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 |
次の例は、UltraTM 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: |
スーパーユーザーになるか、同等の役割を引き受けます。
ブートする代替カーネルを指定します。
# 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 に書き込まれます。
スーパーユーザーになるか、同等の役割を引き受けます。
ブートする代替カーネルを指定します。
# eeprom boot-file new boot-file |
次に例を示します。
# eeprom boot-file=kernel.name/sparcv9/unix |
新しいパラメータが設定されていることを確認します。
# eeprom boot-file |
この出力には、指定したパラメータの新しい eeprom 値が表示されるはずです。
|
作業 |
説明 |
参照先 |
|---|---|---|
|
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 コマンドに適切な引数を付けて入力します。
# 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 ルートファイルシステムからのシステムのブートをサポートする 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 ファイルに含まれる情報は、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 構成ファイルに基づいており、カスタマイズできます。Solaris リリースをインストールまたはアップグレードすると、bootadm コマンドによって自動的に menu.lst ファイルが更新されて、その GRUB 実装でサポートされているメニューエントリが反映されます。新しくインストールした OS は、このファイルに登録され、システムのリブート時に GRUB メニューのブートエントリとして表示されます。Solaris OS 以外のオペレーティングシステムをインストールしたときは、あとでそのメニューエントリを 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 コマンドによって設定可能です。Solaris のインストールソフトウェアでは通常、有効な Solaris ブートエントリのいずれかがブートされるようにこのコマンドを設定します。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) のマニュアルページを参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
アクティブな menu.lst ファイルに新しい OS エントリを追加するには、テキストエディタを使ってファイルを変更します。
menu.lst ファイル内のコメントを読めば、新しい OS エントリを追加するのに必要な情報が得られます。
次の例は、ZFS ブート対応の Solaris リリースが稼働するシステムの menu.lst ファイルを示しています。menu.lst ファイルに含まれるブートエントリは、実行している 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」や「Added by Live Upgrade」など、システムで予約されている保護コメントを含めないでください。手動で追加するエントリに保護コメントを含めないことで、これらのエントリはソフトウェアアップグレード中にそのまま維持されます。
デフォルトのエントリ以外に、エントリを新しく追加した場合は、同等の変更を手動で行なってください。
[-B *] フラグと [*] フラグが元の menu.lst ファイルに存在する場合は、これらのフラグを保持する必要があります。また、failsafe エントリには常に -s フラグが付いているはずです。
必要な情報を追加したあとで、ファイルを保存します。
ファイルに加えた変更は、次にシステムをリブートしたときに有効になります。
Linux OS が稼働しているマシンに Solaris OS をインストールすると、システムのリブート時に Linux OS のエントリは GRUB メニューに表示されません。Solaris ソフトウェアをインストールする前に、Linux 情報が含まれている menu.lst ファイルのコピーを保存します。インストールが完了したら、Solaris パーティションに新しく作成された menu.lst ファイルに Linux 情報を戻します。
menu.lst ファイルに加えた変更は、Solaris OS と直接の関係がありません。このため、eeprom コマンドを使用して変更を行うことはできません。ファイルを直接編集する必要があります。Solaris ソフトウェアのアップグレード処理では、menu.lst ファイルに加えた変更内容がすべて保持されます。
Solaris GRUB では、Linux OS と Solaris OS の両方の OS をブートできますが、Linux GRUB では Solaris OS をブートできません。
必ず次のいずれかの条件が満たされていることを確認してください。
Solaris fdisk パーティションがアクティブになっていて、そこに GRUB がインストールされていること。また、menu.lst ファイルがアクティブな GRUB メニューであること
Solaris GRUB がマスターブートレコード (MBR) にインストールされ、Solaris fdisk パーティションにある menu.lst を参照すること
各 Solaris リリースに関連する GRUB menu.lst の詳細は、「x86: サポートされている GRUB 実装」を参照してください。
次の例は、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 |
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 |
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 コマンドを使用してブートアーカイブを管理する」を参照してください。
Solaris Live Upgrade など、すべての Solaris インストール方法では、ブート対象の x86 システム上のディスクスライスを指定する際に findroot コマンドを使用するようになりました。 この実装は、UFS ルートだけでなく ZFS ルートを含むシステムのブートにも適用されます。この情報は、GRUB が使用する menu.lst ファイル内に格納されます。以前は、root コマンド root (hd0.0.a) を使ってブート対象のディスクスライスを明示的に指定していました。
インストール方法には、Solaris Live Upgrade、JumpStart、インストール GUI プログラムなどがあります。
findroot コマンドのほかに、スライス (mysign, 0, a) 上の署名ファイルも追加されます。この場合の mysign は /boot/grub/bootsign ディレクトリにある署名ファイルの名前です。ZFS ルートからシステムをブートすると、ZFS GRUB プラグインが ZFS ファイルシステムを探して、fdisk パーティション 0 のスライス a にマウントしようとします。
署名ファイルの名前は、使用したインストールの種類によって異なります。findroot コマンドで使用される命名規則についての詳細は、「findroot コマンドで使用される命名規則」を参照してください。
インストールまたはアップグレードが完了したら、findroot コマンドを使用するそのほかのメニューエントリを GRUB メニューに追加できます。方法については、「x86: findroot コマンドを使用する GRUB メニューエントリを追加する方法」を参照してください。
ブートの署名は一意にする必要があります。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 |
次の例は、ZFS ブートローダーをサポートするシステムの menu.lst ファイルを示しています。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 コマンドの実装」を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
ブート対象のルート (/) ファイルシステムまたはルートプールのブート署名ファイルを作成します。
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 |
ブート署名用に選択したファイル名が一意であることを確認してください。Solaris ソフトウェアの複数のインスタンス間で複製されるシステム生成の署名またはユーザーの署名の名前を使用しないでください。そのようにすると、システムがブートできなくなったり、間違った 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 メニューに表示され、指定の Solaris OS インスタンスをブートするために選択できます。