ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 システムのブートおよびシャットダウン Oracle Solaris 11.1 Information Library (日本語) |
2. x86: GRand Unified Bootloader の管理 (タスク)
x86: GRUB 2 パーティションおよびデバイス命名スキーム
x86: GRUB 2 と GRUB Legacy のタスクの比較
x86: GRUB Legacy システムを GRUB 2 をサポートするリリースにアップグレードする
x86: GRUB Legacy システムを GRUB 2 をサポートするリリースにアップグレードする方法
x86: GRUB Legacy メニューエントリが GRUB 2 に移行される方法
x86: GRUB 2 と GRUB Legacy のブート環境を同じシステムで保守する
x86: ブート時に GRUB メニューを編集してカーネル引数を追加する
x86: GRUB メニューを編集して、ブート時に -B prop=val カーネル引数を追加する
ブート時に Oracle Solaris コンソールをリダイレクトする
x86: bootadm install-bootloader コマンドを使用して GRUB 2 をインストールする
x86: ルートプールの復元後にブートローダーをインストールする方法
x86: デフォルトではない場所に GRUB をインストールする方法
x86: GRUB 2 がインストールされているシステムに GRUB Legacy をインストールする
このセクションでは次の手順について説明します。
GRUB Legacy をサポートするシステムでは、menu.lst ファイルを編集して、GRUB 構成と GRUB メニューを主に管理します。GRUB 2 をサポートするシステムでは、grub.cfg ファイルを使用します。ただし、このファイルは手動で編集しません。代わりに、このファイルは、ブート管理インタフェース bootadm を使用して管理します。bootadm コマンドを使用して、以前に menu.lst ファイルを編集して実行されていたほとんどのタスクを管理できます。これらのタスクには、ブートローダー設定、GRUB メニュー、および特定のブートエントリの個々の属性の管理が含まれます。
注 - grub.cfg ファイルは、bootadm コマンドまたは beam コマンドを使用して、ブートローダーが変更されるたびに、通知なく上書きされることがあるため、このファイルを直接編集しないでください。
GRUB 2 構成の管理をサポートするために、次の bootadm サブコマンドが変更されました。
GRUB メニューの現在のブートエントリを表示します。
新しい -P オプションは、指定したルートプールのブートエントリの表示をサポートしています。
次のように、タイトルまたはエントリ番号ごとに個々のメニューエントリを表示します。
# bootadm list-menu -i 0 the location of the boot loader configuration files is: /rpool/boot/grub title: Oracle Solaris 11 FCS kernel: /platform/i86pc/kernel/$ISADIR/unix kernel arguments: -B $ZFS-BOOTFS -v boot archive: /platform/i86pc/$ISADIR/boot_archive ZFS root pool: rpool
GRUB メニューを保守します。このサブコマンドは、デフォルトとして特定の GRUB メニューを設定し、他のメニューオプションとブートローダーオプションを設定するために使用します。
次の bootadm サブコマンドは新しいコマンドです。
システムブートローダーをインストールします。このサブコマンドは x86 プラットフォームと SPARC プラットフォームの両方に適用されます。
注 - SPARC プラットフォームでは、GRUB を使用しないため、bootadm コマンドを使用して、管理を必要とするブートメニューはありません。ただし、SPARC ベースのシステムで bootadm コマンドを使用して、ブートアーカイブの内容を一覧表示し、ブートアーカイブを手動で更新し、ブートローダーをインストールすることができます。「Oracle Solaris ブートアーカイブの管理」を参照してください。
次の手順では、bootadm コマンドを使用して、GRUB 構成と GRUB メニューを管理する方法について説明します。詳細については、bootadm(1M) のマニュアルページを参照してください。
現在システム上にある GRUB メニューエントリを一覧表示するには、bootadm コマンドの list-menu サブコマンドを使用します。この情報は grub.cfg ファイルによって提供されます。コマンドの出力には、ブートローダー構成ファイルの場所、デフォルトのブートエントリ番号、autoboot-timeout 値、各ブートエントリのタイトルも含まれます。
$ bootadm list-menu
例:
$ bootadm list-menu the location of the boot loader configuration files is: /rpool/boot/grub default 0 console graphics timeout 30 0 Oracle Solaris 11 FCS 1 Oracle Solaris backup-1 2 Oracle Solaris 11 11.1
コマンドの実行時に、エントリのタイトルやエントリ番号を指定すると、その情報も表示されます。
$ bootadm list-menu -i entry-number
例:
$ bootadm list-menu -i 0 the location of the boot loader configuration files is: /rpool/boot/grub title: Oracle Solaris 11 FCS kernel: /platform/i86pc/kernel/$ISADIR/unix kernel arguments: -B $ZFS-BOOTFS -v boot archive: /platform/i86pc/$ISADIR/boot_archive ZFS root pool: rpool
現在システムにインストールされている OS インスタンスを格納する grub.cfg ファイルを手動で再生成するには、bootadm generate-menu コマンドを使用します。
/usr/lib/grub2/bios/etc/default/grub または /usr/lib/grub2/uefi64/etc/default/grub ファイルからの情報と GRUB メタ構成ファイル rpool/boot/grub/menu.conf からの情報を組み合わせて使用して、最終的な grub.cfg ファイルが生成されます。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# bootadm generate-menu
# bootadm generate-menu -f
# bootadm generate-menu -P pool-name
# bootadm list-menu
注 - 変更が表示されない場合は、grub.cfg ファイルを調べて、変更が実行されているか確認します。
GRUB メニューを保守するには、bootadm コマンドの set-menu サブコマンドを使用します。たとえば、このコマンドを使用して、メニューのタイムアウトや GRUB メニューのデフォルトのブートエントリを変更できます。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# bootadm list-menu
# bootadm set-menu [-P pool] [-R altroot [-p platform]] key=value
set-menu サブコマンドを使用して指定可能な各値の詳細については、bootadm(1M) のマニュアルページを参照してください。set-menu サブコマンドを使用できる一般的な方法の例では、この手順に従います。
# bootadm list-menu
注 - 変更が表示されない場合は、grub.cfg ファイルを調べて、変更が実行されているか確認します。
例 2-1 GRUB メニューのデフォルトのブートエントリを変更する
GRUB メニューでデフォルトのエントリ番号 (0、1、2 など) を設定するには、適切な key=value オプションを付けて bootadm set-menu コマンドを使用します。この番号は、タイマーの期限が切れたときにブートされるオペレーティングシステムを指定します。
たとえば、次の bootadm list-menu コマンドの出力では、デフォルトのブートエントリが 2 (Oracle Solaris 11_test) として示されています。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test
この例では、コンソールは graphics モードに設定されます。コンソールに設定できるその他のモードには、text と serial があります。
次のようにして、デフォルトのブートエントリを 1 に設定できます。
# bootadm set-menu default=1 # bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 1 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 GRUB2
この例では、デフォルトのメニューエントリが現在 1 になっています。システムはリブートすると、デフォルトのタイマーの期限が切れたあとに、新しい Oracle Solaris エントリを自動的にブートします。
change-entry サブコマンドを使用して、GRUB メニューにデフォルトのエントリを設定することもできます。「x86: GRUB メニューの指定したブートエントリの属性を設定する方法」を参照してください。
例 2-2 GRUB メニューのメニュータイムアウト値を変更する
メニュータイムアウト値を設定するには、適切な key=value オプションを付けて bootadm set-menu コマンドを使用します。
次の例では、bootadm list-menu コマンドの出力で、45 秒に変更された 30 秒のデフォルトのタイムアウト値を示しています。変更は、次回にシステムをブートしたときに有効になります。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test # bootadm set-menu timeout=45 # bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 45 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test
例 2-3 GRUB コンソールタイプを設定する
bootadm コマンドの set-menu サブコマンドを使用して設定できる 1 つの値は、コンソールタイプです。この方法でのコンソールタイプの変更は、システムのリブートをまたがって維持されます。
たとえば、次のように、grub.cfg ファイルで、コンソールタイプを serial に設定します。
# bootadm set-menu console=serial
標準テキストコンソールの場合、コンソールタイプを text に設定することもできます。BIOS シリアルリダイレクトを使用している場合、このオプションを選択します。またはコンソールタイプを graphics に設定できます。このオプションは追加のグラフィカルメニューを提供し、背景画像が使われます。
コンソールタイプを serial に設定すると、ブート時のシリアルポートの初期化時に GRUB 2 が使用するシリアルパラメータを構成できます。serial_params 値を指定しないと、デフォルトは、シリアルポート 0 (COM1/ttya) を使用し、速度を指定しません。速度を指定しないで、ポートのみを指定した場合 (serial_params=0 など)、使われる速度は不定で、GRUB が実行する前にシリアルポートが初期化された速度になります。特定の速度が使われるようにする場合は、serial_params で明示的に設定する必要があります。
次のように、serial_params キー値を bootadm コマンド行に追加します。
# bootadm set-menu console=serial serial_params=port[,speed[,data bits[,parity[,stop bits]]]]
ポート番号です。ポート ttya から ttyd または COM1 から COM4 をそれぞれ指定するには、0 から 3 の任意の数を使用できます (通常、ttya または COM1 には 0 が使われます)。
シリアルポートで使用する速度です。この値を省略した場合、GRUB 2 はシリアルポートで使用するように初期化された速度を使用します。シリアルポートが初期化されていない場合は、速度を指定しないと、予測できない出力になることがあります。シリアルポートが初期化されているかどうかわからない場合、また BIOS コンソールリダイレクトを使用しない場合は、速度値を指定することをお勧めします。
7 または 8 の値で指定します。
e、o、 n (even、odd、none) としてそれぞれ指定します。
0 または 1 の値で指定します。
port パラメータを除くすべてのシリアルパラメータはオプションです。
bootadm コマンドの change-entry サブコマンドを使用して、GRUB メニューの指定したブートエントリ、またはエントリのカンマ区切りのリストの特定のブート属性を設定します。エントリは、エントリタイトルまたはエントリ番号で指定します。複数のエントリが同じタイトルの場合、すべてのエントリが影響を受けます。
注 - 特殊なプロパティー set-default は、タイマーの期限が切れたときに、ブートするデフォルトのエントリを設定します。このサブコマンドは、set-menu default=value サブコマンドと同じように機能します。例 2-1 を参照してください。
ブート時に、GRUB メニューを編集して、特定のブートエントリの属性を設定する方法については、「x86: ブート時に GRUB メニューを編集してカーネル引数を追加する」を参照してください。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# bootadm list-menu
# bootadm change-entry [-P pool] {[entry-title[,entry-title...]}] | -i entry-number[,entry-number]...]} { key=value [ key=value ...] | set-default }
空白を含む値を指定する場合は、値を引用符または二重引用符で囲む必要があります。
change-entry サブコマンドを使用して指定可能な各値の詳細については、bootadm(1M) のマニュアルページを参照してください。change-entry サブコマンドを使用する一般的な方法の例については、次の手順に従います。
# bootadm list-menu
注 - 変更が表示されない場合は、grub.cfg ファイルを調べて、変更が実行されているか確認します。
例 2-4 GRUB メニューの指定したブートエントリのタイトルを設定する
bootadm コマンドの change-entry サブコマンドを使用して、指定したブートエントリのタイトルを設定できます。タイトルを設定する場合、エントリ番号またはエントリタイトルのいずれかを指定できます。次の例に、指定したブートエントリに両方の方法でタイトルを設定する方法を示します。複数のエントリが同じタイトルの場合、すべてのエントリが影響を受けます。
次のように、エントリ番号を指定してブートエントリのタイトルを設定します。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 1 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test # bootadm change-entry -i 2 title="Oracle Solaris 11-backup1" # bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 45 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11-backup1
次のように、タイトルを指定してブートエントリのタイトルを設定します。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 1 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test # bootadm change-entry "Oracle Solaris 11_test" title="Oracle Solaris 11-backup1" # bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 45 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11-backup1
例 2-5 カーネル引数を指定してブートエントリを変更する
次の例に、bootadm コマンドの change-entry サブコマンドを使用して、指定したブートエントリのカーネルブート引数を設定する方法を示します。
この例では、シングルユーザーモードでのブートにエントリ番号 1 が設定されています。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 1 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test # bootadm change-entry -i 1 kargs=-s # bootadm list-menu -i 1 The location of the boot loader configuration files is: /rpool/boot/grub title: Oracle Solaris 11.1 kernel: /platform/i86pc/kernel/$ISADIR/unix kernel arguments: -s boot archive: /platform/i86pc/$ISADIR/boot_archive ZFS root pool: rpool
この例では、複数のカーネル引数がブートエントリ番号 2 に指定されています。
# bootadm change-entry -i 2 kargs="-v -s" # bootadm list-menu -i 2 The location of the boot loader configuration files is: /rpool/boot/grub title: Oracle Solaris 11_test kernel: /platform/i86pc/kernel/$ISADIR/unix kernel arguments: -v -s boot archive: /platform/i86pc/$ISADIR/boot_archive bootfs: rpool/ROOT/snv_160-nightly-1
この例では、-v オプションと -s オプションが指定されており、システムを冗長モードのシングルユーザー状態にブートします。
空白を含む属性 (または複数の属性) を設定する場合は常に、値を引用符または二重引用符で囲む必要があります。
例 2-6 -B オプションを使用してカーネル引数を指定してブートエントリを変更する
次の例に、-B オプションを使用して、特定のブートエントリのカーネル引数を設定する方法をいくつか示します。
次のように、ブート時に e1000g ネットワークドライバを無効にし、カーネルデバッガをロードします。
# bootadm change-entry -i 0 kargs="-B disable-e1000g=true -k"
bootadm change-entry コマンドを使用して、複数の -B オプションを指定できます。たとえば、次のいずれかのコマンドを使用して、e1000g ドライバおよび ACPI を同時に無効にします。
# bootadm change-entry -i 0 kargs="-B disable-e1000g=true -B acpi-user-options=2"
# bootadm change-entry -i 0 kargs="-B disable-e1000g=true,acpi-user-options=2"
-B オプションを使用して、指定したブートエントリを編集して、ブート時に特定のブート属性を設定することもできます。手順については、「x86: ブート時に GRUB メニューを編集してカーネル引数を追加する」を参照してください。
例 2-7 以前に追加されたカーネル引数をブートエントリから削除する
次の例では、特定のブートエントリからカーネル引数 (-s) を削除します。
# bootadm list-menu -i 1 the location of the boot loader configuration files is: /rpool/boot/grub title: s11.1.backup kernel: /platform/i86pc/kernel/amd64/unix kernel arguments: -s boot archive: /platform/i86pc/amd64/boot_archive bootfs: rpool/ROOT/s11.1.backup # bootadm change-entry -i 1 kargs= # bootadm list-menu -i 1 the location of the boot loader configuration files is: /rpool/boot/grub title: s11.1.backup kernel: /platform/i86pc/kernel/amd64/unix kernel arguments: boot archive: /platform/i86pc/amd64/boot_archive bootfs: rpool/ROOT/s11.1.backup
指定したエントリタイトルで、新しいエントリを GRUB メニューに追加するには、bootadm コマンドの add-entry サブコマンドを使用します。エントリ番号を指定すると、新しいエントリが GRUB メニューの特定の位置に挿入されます。または、エントリ番号がメニュー内の現在のエントリ数よりも大きい場合、エントリはメニューの最後のエントリとして追加されます。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# bootadm list-menu
# bootadm add-entry -P pool -i [entry-number] entry-title
# bootadm change-entry -i new-entry-number bootfs='pool-name/ROOT/be-name'
この手順により、新しく追加されたブートエントリが、bootfs pool-level プロパティーに指定され、ルートプールに設定されているデフォルトの bootfs 値を使用しません。
# bootadm list-menu
注 - 変更が表示されない場合は、grub.cfg ファイルを調べて、変更が実行されているか確認します。
例 2-8 x86: GRUB メニューにブートエントリを追加する
次の例に、bootadm add-entry コマンドを使用して、GRUB メニューにメニューエントリを追加する方法を示します。この例では、エントリ番号 2 が追加されます。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 # bootadm add-entry -i 2 Oracle Solaris 11_test # bootadm change-entry -i 2 bootfs='rpool/ROOT/test' # bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test
次のように、エントリ番号を指定して、新しいメニューエントリの内容を表示します。
# bootadm list-menu -i 2 the location of the boot loader configuration files is: /rpool/boot/grub title: Oracle Solaris 11_test kernel: /platform/i86pc/kernel/amd64/unix kernel arguments: -B $ZFS-BOOTFS boot archive: /platform/i86pc/amd64/boot_archive ZFS root pool: rpool
GRUB メニューから、指定したエントリ、またはエントリのカンマ区切りのリストを削除するには、bootadm コマンドの remove-entry サブコマンドを使用します。同じタイトルの複数のエントリを指定すると、そのタイトルのすべてのエントリが削除されます。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# bootadm list-menu
# bootadm remove-entry [-P pool] [{entry-title [,entry-title...] | -i entry-number[,entry-number...]}
# bootadm list-menu
注 - 変更が表示されない場合は、grub.cfg ファイルを調べて、変更が実行されているか確認します。
例 2-9 x86: GRUB メニューからブートエントリを削除する
次の例では、GRUB メニューからのエントリ番号 2 の削除を示しています。
# bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1 2 Oracle Solaris 11_test bootadm remove-entry -i 2 1 entry removed # bootadm list-menu The location of the boot loader configuration file is /rpool/boot/grub default 2 console graphics timeout 30 0 Oracle Solaris 11/11 1 Oracle Solaris 11.1