ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 システムのブートおよびシャットダウン Oracle Solaris 11.1 Information Library (日本語) |
2. x86: GRand Unified Bootloader の管理 (タスク)
SPARC: OpenBoot PROM を使用したブート属性の表示と設定
SPARC: システムの PROM リビジョン番号を確認する方法
SPARC: ブート PROM を使用してデフォルトのブートデバイスを変更する方法
SPARC: eeprom ユーティリティーを使用してデフォルトのブートデバイスを設定する方法
システムがマルチユーザー状態 (実行レベル 3) にブートされたときの処理
システムをマルチユーザー状態 (実行レベル 3) にブートする方法
システムをシングルユーザー状態 (実行レベル S) にブートする方法
SPARC: 代替のオペレーティングシステムまたはブート環境からブートする方法
このセクションでは次の手順について説明します。
通常、システムは電源投入時またはシステムクラッシュのあとにリブートします。システムをリブートするには、init コマンドまたは reboot コマンドを使用できます。init 6 コマンドは停止方法 (SMF または rc.d) を必要とします。一方、reboot コマンドでは必要としないため、reboot コマンドはシステムをリブートするためのより信頼できる方法になります。詳細は、init(1M) および reboot(1M) を参照してください。
reboot は次の操作を実行します。
カーネルを再起動する
ディスクで sync 操作を実行する
マルチユーザーブートを開始する
root ユーザーはいつでも reboot コマンドを使用できますが、サーバーのリブートなどの特定の状況では、システムにログインしているすべてのユーザーにすぐにサービスが失われることを警告するために、最初に shutdown コマンドを使用します。詳細は、第 3 章システムのシャットダウン (タスク)を参照してください。
システムは常に定義済み実行レベルの 1 つで動作します。実行レベルは init プロセスによって維持されるため、実行レベルは「init 状態」と呼ばれることもあります。init コマンドを使用すると、実行レベルの移行を開始できます。init コマンドを使用してシステムをリブートする場合は、マルチユーザーのシステム状態として実行レベル 2、3、および 4 を使用できます。「実行レベルの動作」を参照してください。
init コマンドは、システム上のすべてのアクティブなプロセスを終了し、ディスクを同期させてから実行レベルを変更する実行可能シェルスクリプトです。init 6 コマンドは、オペレーティングシステムを停止し、/etc/inittab ファイルの initdefault エントリに定義されている状態にリブートします。
注 - Oracle Solaris 11 リリースから、SMF サービス svc:/system/boot-config:default はデフォルトで有効になっています。 config/fastreboot_default プロパティーが true に設定されている場合 (すべての x86 ベースのシステムの場合) に init 6 コマンドは、システムの特定の機能に応じて、特定のファームウェア初期化手順およびテスト手順を省略します。SPARC ベースのシステムでは、このプロパティーはデフォルトで false に設定されますが、プロパティーを手動で有効にできます。「リブートプロセスの高速化」を参照してください。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# init 6
# init 2
例 4-12 init コマンドを使用してシステムをシングルユーザー状態 (実行レベル S) にリブートする
この例では、init コマンドを使用して、システムをシングルユーザー状態 (実行レベル S) にリブートします。
~# init s ~# svc.startd: The system is coming down for administration. Please wait. Jul 20 16:59:37 system-04 syslogd: going down on signal 15 svc.startd: Killing user processes. Requesting System Maintenance Mode (See /lib/svc/share/README for more information.) SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): xxxxxx single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Jul 20 17:11:24 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.1 June 2012 You have new mail. ~# who -r . run-level S Jul 20 17:11 S 1 3
この手順を使用して、実行中のシステムをマルチユーザー状態 (実行レベル 3) にリブートします。
注 - x86 プラットフォームで、reboot コマンドを使用して、システムの高速リブートを開始し、BIOS または UEFI ファームウェアと特定のブートプロセスをバイパスします。高速リブート機能が有効になっている x86 ベースシステムの標準リブートを実行するには、reboot コマンドで -p オプションを使用します。「高速リブートが有効化済みのシステムの標準リブートの開始」を参照してください。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# reboot
Oracle Solaris の高速リブート機能は、SPARC プラットフォームと x86 プラットフォームの両方でサポートされています。高速リブート機能では、カーネルをメモリーにロードしてからそのカーネルに切り替えるインカーネルブートローダーを実装することにより、リブート処理を数秒で実行できます。
高速リブート機能のサポートは、新しい boot-config サービス svc:/system/boot-config:default によって強化されています。このサービスによって、システムのデフォルトのブート構成プロパティーを必要に応じて設定または変更するための手段が提供されます。config/fastreboot_default プロパティーが true に設定されている場合は、システムが自動的に高速リブートを実行します。デフォルトでこのプロパティーは、x86 ベースのシステムでは true に設定され、SPARC ベースのシステムでは false に設定されています。
x86 ベースのシステムで、システムの高速リブートは、システムファームウェア (BIOS または UEFI) とブートローダープロセスをバイパスします。高速リブートとパニック高速リブート (システムパニックのあとのシステムの高速リブート) が x86 プラットフォームではデフォルトで有効になっているため、x86 ベースシステムの高速リブートを開始するために reboot コマンドで -f オプションを使用する必要はありません。
SPARC ベースシステムの高速リブート機能は、x86 ベースシステムとは異なる方法で動作します。SPARC プラットフォームでの高速リブートのサポートに関する次の追加情報に注目してください。
高速リブートは sun4u システムではサポートされていません。
高速リブートは sun4v システムでサポートされています。ただし、SPARC ベースのシステムの高速リブートは、x86 ベースのシステムの高速リブートとは異なります。SPARC sun4v システムでは、高速リブートは、最小限のハイパーバイザによって開始される再起動で、x86 ベースのシステムの高速リブートと同じ基本パフォーマンスを発揮します。
SPARC ベースのシステムの高速リブートの動作はデフォルトでは無効にされています。SPARC ベースのシステムの高速リブートを開始するには、reboot コマンドで -f オプションを使用する必要があります。または、高速リブートをデフォルトの動作にするには、config/fastreboot_default プロパティーを true に設定します。手順については、「デフォルトの高速リブートの動作を変更する」を参照してください。
SPARC ベースシステムでは、boot-config サービスに、action_authorization および value_authorization として solaris.system.shutdown 権限も必要です。
新しい OS イメージのブート時にファームウェアをバイパスするシステムの機能は、デバイス動作の新しいエントリポイントである quiesce のデバイスドライバの実装に依存しています。サポートされているドライバでは、この実装によってデバイスが休止されるため、関数の完了時にそのドライバによって割り込みが生成されなくなります。この実装ではまた、デバイスがハードウェア状態にリセットされます。この状態からは、システムの電源を切ってすぐに入れ直したり、ファームウェアで構成したりしなくても、ドライバの attach ルーチンによってそのデバイスを正しく構成できます。この機能についての詳細は、quiesce(9E) および dev_ops(9S) のマニュアルページを参照してください。
注 - すべてのデバイスドライバで quiesce 関数が実装されているわけではありません。トラブルシューティング手順については、「x86: 高速リブートが機能しない可能性のある状況」および「x86: 高速リブートをサポートしないシステムのブートアーカイブの自動更新障害を解決する方法」を参照してください。
『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# reboot -f
# reboot
# init 6
これらのいずれかのコマンドを実行すると、システムが grub.cfg ファイルのデフォルトのエントリにリブートします。
代替ブート環境への x86 ベースシステムの高速リブートを実行するには、複数の方法を使用できます。次の例は、これらの方法のいくつかを示しています。
例 4-13 x86: 新しくアクティブにしたブート環境へのシステムの高速リブートを開始する
次の例は、新しくアクティブになったブート環境 2012-06-10-be にシステムの高速リブートを開始する方法を示しています。
# beadm activate 2012-06-10-be # reboot
例 4-14 x86: 代替ブート環境の指定によるシステムの高速リブートの開始
代替ブート環境 (たとえば、zfsbe2) にシステムを高速リブートするには、次のコマンドを入力します。
# reboot -- 'rpool/zfsbe2'
rpool/zfsbe1 という名前のデータセットへのシステムの高速リブートを開始するには、次のコマンドを入力します。
# reboot -- 'rpool/zfsbe1'
たとえば、次のように、代替 ZFS ルートデータセットへのシステムの高速リブートを開始します。
# reboot -- 'rpool/ROOT/zfsroot2'
例 4-15 x86: カーネルデバッガを有効にした状態での代替ブート環境へのシステムの高速リブートの開始
次のように、zfsbe3 ブート環境へのシステムの高速リブートを開始します。
# reboot -- 'rpool/zfsbe3 /platform/i86pc/kernel/amd64/unix -k'
例 4-16 x86: 新しいカーネルへのシステムの高速リブートの開始
次のように、my-kernel という名前の新しいカーネルへのシステムの高速リブートを開始します。
# reboot -- '/platform/i86pc/my-kernel/amd64/unix -k'
例 4-17 x86: マウントされたディスクまたはマウントされたデータセットの高速リブートの開始
次のように、マウントされたディスクまたはマウントされたデータセットの高速リブートを開始します。
# reboot -- '/mnt/platform/i86pc/my-kernel/amd64/unix -k'
例 4-18 x86: カーネルデバッガを有効にした状態での、シングルユーザー状態へのシステムの高速リブートの開始
次のように、カーネルデバッガを有効にした状態での、シングルユーザー状態へのシステムの高速リブートを開始します。
# reboot -- '-ks'
高速リブート機能は SMF によって制御され、ブート構成サービス svc:/system/boot-config を通して実装されます。boot-config サービスは、デフォルトのブートパラメータを設定または変更するための手段を提供します。
boot-config サービスの fastreboot_default プロパティーを使用すると、reboot コマンドまたは init 6 コマンドのいずれかが使用されている場合のシステムの自動高速リブートが有効になります。config/fastreboot_default プロパティーを true に設定すると、システムは高速リブートを自動的に実行するため、reboot -f コマンドを使用する必要はありません。デフォルトでこのプロパティーの値は、x86 ベースのシステムでは true に設定され、SPARC ベースのシステムでは false に設定されています。
例 4-19 x86: boot-config サービスのプロパティーの構成
svc:/system/boot-config:default サービスは、次のプロパティーで構成されています。
config/fastreboot_default
config/fastreboot_onpanic
これらのプロパティーは、svccfg および svcadm コマンドを使用して、構成できます。
たとえば、x86 ベースシステム上の fastreboot_onpanic プロパティーのデフォルト動作を無効にするには、次に示すように、このプロパティーの値を false に設定します。
# svccfg -s "system/boot-config:default" setprop config/fastreboot_onpanic=false # svcadm refresh svc:/system/boot-config:default
あるプロパティーの値を変更しても、ほかのプロパティーのデフォルト動作には影響を与えません。
SMF を介したブート構成サービスの管理については、svcadm(1M) および svccfg(1M) のマニュアルページを参照してください。
例 4-20 SPARC: boot-config サービスのプロパティーの構成
次の例に、boot-config SMF サービスプロパティーを true に設定して、SPARC ベースのシステムで高速リブートをデフォルトの動作にする方法を示します。
# svccfg -s "system/boot-config:default" setprop config/fastreboot_default=true # svcadm refresh svc:/system/boot-config:default
プロパティーの値を true に設定すると、リブートプロセスが高速化するため、高速リブート機能をサポートするシステムで特定の POST テストをバイパスできます。プロパティーが true に設定されている場合、reboot コマンドで -f オプションを使用しなくてもシステムの高速リブートを実行できます。
高速リブート機能が有効になっているシステムをリブートするには、この機能を無効にするように boot-config サービスを再構成するのではなく、次に示すように reboot コマンドで -p オプションを使用します。
# reboot -p