このパートでは、Solaris システムのシャットダウンとブートの手順について説明します。次の章で構成されています。
システムのシャットダウンとブートの概要とガイドラインを示します。 |
|
実行レベルとブートファイルについて説明します。 |
|
システムのシャットダウン手順について説明します。 |
|
SPARC システムのブート手順について説明します。 |
|
x86 システムのブート手順について説明します。 |
|
ブートプロセスの概要を説明します。SPARC システムおよび x86 システムのブートに使用するプラットフォーム固有のハードウェアについても説明します。 |
この章では、システムのシャットダウンとブートについて概要を説明します。Solaris オペレーティングシステムは、電子メールとネットワーク資源をいつでも利用できるように停止することなく動作するように設計されています。しかし、システム構成の変更、定期保守、停電などの理由で、システムをシャットダウンまたはリブートしなければならない場合があります。
この章の内容は次のとおりです。
この節では、Solaris 7 におけるシステムのシャットダウンとブートに関する新機能について説明します。
バグ ID 1154696 は Solaris 7 で修正されました。つまり、shutdown -s または init -s コマンドで、システムを正常にシャットダウンし、レベル S (シングルユーザーモード) に移行できるようになりました。inittab ファイルと、/etc/init.d および /etc/rcn.d ディレクトリ内の rc スクリプトが修正され、システム起動レベルの変更が適切かつ効率的に行われるようになりました。
32 ビットまたは 64 ビットの Solaris 7 オペレーティング環境のシステムをブートする方法については、「64 ビット Solaris ブート時の問題の解決」を参照してください。
システムをシャットダウンおよびブートする手順については次を参照してください。
ここではシャットダウンとブートに関する用語について説明します。
実行レベルと init 状態 - 「実行レベル」とは、システムの状態を表す文字または数字のことで、どのシステムサービスを使用できるのかを示します。システムは常に定義済み実行レベルの 1 つで動作します。実行レベルを変更するために init プロセスが使用されるため、実行レベルは「init 状態」と呼ばれることもあります。システム管理者は init(1M) コマンドを使用して、実行レベルを変更します。
ブートタイプ - 「ブートタイプ」とはシステムのブート方法を指すもので、次のようなブートタイプがあります。
対話式ブート - システムのブート方法に関する情報 (カーネルやデバイスのパス名など) を入力するプロンプトが表示されます。
再構成用ブート - システムが再構成され、新しく追加したハードウェアや新しい擬似デバイスがサポートされます。
回復ブート - システムがハング状態になったとき、無効なエントリがあるためシステムが正常にブートできないとき、またはユーザーがログインできないときに使用します。
システムをシャットダウンするときは次の点に注意してください。
システムのシャットダウンには、init および shutdown コマンドを使用します。これらのコマンドは、すべてのシステムプロセスとサービスを正常に終了させてからシャットダウンします。
サーバーをシャットダウンする場合は、shutdown コマンドを使用します。shutdown コマンドは、シャットダウンを実行する前に、サーバーにログインしているユーザーやサーバー資源をマウントしているシステムにシャットダウンを通知します。システムのシャットダウンについては、ユーザーが予定を立てられるようあらかじめ電子メールで知らせておくようにします。
shutdown または init コマンドを使用してシステムをシャットダウンするには、スーパーユーザー権限が必要です。
どちらのコマンドも実行レベルを引数に指定します。最もよく使用される実行レベルは次の 3 つです。
実行レベル 3 - すべてのシステム資源を使用でき、ユーザーもログインできる状態。デフォルトでは、システムをブートすると実行レベル 3 になります。通常の運用で使用されます。NFS 資源を共有できるマルチユーザーレベルとも呼ばれます。
実行レベル 6 - オペレーティングシステムを停止して、/etc/inittab ファイルの initdefault エントリに定義されている状態でリブートします。
実行レベル 0 - オペレーティングシステムがシャットダウンされ、安全に電源切断できる状態。システムの設置場所を変更したり、ハードウェアを追加または削除する場合は、システムを実行レベル 0 にする必要があります。
実行レベルについての詳細は、第 6 章「実行レベルとブートファイルの手順」を参照してください。
シャットダウン後にシステムをブートするには、SPARC システムの場合は、PROM レベルでboot コマンドを使用します。x86 システムの場合は、一次ブートサブシステムメニューで boot コマンドを使用します。
電源を切断したあと再投入すればシステムをリブートできます。ただし、この方法では、システムサービスやプロセスが突然終了してしまうので、適切なシャットダウンとは言えません。緊急時のリブート以外には使用しないようにします。
SPARC および x86 システムでは、ブート時に使用するハードウェアが異なります。これらのハードウェアの違いについては、第 10 章「ブートプロセスの参照情報」を参照してください。
再構成用ブートは、システムに新しいハードウェアを追加したときや擬似デバイスのサポートを再構成したとき (pty 数の増加など) に行います。表 5-1 は、どの場合にどの再構成手順を使用するかをまとめたものです。
表 5-1 再構成手順
システム再構成の内容 |
参照先 |
---|---|
ディスクの追加 | |
周辺装置の追加 | |
擬似デバイス数の変更 |
『Solaris のシステム管理 (第 2 巻)』の「システム情報の確認と変更」 |
表 5-2 は、システム管理作業とそれに伴って必要となるシャットダウンの種類をまとめたものです。
表 5-2 システムのシャットダウン
管理作業 |
以下の実行レベルに変更 |
参照先 |
---|---|---|
停電のためシステムの電源を切断する。 |
実行レベル 0。安全に電源を切れる状態。 | |
/etc/system ファイル内のカーネルパラメータを変更する。 |
実行レベル 6 (システムのリブート)。 | |
ファイルシステムを保守する (システムデータのバックアップや復元など)。 |
実行レベル S (シングルユーザーモード)。 | |
/etc/system などのシステム構成ファイルを修正する。 |
「システムをブートする場合」を参照。 |
なし |
/etc/system ファイル内の擬似デバイスパラメータを変更する。 |
再構成用ブート。 |
『Solaris のシステム管理 (第 2 巻)』の「カーネルパラメータの調整手順」 |
システムにハードウェアを追加する (または、システムからハードウェアを削除する)。 |
再構成用ブート (ハードウェアを追加または削除したら電源を切断する)。 | |
ブート失敗の原因となっている重要なシステムファイルを修正する。 |
「システムをブートする場合」を参照。 |
なし |
カーネルデバッガ (kadb) をブートして、システムの障害を調査する。 |
実行レベル 0 (可能な場合)。 | |
ハング状態から回復する。または、クラッシュダンプを強制する。 |
「システムをブートする場合」を参照。 |
なし |
サーバーまたはスタンドアロンシステムのシャットダウンの例については、第 7 章「システムのシャットダウンの手順」を参照してください。
表 5-3 は、システム管理作業とそれに伴って必要となるブートの種類をまとめたものです。
表 5-3 システムのブート
リブート前に実行した管理作業 |
使用するブート種類 |
SPARC のブート手順の参照先 |
x86 のブート手順の参照先 |
---|---|---|---|
停電のためシステムの電源を切断した。 |
システムの電源を再投入する。 | ||
/etc/system ファイル内のカーネルパラメータを変更した。 |
システムを実行レベル 3 にリブートする (NFS 資源を共有できる状態のマルチユーザーモード) | ||
ファイルシステムを保守した (システムデータのバックアップや復元など)。 |
実行レベル S で Ctrl-d を押して、システムを実行レベル 3 に戻す。 | ||
/etc/system などのシステム構成ファイルを修正した。 |
対話式ブート。 | ||
/etc/system ファイル内の擬似デバイスパラメータを変更した。 |
再構成用ブート。 |
『Solaris のシステム管理 (第 2 巻)』の「カーネルパラメータの調整手順」 |
『Solaris のシステム管理 (第 2 巻)』の「カーネルパラメータの調整手順」 |
システムにハードウェアを追加した (または、システムからハードウェアを削除した)。 |
再構成用ブート (ハードウェアを追加または削除したら電源を投入する)。 | ||
カーネルデバッガ (kadb) をブートして、システムの障害を調査した。 |
kabd をブートする。 | ||
ブート失敗の原因となっていた重要なシステムファイルを修正した。 |
回復ブート。 | ||
ハング状態から回復した。または、クラッシュダンプを強制した。 |
回復ブート。 |
システムブートの例については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。
この章では、システムのシャットダウンとブートに関するガイドラインを示し、実行レベルとブートファイルについて説明します。
この章で説明する手順は次のとおりです。
この章で説明する主な内容は次のとおりです。
システムの「実行レベル」 (init 状態ともいう) は、ユーザーが使用できるサービスと資源を定義します。システムが 1 度に持つことのできる実行レベルは 1 つだけです。
Solaris ソフトウェア環境には 8 つの実行レベルがあります (表 6-1参照)。デフォルトの実行レベル 3 は、/etc/inittab ファイルに指定されています。
表 6-1 Solaris 実行レベル
who -r コマンドを使用してシステムの実行レベル情報を表示すれば、システムの実行レベルがわかります。ただし、実行レベル 0 を除きます。
$ who -r |
$ who -r . run-level 3 Oct 26 15:04 3 0 S $ |
実行レベル 3 |
現在の実行レベル。 |
Oct 26 15:04 |
実行レベルが最後に変更された日時。 |
3 |
現在の実行レベル。 |
0 |
最後にリブートしてからこの実行レベルになった回数。 |
S |
以前の実行レベル。 |
init または shutdown コマンドを使用してシステムをブートしたり実行レベルを変更したりすると、init デーモンは、/etc/inittab ファイルから情報を読み取ってプロセスを起動します。/etc/inittab ファイルには、init プロセスにとって重要な 3 つの情報が定義されています。
システムのデフォルトの実行レベル
起動、監視するプロセス、および停止時に再起動するプロセス
システムが新しい実行レベルに移行したとき行う処理
/etc/inittab ファイル内の各エントリは、次のフィールドからなります。
id:rstate:action:process
表 6-2 に、inittab エントリの各フィールドを要約します。
表 6-2 inittab ファイルのフィールド
フィールド |
説明 |
---|---|
id |
エントリに固有の (一意の) 識別子。 |
rstate |
このエントリが適用される実行レベルのリスト。 |
action |
プロセスフィールドに指定されたプロセスの実行方法。指定できる値は、initdefault、sysinit、boot、bootwait、wait、および respawn。 |
process |
実行するコマンド。 |
以下の例は、デフォルトの inittab ファイルです。
ap::sysinit:/sbin/autopush -f /etc/iu.ap ap::sysinit:/sbin/soconfig -f /etc/sock2path fs::sysinit:/sbin/rcS sysinit >/dev/console 2<>/dev/console </dev/console is:3:initdefault: p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/console 2<>/dev/console sS:s:wait:/sbin/rcS >/dev/console 2<>/dev/console </dev/console s0:0:wait:/sbin/rc0 >/dev/console 2<>/dev/console </dev/console s1:1:respawn:/sbin/rc1 >/dev/console 2<>/dev/console </dev/console s2:23:wait:/sbin/rc2 >/dev/console 2<>/dev/console </dev/console s3:3:wait:/sbin/rc3 >/dev/console 2<>/dev/console </dev/console s5:5:wait:/sbin/rc5 >/dev/console 2<>/dev/console </dev/console s6:6:wait:/sbin/rc6 >/dev/console 2<>/dev/console </dev/console fw:0:wait:/sbin/uadmin 2 0 >/dev/console 2<>/dev/console </dev/console of:5:wait:/sbin/uadmin 2 6 >/dev/console 2<>/dev/console </dev/console rb:6:wait:/sbin/uadmin 2 1 >/dev/console 2<>/dev/console </dev/console sc:234:respawn:/usr/lib/saf/sac -t 300 co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T sun -d /dev/console -l console -m ldterm,ttcompat |
init プロセスが起動されます。init プロセスは、/etc/default/init ファイルを読み取って環境変数を設定します。デフォルトでは、TIMEZONE 変数だけが設定されます。
init は inittab ファイルを読み取って、次の処理を行います。
デフォルトの実行レベル 3 を定義する initdefault エントリを識別します。
action フィールドが sysinit になっているすべてのプロセスエントリを実行して、ユーザーがログインする前に特別な初期設定処理がすべて行われるようにします。
rstate フィールドが 3 になっている (デフォルトの実行レベル 3 と一致する) プロセスエントリを実行します。
init プロセスが inittab ファイルを使用する方法についての詳細は、init(1M) のマニュアルページを参照してください。
表 6-3 に、実行レベル 3 の action フィールドで使用するキーワードについて説明します。
表 6-3 実行レベル 3 の action キーワードの説明
キーワード |
指定されたプロセスの実行方法 |
---|---|
powerfail |
システムが電源切断シグナルを受信したときだけプロセスを実行する。 |
wait |
指定されたプロセスの終了を待つ。 |
respawn |
プロセスがまだ起動されていない場合は起動する。プロセスがすでに起動されている場合は、inittab ファイルの検索を続ける。 |
表 6-4 に、実行レベル 3 で実行されるプロセス (またはコマンド) について説明します。
表 6-4 実行レベル 3 のコマンドの説明
コマンドまたはスクリプト名 |
説明 |
---|---|
/usr/sbin/shutdown |
システムをシャットダウンする。init プロセスは、システムが powerfail シグナルを受信した場合にのみ shutdown コマンドを実行する。 |
/sbin/rcS |
ルート (/)、 /usr、 /var、 /var/adm のファイルシステムをマウントしてチェックする。 |
/sbin/rc2 |
標準のシステムプロセスを起動して、システムを実行レベル 2 (マルチユーザーモード) に移行する。 |
/sbin/rc3 |
実行レベル 3 で使用される NFS 資源共有を開始する。 |
/usr/lib/saf/sac -t 30 |
ポートモニターと UUCP 用のネットワークアクセスを起動する。このプロセスは失敗すると再起動される。 |
/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T terminal_type -d /dev/console -l console |
コンソールでのログイン要求を監視する ttymon プロセスを起動する。 このプロセスは失敗すると再起動される。SPARC システムの terminal_type は sun である。 x86 システムの terminal_type は AT386 である。 |
Solaris ソフトウェア環境では、一連の詳細な実行制御 (rc) スクリプトを使用して実行レベルの移行を制御しています。各実行レベルには次の rc スクリプトが対応しています。これらのスクリプトは、/sbin ディレクトリにあります。
rc0
rc1
rc2
rc3
rc5
rc6
rcS
/sbin ディレクトリ内の各 rc スクリプトには /etc/rcn.d という名前のディレクトリが対応しており、その中にはその実行レベルのさまざまな処理を実行するスクリプトがあります。たとえば、/etc/rc2.d には、実行レベル 2 のプロセスを起動および停止するためのファイル (スクリプト) があります。
# ls /etc/rc2.d K20spc@ S70uucp* S80lp* K60nfs.server* S71rpc* S80spc@ K76snmpdx* S71sysid.sys* S85power* K77dmi* S72autoinstall* S88sendmail* README S72inetsvc* S88utmpd* S01MOUNTFSYS* S73nfs.client* S89bdconfig@ S05RMTMPFILES* S74autofs* S91leoconfig* S20sysetup* S74syslog* S92rtvc-config* S21perf* S74xntpd* S92volmgt* S30sysid.net* S75cron* S93cacheos.finish* S47asppp* S76nscd* S99audit* S69inet* S80PRESERVE* S99dtlogin* |
/etc/rcn.d 内のスクリプトは常に、スクリプト名を ASCII 文字列としてソートした順に実行されます。スクリプト名の形式は次のとおりです。
[KS][0-9][0-9]*
名前が K で始まるスクリプトを実行すると、システムプロセスが終了 (kill) します。名前が S で始まるスクリプトを実行すると、システムプロセスが起動されます。
実行制御スクリプトは、/etc/init.d ディレクトリにもあります。これらのファイルは、/etc/rcn.d ディレクトリ内の対応する実行制御スクリプトにリンクされています。
各実行制御スクリプトの処理について、表 6-5 から表 6-10 に要約を示します。
実行レベルごとに対応するスクリプトを持つことの利点は、/etc/init.d ディレクトリ内の個々のスクリプトを実行することにより、システムの実行レベルを変更しないで (現在の実行レベルの) 機能を停止できる点です。
スーパーユーザーになります。
# /etc/init.d/filename stop |
機能を再開します。
# /etc/init.d/filename start |
pgrep コマンドを使用して、サービスが停止または起動しているかを確認します。
# pgrep -f service |
NFS サーバーの機能を停止するには、次のように入力します。
# /etc/init.d/nfs.server stop # pgrep -f nfs # |
NFS サービスを再開するには、次のように入力します。
# /etc/init.d/nfs.server start # pgrep -f nfs 141 143 245 247 # pgrep -f nfs -d, | xargs ps -fp root 141 1 40 Jul 31 ? 0:00 /usr/lib/nfs/statd root 143 1 80 Jul 31 ? 0:01 /usr/lib/nfs/lockd root 245 1 34 Jul 31 ? 0:00 /usr/lib/nfs/nfsd -a 16 root 247 1 80 Jul 31 ? 0:02 /usr/lib/nfs/mountd |
サービスを起動または停止するための実行制御スクリプトを追加するには、そのスクリプトを /etc/init.d ディレクトリにコピーして、rcn.d ディレクトリ内の適切なファイルへのリンクを作成します。
実行制御スクリプトの命名法についての詳細は、/etc/rcn.d ディレクトリ内の README ファイルを参照してください。以下に、実行制御スクリプトの追加方法を説明します。
スーパーユーザーになります。
スクリプトを /etc/init.d ディレクトリにコピーします。
# cp filename /etc/init.d # chmod 0744 /etc/init.d/filename # chown root:sys /etc/init.d/filename |
適切な rcn.d ディレクトリへのリンクを作成します。
# cd /etc/init.d # ln filename /etc/rc2.d/Snnfilename # ln filename /etc/rcn.d/Knnfilename |
ls コマンドを使用して、スクリプトが指定されたディレクトリ内のファイルにリンクされているかどうかを確認します。
# ls /etc/init.d/ /etc/rc2.d/ /etc/rcn.d/ |
# cp xyz /etc/init.d # cd /etc/init.d # ln xyz /etc/rc2.d/S100xyz # ln xyz /etc/rc0.d/K100xyz # ls /etc/init.d /etc/rc2.d /etc/rc0.d |
実行制御スクリプトを無効にするには、スクリプト名の先頭にドット (.) を付けます。ドットで始まるファイルは実行されません。接尾辞を追加してファイルをコピーすると、両方のファイルが実行されます。
スーパーユーザーになります。
スクリプト名の先頭に下線 ( _ ) を付けて、スクリプト名を変更します。
# cd /etc/rcn.d # mv filename _filename |
スクリプト名が変更されたことを確認します。
# ls -a _filename |
次の例は、S100datainit というスクリプト名を変更しますが、元のスクリプトも保存しています。
# cd /etc/rc2.d # mv S100datainit _S100datainit |
スクリプト名 |
説明 |
---|---|
/sbin/rc0 |
以下の作業を実行する。 |
|
|
表 6-6 /sbin/rc1 スクリプト
説明 |
|
---|---|
/sbin/rc1 |
/etc/rc1.d ディレクトリ内のスクリプトを実行して以下の作業を実行する。 |
|
|
表 6-7 /sbin/rc2 スクリプト
実行レベル 2 で起動されるシステムサービスとアプリケーションの多くは、システム上にインストールされているソフトウェアによって決まります。
スクリプト名 |
説明 |
---|---|
/sbin/rc3 |
/etc/rc3.d ディレクトリ内のスクリプトを実行して以下の作業を行う。 |
|
表 6-9 /sbin/rc5 スクリプトと /sbin/rc6 スクリプト
スクリプト名 |
説明 |
---|---|
/sbin/rc5 および /sbin/rc6 |
/etc/rc0.d/k* ディレクトリ内のスクリプトを実行して以下の作業を行う。 |
|
|
表 6-10 /sbin/rcS スクリプト
この章では、システムのシャットダウン手順について説明します。この章で説明する手順は次のとおりです。
この章で説明する主な内容は次のとおりです。
使用可能な実行レベルについての概要は、第 6 章「実行レベルとブートファイルの手順」を参照してください。
Solaris システムソフトウェアは、電子メールとネットワーク資源をいつでも利用できるように停止することなく動作するように設計されています。しかし、システム管理作業を行う場合や緊急事態が発生した場合は、システムをシャットダウンして安全に電源を切断できる状態にするか、一部のシステムサービスしか提供しない中間の実行レベルまで移行する必要があります。たとえば次のような場合です。
ハードウェアを追加または削除する。
予告済みの停電に備える。
ファイルシステムの保守を行う (バックアップなど)。
システムをシャットダウンする必要があるシステム管理作業についての詳細は、第 5 章「システムのシャットダウンとブートの概要」を参照してください。
システムをシャットダウンする第 1 の方法は、init コマンドおよび shutdown コマンドを使用する方法です。どちらのコマンドもシステムを「正常に シャットダウン」します。つまり、すべてのファイルシステムに対する変更はディスクに書き出され、すべてのシステムサービス、プロセス、オペレーティングシステムが正常に終了します。
システムのアボートキーシーケンスを使用したり、電源をオフにしてからオンにする方法では、システムサービスが突然終了してしまうので、正常なシャットダウン方法とはいえません。しかし、緊急時には、これらの方法を使用しなければならない場合もあります。システムの復元手順については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。
表 7-1 に、いくつかのシャットダウンコマンドとその用途を要約します。
表 7-1 シャットダウンコマンド
この章およびこのマニュアル全体を通して、/usr/ucb/shutdown コマンドではなく /usr/sbin/shutdown コマンドを使用します。
次のような場合は、すべてのシステムデバイスの電源を落とす必要があります。
ハードウェアを置換または追加する。
システムの設置場所を変更する。
予測可能な停電や自然災害 (接近中の雷雨など) に備える。
システムデバイスとは、CPU、モニター、外部デバイス (ディスク、テープ、プリンタ) などを意味します。
シャットダウン手順を実行してから、すべてのデバイスの電源を落としてください。
shutdown コマンドは起動時に、ログインしているすべてのユーザーおよびシステム資源をマウントしているすべてのシステムに、警告と最終メッセージという形でシャットダウンを通知します。
サーバーをシャットダウンする場合に、init コマンドではなく shutdown コマンドを使用することを推奨するのはこのためです。どちらを使用するにしても、ユーザーには予定されているシャットダウンについてあらかじめ電子メールで知らせておくようにしてください。
システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who コマンドは、システムの現在の実行レベルを知りたい場合にも使用できます。システム上のどのユーザーに通知する必要があるかを知るには、who コマンドを使用します。who(1) コマンドは、「システムの実行レベルを確認する方法」で説明されているシステムの現在の実行レベルを知りたい場合にも使用できます。
who コマンドの出力例を以下に示します。
スーパーユーザーになります。
システムにユーザーがログインしているかどうか調べます。
# who |
ログインしているすべてのユーザーが表示されます。システムがシャットダウンされることを、メールかブロードキャストメッセージで知らせることもできます。
shutdown(1M) コマンドを使用してシステムをシャットダウンします。
# shutdown -iinit-state -ggrace-period -y |
-iinit-state |
システムをデフォルトの S 以外の init 状態にする。0、1、2、5、6 のいずれかを指定できる。 |
-ggrace-period |
シャットダウンするまでの時間 (秒) を指定する。デフォルトは 60 秒。 |
-y |
ユーザーの介入なしにシャットダウンを継続する。このオプションを指定しないと、シャットダウンを継続するかどうか 60 秒後にたずねられる。 |
シャットダウンを継続するかどうかたずねられたら、y を入力します。
Do you want to continue? (y or n): y |
-y オプションを指定した場合、このプロンプトは表示されません。
プロンプトが表示されたら、スーパーユーザー のパスワードを入力します。
Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxx |
システム管理作業を終了したら、Ctrl-d を押してデフォルトの実行レベルに戻ります。
システムが、shutdown コマンドで指定した実行レベルに移行したことを確認する方法を以下の表に要約します。
移行後の実行レベル |
SPARC システムの場合 |
x86 システムの場合 |
---|---|---|
実行レベル S (シングルユーザーモード) |
# |
# |
実行レベル 0 (電源切断状態) |
ok または > |
type any key to continue |
実行レベル 3 (リモート資源が共有されたマルチユーザー状態) |
hostname console login: |
hostname console login: |
次の例では、shutdown コマンドを使用して、3 分後に、SPARC システムを実行レベル S (シングルユーザーモード) にしています。
# who root console Jun 10 14:15 # shutdown -g180 -y Shutdown started. Wed Jun 10 14:15:25 MDT 1998 Broadcast Message from root (console) on mars Wed Jun 10 14:15:26... The system mars will be shut down in 3 minutes . . . Broadcast Message from root (console) on mars Wed Jun 10 14:17:58... The system mars will be shut down in 30 seconds . . . INIT: New run level: S The system is coming down for administration. Please wait. Unmounting remote filesystems: /vol nfs done. Print services stopped. syslogd: going down on signal 15 Killing user processes: done. INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxx Entering System Maintenance Mode ... # |
次の例では、shutdown コマンドを使用して、SPARC システムを 5 分後に実行レベル 0 にしています。確認用プロンプトが表示されないように -y オプションを指定しています。
# who kryten console Jun 10 14:22 rimmer pts/1 Jun 10 14:23 (starbug) pmorph pts/2 Jun 10 14:24 (bluemidget) (ログインしているユーザーにメールを送る) # shutdown -i0 -g300 -y Shutdown started. Wed Jun 10 14:30:32 MDT 1998 Broadcast Message from root (console) on pluto Wed Jun 10 14:30:32... The system will be shut down in 5 minutes . . . INIT: New run level: 0 The system is coming down. Please wait. . . . The system is down. syncing file systems... [11] [9] [5] done Program terminated Type help for more information ok |
システムを実行レベル 0 にしてすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、shutdown コマンドを使用して SPARC システムをリブートし、2 分後に実行レベル 3 にしています。確認用プロンプトが表示されないように -y オプションを指定しています。
# who kryten console Jun 10 14:35 rimmer pts/1 Jun 10 14:40 (starbug) pmorph pts/2 Jun 10 14:45 (bluemidget) (ログインしているユーザーにメールを送る) # shutdown -i6 -g120 -y Shutdown started. Wed Jun 10 14:34:26 MDT 1998 Broadcast Message from root (console) on pluto Wed Jun 10 14:34:26 MDT 1998 The system will be shut down in 1 minute Changing to init state 6 - please wait # INIT: New run level: 6 The system is coming down. Please wait. . . . The system is down. syncing file systems... [11] [9] [5] done rebooting... . . . pluto console login: |
システムをシャットダウンした理由が何であれ、最終的には、すべてのファイル資源が使用でき、ユーザーがログインできる実行レベル 3 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。
スーパーユーザーになります。
init(1M) コマンドを使用してシステムをシャットダウンします。
# init run-level |
run-level |
新しい実行レベル |
システムが、init コマンドで指定した実行レベルに移行したことを確認する方法を以下の表に要約します。
次の例では、init コマンドを使用して、x86 スタンドアロンシステムを安全に電源を落とせるレベルにします。
# init 0 # INIT: New run level: 0 The system is coming down. Please wait. . . . The system is down. syncing file systems... [11] [10] [3] done Type any key to continue |
システムを実行レベル 0 に移行してすべてのデバイスの電源を落とす場合は、「すべてのデバイスの電源を落とす方法」を参照してください。
次の例では、init コマンドとを使用して、SPARC スタンドアロンシステムを実行レベル S (シングルユーザー状態) にしています。
# init S # INIT: New run level: S The system is coming down for administration. Please wait. Unmounting remote filesystems: /vol nfs done. Print services stopped. syslogd: going down on signal 15 Killing user processes: done. INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxx Entering System Maintenance Mode # |
システムをシャットダウンした理由が何であれ、最終的には、すべてのファイル資源が使用でき、ユーザーがログインできる実行レベル 3 に戻すことになるでしょう。システムをマルチユーザー状態に移行する手順については、第 8 章「SPARC: システムのブートの手順」または第 9 章「x86: システムのブートの手順」を参照してください。
以下の表を参考にして、該当するシャットダウン作業を実行します。
サーバーをシャットダウンする場合 |
スタンドアロンシステムをシャットダウンする場合 |
---|---|
システムをシャットダウンしたら、すべてのデバイスの電源を落とします。必要なら、電源ケーブルをコンセントから引き抜きます。
電源が回復したら、次の手順に従ってシステムとデバイスの電源を投入します。
この章では、OpenBootTM PROM モニターを使う手順と、SPARC システムを異なる実行レベルにブートする手順を説明します。
この章で説明する手順は次のとおりです。
ブート手順の概要については、第 10 章「ブートプロセスの参照情報」を参照してください。
システム管理者は、システムをマルチユーザー状態にする前に、通常は、PROM レベルを使ってシステムをブートします。ただし、どのデバイスからブートするかを設定したり、ハードウェア診断プログラムを実行するなどのシステム動作方法を変更する必要がある場合があります。
永久に、または一時的に新しいドライブをシステムに追加したいときは、デフォルトのブートデバイスを必ず変更してください。あるいは、スタンドアロンシステムをディスクレスクライアントに変換する場合は、必ずネットワークからブートしてください。
すべての PROM コマンドについては、monitor(1M) または eeprom(1M) のマニュアルページを参照してください。
システムを停止すると、PROM モニターは > または ok を表示します。
SPARC システムで、> プロンプトから ok プロンプトに切り換えるには、次のコマンドを入力します。
> n ok |
この節で示す例では、すべて ok プロンプトを使います。
システムの PROM リリースレベルを banner コマンドで表示します。
ok banner SPARCstation 2, Type 4 Keyboard ROM Rev. 2.2, 16 MB memory installed, Serial #nnnnnn Ethernet address 8:0:20:f:fd:6c HostID nnnnnnnn |
ハードウェア構成情報が表示され、その中に PROM のリリース番号があります。PROM リリースレベルが、ROM Rev 番号で示されます。
次の手順で、デフォルトのブートデバイスを変更してください。
スーパーユーザーになります。
init(1M) コマンドを使って、システムを停止します。
# init 0 |
PROM プロンプトが表示されます。
> PROM プロンプトが表示されたら、n を入力して Return キーを押します。
> n ok |
ok PROM プロンプトが表示されます。
setenv コマンドを使って、boot-device の設定を変更します。
ok setenv boot-device disk[n] |
boot-device |
ブートするデバイスを設定するパラメータを指定する。 |
disk[n] |
boot-device 値を指定する。この場合、n はディスク番号。 |
ディスク番号を確認したい場合は、probe-scsi-all コマンドを使います。
printenv コマンドを使って、デフォルトのブートデバイスの変更を確認します。
ok printenv boot-device |
reset コマンドを使って新しい boot-device 値を保存します。
ok reset |
boot-device 設定が、PROM に書き込まれます。
# init 0 # INIT: New run level: 0 . . . The system is down. syncing file systems... [11] [10] [5] done Program terminated Type help for more information ok setenv boot-device disk boot-device = disk ok printenv boot-device boot-device disk disk ok reset SPARCstation 10 (1 X 390Z50), No Keyboard ROM Rev. 2.14, 32 MB memory installed, Serial #3383708. Ethernet address 8:0:20:1f:33:9f, Host ID: 7233a19e. Boot device: /iommu/sbus/espdma@f,400000/esp@f,800000/ sd@3,0 File and args: kadb -v . . . pluto console login: |
ok reset |
セルフテストプログラムが実行され、ハードウェアで診断テストを行なった後、システムがリブートされます。
表 8-1 に、この章で説明するブート方法の要約を示します。
表 8-1 SPARC: ブート方法の説明
システムのブート方法 |
このブート方法が必要な場合 |
参照先 |
---|---|---|
実行レベル 3 (NFS 資源を共有するマルチユーザー状態) |
システムを停止するか、またなんらかのシステムハードウェアの保守作業を行なった後。これはデフォルトのブートレベルで、すべての資源が利用でき、そしてユーザーがシステムにログインできる。 | |
実行レベル S (シングルユーザー状態) |
ファイルシステムのバックアップなどのなんらかのシステム保守作業を行なった後。このレベルでは、一部のファイルシステムだけがマウントされ、ユーザーはシステムにログインできない。 | |
対話式でブート |
テストのために、システムファイルまたはカーネルを一時的に変更した後。このブート方法を使えば、システムファイルまたはカーネルに問題がある場合、プロンプトが表示されたときに、これらのファイルに対して別のパス名を指定すれば簡単に復元できる。他のシステムプロンプトにデフォルトの設定を使う。 | |
ローカル CD-ROM またはネットワークからブートして復元する |
システムの正常なブートを妨げている重要なシステムファイルを修復する。また、この形式のブートはオペレーティングシステムの新しいリリースをインストール (あるいは、アップグレード) するのにも使用する。 | |
kadb を使ってブート |
オペレーティングシステムのコアダンプを保存して、システムの障害を追跡する場合。 |
システムの電源を切ってから入れ直すと、マルチユーザーのブートシーケンスが開始されます。このあとに示す手順では、ok PROM プロンプトからさまざまな状態でブートする方法を説明します。
who -r コマンドを使って、システムが指定した実行レベルになっていることを確認します。
実行レベルについての説明は、第 6 章「実行レベルとブートファイルの手順」を参照してください。
ok boot |
自動ブート処理では、一連のスタートアップメッセージ表示して、システムを実行レベル 3 にします。
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面か、ログインプロンプトが表示されます。
hostname console login: |
次に、システムを実行レベル 3 にするメッセージの例を示します。
ok boot Resetting ... SPARCstation 10 (1 X 390Z50), Keyboard Present ROM Rev. 2.14, 32 MB memory installed, Serial #number. Ethernet address #number, Host ID: number. Boot device: /iommu/sbus/espdma@f,400000/esp@f,800000/sd@3,0 File and args: SunOS Release 5.7 Version generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1998, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: venus The system is coming up. Please wait. add net default: gateway 129.152.75.248 NIS domainname is solar.com starting rpc services: rpcbind keyserv ypbind done. Setting netmask of le0 to 255.255.255.0 Setting default interface for multicast: add net 224.0.0.0: gateway venus syslog service starting. Print services started. volume management starting. The system is ready. venus console login: |
boot -s コマンドを使って、システムを実行レベル S にします。
ok boot -s |
次のメッセージが表示されたら、root パスワードを入力します。
INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxx |
who -r コマンドを使って、システムが実行レベル S になっていることを確認します。
# who -r . run-level S May 2 07:39 3 0 S |
システム保守作業の後に、システムをマルチユーザー状態にするには、Control-d を押します。
次に、実行レベル S になるシステムの表示例を示します。
ok boot -s . . . SunOS Release 5.7 Version [UNIX(R) System V Release 4.0] Copyright (c) 1983-1998, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: mars INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxx Sun Microsystems Inc. SunOS 5.7 August 1998 # who -r . run-level S June 2 07:45 S 0 ? <保守作業を行う> # <Control-d を押す> |
boot -a コマンドを使って、システムを対話式でブートします。
ok boot -a |
表 8-2 に示すように、システムプロンプトに答えてください。
表 8-2 SPARC: 対話式によるブート処理手順
表 8-2 の質問に答えるようなプロンプトが表示されない場合、boot -a コマンドを正しく入力していることを確認してください。
次の例では、利用できるデフォルトの選択例 ([]で囲まれています) を示します。
ok boot -a . . . Resetting ... Rebooting with command: -a Boot device: /iommu/sbus/espdma@f,400000/esp@f,800000/sd@3,0 File and args: -a Enter filename [kernel/unix]: Return キーを押す Enter default directory for modules [/platform/SUNW,SPARCstation-10/kernel /platform/sun4m/kernel /kernel /usr/kernel]: Return キーを押す SunOS Release 5.7 Version generic [UNIX(R) System V Release 4.0] Copyright (c) 1983-1998, Sun Microsystems, Inc. Name of system file [etc/system]: Return キーを押す root filesystem type [ufs]: Return キーを押す Enter physical name of root device [/iommu@f,e0000000/sbus@f,e0001000/espdma@f,400000/esp@f,800000 /sd@3,0:a]: Return キーを押す configuring network interfaces: le0. Hostname: earth The system is coming up. Please wait. . . . The system is ready. earth console login: |
この手順は、/etc/passwd などの重要なファイルに、無効なエントリがあり正常にブートできない場合に必要です。
システムのデバイス名を調べたい場合は、第 20 章「デバイスへのアクセス」を参照してください。
Solaris インストール CD またはネットワークからブートしているかどうかによって、次のそれぞれの手順に従ってください。
ファイル内に無効なエントリがあるファイルシステムをマウントします。
# mount /dev/dsk/device-name /a |
新しくマウントしたディレクトリに移動します。
# cd /a/directory |
端末タイプを設定します。
# TERM=sun # export TERM |
エディタを使って、ファイルから無効なエントリを削除します。
# vi filename |
ルート (/) ディレクトリに移動します。
# cd / |
/a ディレクトリのマウントを解除します。
# umount /a |
システムをリブートします。
# init 6 |
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
次に、ローカル CD-ROM からブートした後、重要なシステムファイルを修復する例として、/etc/passwd を使用した場合を示します。
ok boot cdrom -s # mount /dev/dsk/c0t3d0s0 /a # cd /a/etc # TERM=sun # export TERM # vi passwd (無効なエントリを削除する) # cd / # umount /a # init 6 |
アボートキーシーケンスは、キーボードのタイプによって異なります。たとえば、Stop-A または L1-A を押します。端末では、Break キーを押します。
システムのアボートキーシーケンスを入力します。
モニターに ok PROM プロンプトが表示されます。
ok |
sync コマンドを使って、ディスクを同期させます。
ok sync |
syncing file systems. . . というメッセージが表示されたら、システムのアボートキーシーケンスをもう一度押します。
該当する boot コマンドを入力して、ブートプロセスを起動します。
システムが指定した実行レベルになっていることを確認します。
# who -r . run-level 3 May 2 07:39 3 0 S |
<Stop-a を押す> ok sync syncing file systems... <Stop-a を押す> ok boot |
問題を対処するために、オペレーティングシステムのクラッシュダンプを保存しておく必要があります。savecore 機能とその設定方法については、『Solaris のシステム管理 (第 2 巻)』の「システムクラッシュ情報の生成と保存」で説明しています。この節では、savecore 機能が有効な場合に、システムをリブートする方法だけを説明します。
システムのアボートキーシーケンスを入力します。アボートキーシーケンスは、キーボードのタイプによって異なります。たとえば、Stop-A または L1-A を押します。端末では、Break キーを押します。
モニターに ok PROM プロンプトが表示されます。
ok プロンプトで、sync コマンドを使ってディスクを同期させ、クラッシュダンプを書き出します。
> n ok sync |
クラッシュダンプがディスクに書き出されると、システムはそのままリブートします。
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
<Stop-a を押す> ok sync |
システムのアボートキーシーケンスを入力します。アボートキーシーケンスは、キーボードのタイプによって異なります。たとえば、Stop-A または L1-A を押します。端末では、Break キーを押します。
モニターに、ok PROM プロンプトが表示されます。
ok プロンプトで 、sync コマンドを使ってディスクを同期させ、クラッシュダンプを書き出します。
> n ok sync |
syncing file systems. . .メッセージが表示されたら、もう一度システムのアボートキーシーケンスを入力します。
カーネルデバッガを使ってシステムをブートします。
ok boot kadb |
ブートメッセージで、システムがカーネルデバッガ (kadb) を使用してブートしていることを確認します。
Rebooting with command: kadb Boot device: /iommu/sbus/espdma@4,800000/esp@4,8800000/sd@3,0 . . . |
<Stop-a を押す> ok sync syncing file systems... <Stop-a を押す> ok boot kadb |
この章では、x86 システムをブートする手順を説明します。
この章で説明する手順は次のとおりです。
ブート手順の概要については、第 10 章「ブートプロセスの参照情報」を参照してください。
表 9-1 に、この章で説明するブート方法の要約を示します。
表 9-1 x86: ブート方法の説明
システムのブート方法 |
このブート方法が必要な場合 |
参照先 |
---|---|---|
実行レベル 3 (マルチユーザー状態) |
システムを停止するか、またなんらかのシステムハードウェアの保守作業を行なった後。これはデフォルトのブートレベルで、すべての資源が利用でき、そしてユーザーがシステムにログインすることができる。 | |
実行レベル S (シングルユーザー状態) |
ファイルシステムのバックアップなどのなんらかのシステム保守作業を行なった後。このレベルでは、一部のファイルシステムだけがマウントされ、ユーザーはシステムにログインできない。 | |
対話式でブート |
テストのために、システムファイルまたはカーネルを一時的に変更した後。この形式のブートを使えば、システムファイルまたはカーネルに問題がある場合、プロンプトが表示されたときに、これらのファイルに対して別のパス名を指定すれば簡単に復元できる。他のシステムプロンプトにデフォルトの設定を使う。 | |
ローカル CD-ROM またはネットワークからブートして復元する |
システムの正常なブートを妨げている重要なシステムファイルを修復する。また、この形式のブートは、オペレーティングシステムの新しいリリースをインストール (またはアップグレード) するのにも使用する。 | |
kadb を使ってブート |
オペレーティングシステムのコアダンプを保存して、システムの障害を追跡する場合。 |
次に、リセットボタンを使ってシステムを再起動する手順を示します。システムにリセットボタンがない場合は、電源のオン・オフスイッチを使ってシステムを再起動します。システムの状態によっては Control-Alt-Del キーを使って、システムの動作に割り込むことができます。
Type any key to continue プロンプトが表示された場合は、任意のキーを押してシステムをリブートするか、リセットボタンを押してシステムを再起動します。システムがシャットダウンしている場合は、電源スイッチを押してシステムを再起動します。
「Current Boot Pramaters」メニューが、数分後に表示されます。
システムを実行レベル 3 にするには、b を入力します。Return キーを押してください。
5 秒以内に選択しないと、システムは自動的に実行レベル 3 になります。
システムが実行レベル 3 になっていることを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
Type any key to continue . . . <<< Current Boot Parameters >>> Boot path: /eisa/eha@1,4000/sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b . . . venus console login: |
Type any key to continue プロンプトが表示された場合は、どれかキーを押してシステムをリブートします。このプロンプトが表示されているときは、リセットボタンを押すこともできます。システムがシャットダウンしている場合は、電源スイッチを使用してシステムの電源を入れます。
数分後、「Current Boot Parameters」メニューが表示されます。
b -s と入力し、システムを実行レベル S でブートします。Return キーを押します。
5 秒以内に選択しないと、システムは自動的に実行レベル 3 でブートします。
プロンプトが表示されたら、スーパーユーザーのパスワードを入力します。
who -r を使用して、システムが実行レベル S になっていることを確認します。
# who -r . run-level S Nov 10 13:59 S 0 3 |
実行レベルを S に移行して行う必要がある保守作業を行います。
システムを実行レベル 3 に戻すには、Control-d を押します。
Type any key to continue . . . <<< Current Boot Parameters >>> Boot path: /eisa/eha@1,4000/sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -s . . . INIT: SINGLE USER MODE Type Ctrl-d to proceed with normal startup, (or give root password for system maintenance): xxx Entering System Maintenance Mode . . . # who -r . run-level S Aug 4 13:11 S 0 3 (保守作業を行う) # Control-d を押す |
Type any key to continue プロンプトが表示されているときは、任意のキーを押してリブートするか、リセットボタンを押してシステムを再起動します。システムがシャットダウンしているときは、電源スイッチを押してシステムをリブートします。
「Current Boot Parameters」メニューが、数分後に表示されます。
b -a と入力して、システムを対話式でブートします。
5 秒以内に選択しないと、システムは自動的に実行レベル 3 でブートします。
表 9-2 で説明するように、システムプロンプトに応答します。
表 9-2 x86: 対話式によるブート処理手順
システムの表示 |
操作 |
---|---|
Type any key to continue |
このプロンプトが表示されているときには、任意のキーを押してシステムをリブートする。このプロンプトが表示されているときにリセットボタンを使用することもできる。システムがシャットダウンしているときは、電源スイッチを使用してシステムの電源を入れる。 Primary Boot Subsystemメニューが、数分後に表示される。 |
Primary Boot Subsystem メニュー |
ブートデバイスとして Active Solaris スライスを選択する。Return キーを押す。30 秒以内に選択しないと、アクティブなブートスライスが自動的に選択される。 |
Select (b)oot or (i)nterpreter: |
b -a と入力して、Return キーを押す。 |
Enter default directory for modules: [/platform/i86pc/kernel /kernel /usr/kernel]: |
modules ディレクトリの代替パスを指定して Return キーを押すか、Return キーを押してデフォルトの modules ディレクトリパスを使用する。 |
Name of system file [etc/system]: |
代わりのシステムファイル名を入力して Return キーを押すか、そのまま Return キーを押してデフォルトの /etc/system ファイルを使う。 /etc/system ファイルが破損している場合は、ファイルとして /dev/null を入力する。 |
root filesystem type [ufs]: |
そのまま Return キーを押してデフォルトのルートファイルシステム形式を使う。つまり、ローカルディスクからのブートの場合は UFS、ディスクレスクライアントの場合は NFS を使う。 |
Enter physical name of root device[physical_device_name]: |
代わりのデバイス名を入力して、Return キーを押すか、そのまま Return キーを押してルートデバイス bootpath のデフォルトの物理名を使う。 |
デフォルトを選択 ([]で囲まれています) した例を示します。
Type any key to continue . . . <<< Current Boot Parameters >>> Boot path: /eisa/eha@1,4000/sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>>> Select (b)oot or (i)nterpreter: b -a Enter default directory for modules [/platform/i86pc/kernel /kernel /usr/kernel]: Return キーを押す Name of system file [etc/system]:Return キーを押す (著作権表示) root filesystem type [ufs]: Return キーを押す Enter physical name of root device [/eisa/dpt@5c88,0/cmdk@0,0:a]: Return キーを押す Configuring network interfaces: smc0 Hostname: venus (fsck メッセージ) The system is coming up. Please wait (その他のメッセージ) venus console login: |
システムの復元を目的としたブート例として、無効な /etc/passwd ファイルを復元する方法について説明します。
以下の手順では、認識された devicename 変数を修復するためにファイルシステムのデバイス名に置き換えます。システムのデバイス名については、第 20 章「デバイスへのアクセス」を参照してください。
Solaris インストール CD またはネットワークのどちらからブートしているかによって、対応する手順に従ってください。
Solaris インストール CD (またはネットワーク) から、手順 a から f に従ってシングルユーザーモードでブートします。
ネットワークからブートしている場合は、手順 a と b を省略します。
Solaris インストール CD を CD キャディに挿入します。
CD キャディを CD-ROM ドライブに挿入します。
(省略可能) ブート元のディスクに Intel 版 Solaris 2.6 またはその互換バージョンが含まれていない場合、フロッピーディスクドライブ (DOS ドライブ A) に Configuration Assistant/Boot (構成用補助) フロッピーディスクを挿入します。
Type any key to continue プロンプトが表示されている場合は、どれかキーを押してシステムをリブートします。このプロンプトが表示されているときは、リセットボタンを押すこともできます。システムがシャットダウンしている場合は、電源スイッチを使用してシステムの電源を入れます。
「Solaris Device Configuration Assistant」画面で、F2 キー (F2_Continue) を押します。
デバイスが識別され、識別されたデバイスを示す画面が表示されます。
「Identified Devices」画面で、F2 キー (F2_Continue) を押します。
ブート可能なドライバが読み込まれます。
「Boot Solaris」画面から CD または NET をブートデバイスとして選択します。次に F2 キー (F2_Continue) を押します。
「Current Boot Parameters」メニューが表示されます。
Select type of installation: プロンプトで b -s と入力します。
数分後に、シングルユーザーモードの # プロンプトが表示されます。
無効な passwd ファイルがあるルート (/) ファイルシステムをマウントします。
# mount /dev/dsk/devicename /a |
新しくマウントした etc ディレクトリに移動します。
# cd /a/etc |
端末タイプを設定します。
# TERM=AT386 # export TERM |
必要に応じて、エディタを使って passwd ファイルに必要な変更を加えます。
# vi passwd |
ルート (/) ディレクトリに移動します。
# cd / |
/a ディレクトリのマウントを解除します。
# umount /a |
システムをリブートします。
# init 6 |
システムが実行レベル 3 でブートしたことを確認します。
ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。
hostname console login: |
Type any key to continue SunOS Secondary Boot version 3.00 Solaris Intel Platform Edition Booting System Running Configuration Assistant... Autobooting from bootpath: /eisa/eha@1,4000/sd@0,0:a If the system hardware has changed, or to boot from a different device, interrupt the autoboot process by pressing ESC. Press ESCape to interrupt autoboot in 5 seconds. . . . Boot Solaris Select one of the identified devices to boot the Solaris kernel and choose Continue. To perform optional features, such as modifying the autoboot and property settings, choose Boot Tasks. An asterisk (*) indicates the current default boot device. > To make a selection use the arrow keys, and press Enter to mark it [X]. [ ] DISK: Target 0, IMPRIMIS 94241-7 0888 on Adaptec 1740/1742 SCSI controller in EISA Slot 4 [ ] CD : Target 2, TOSHIBA CD-ROM XM-3501TA 3054 on Adaptec 1740/1742 SCSI controller in EISA Slot 4 [ ] NET : SMC EtherCard Elite32C Ethernet adapter in EISA Slot 6 F2_Continue F3_Back F4_Boot Tasks F6_Help . . . <<< Current Boot Parameters >>> Boot path: /eisa/smceu@0,0 Boot args: kernel/unix -r Select the type of installation you want to perform: 1 Solaris Interactive 2 Custom JumpStart 3 Solaris Web Start Enter the number of your choice followed by <ENTER> the key. If you enter anything else, or if you wait for 30 seconds, an interactive installation will be started. Select type of installation: b -s # mount /dev/dsk/c0t3d0s0 /a # cd /a/etc # TERM=AT386 # export TERM # vi passwd (無効なエントリの削除) # cd / # umount /a # init 6 |
可能であれば、次のコマンドのどちらかを使用してシステムを停止してみます。
システムが動作している場合、スーパーユーザーになって init 0 を実行してシステムを停止します。「Type any key to continue」というメッセージが表示されたら、任意のキーを押してシステムをリブートします。
システムが動作している場合、スーパーユーザーになって init 6 を実行してシステムをリブートします。
マウスまたはキーボードからの入力にシステムが応答しない場合、リセットキーがあればそのキーを押してシステムをリブートします。あるいは、電源スイッチを使用してシステムをリブートします。
問題に対処するために、オペレーティングシステムのコアダンプを保存しておく必要があります。
savecore 機能とその設定方法については、『Solaris のシステム管理 (第 2 巻)』の「システムクラッシュ情報の生成と保存」で説明しています。この節では、savecore 機能が有効な場合に、システムをリブートする方法だけを説明します。
kadb[0]: プロンプトを表示して、クラッシュダンプを強制するには、カーネルデバッガオプション kadb を指定してシステムをブートします。
カーネルデバッガ kadb に入るにはテキストモードでなければなりません。したがって、まずウィンドウシステム (CDE または OpenWindows) を終了してください。
Control-Alt-d を押します。
kadb[0]: |
kadb[0]: プロンプトが表示されます。
次のコマンドを kadb[0]: プロンプトで入力します。
Press <Control-Alt-d> kadb[0]: vfs_syncall/W ffffffff kadb[0]: 0>eip kadb[0]: :c kadb[0]: :c kadb[0]: :c |
最初の :c を入力すると、システムはパニックを起こします。そこでもう一度 :c を入力します。システムは再度パニックを起こすため、3 度目の :c を入力し、クラッシュダンプを強制して、システムをリブートします。
クラッシュダンプがディスクに書き込まれた後、システムはリブートします。
コンソールログインプロンプトでログインして、システムがリブートされていることを確認します。
この章では、SPARC や x86 システムでブートするのに使用するハードウェア、および各プラットホームのブートプロセスの概要を説明します。
この章の内容は次のとおりです。
システムのブート手順については、第 8 章「SPARC: システムのブートの手順」または、第 9 章「x86: システムのブートの手順」を参照してください。
SPARC システムごとに、「モニター」と呼ばれるプログラムを格納している PROM (プログラム可能な読み取り専用メモリー) チップがあります。モニターは、カーネルが使用される前に、システムの動作を制御します。システムをオンにすると、モニターはシステムのハードウェアやメモリーなどを検査するセルフテスト手順を実行します。エラーが検出されなければ、システムは、自動ブートプロセスを開始します。
Solaris システムが動作する前に、以前のシステムの一部には PROM アップグレードが必要なものもあります。詳細については、購入先にお問い合わせください。
ブート PROM フェーズ | ブート PROM が、セルフテスト診断を実行する。 |
ブート PROM が、bootblock プログラムを読み込む。 | |
ブートプログラムフェーズ | ブートブロックプログラムが、ufsboot プログラムを読み込む。 |
ufsboot プログラムが読み込まれてから、ブート PROM がカーネルを読み込む | |
カーネル初期設定フェーズ | カーネルが自身を初期設定し、ルート (/) ファイルシステムをマウントするのに必要なモジュールをロードする。 |
カーネルが init プロセスを起動する。 | |
init フェーズ | init プロセスが、実行制御スクリプトを起動する。 |
表 10-2 に、上で図示した SPARC ブートプロセスについて説明します。
表 10-2 SPARC ブートプロセスの説明
ブートフェーズ |
説明 |
---|---|
ブート PROM |
1. PROM は、システム識別情報を表示し、セルフテスト診断を実行してシステムのハードウェアとメモリーを検査する。 |
|
2. PROM は一次ブートプログラム bootblk を読み込む。このプログラムの目的は、デフォルトのブートデバイスから ufs ファイルシステムにある二次ブートプログラムを読み込むことにある。 |
ブートプログラム |
3. bootblk プログラムは二次ブートプログラム ufsboot を検索して実行し、それをメモリーに読み込む。 |
|
4. ufsboot プログラムが読み込まれたあと、ufsboot プログラムはカーネルを読み込む。 |
カーネルの初期設定 |
5. カーネルが自身を初期設定し、ファイルの読み込みに ufsboot を使ってモジュールのロードを開始する。カーネルはルートファイルシステムをマウントするのに十分なモジュールをロードすると、/ufsboot プログラムの対応づけを解除し、それ自身のリソースを使って動作を続ける。 |
init |
6. カーネルがユーザープロセスを作成し、/sbin/init プロセスを起動する。このプロセスは /etc/inittab ファイルを読んで他のプロセスを起動する。 |
7. /sbin/init プロセスが実行制御 (rc) スクリプトを起動し、このスクリプトは一連の他のスクリプトを実行する。それらのスクリプト (/sbin/rc*) はファイルシステムをマウントして検査し、いろいろなプロセスを開始し、システム保守作業を実行する。 |
カーネルが起動される前は、システムは、PC 上のファームウェアインタフェースである、読み取り専用メモリー (ROM) の Basic Input/Output System (BIOS) によって制御されます。
ハードウェアアダプタにオンボード BIOS を搭載することができ、それによってデバイスの物理的特性を表示したり、デバイスにアクセスしたりすることができます。
起動シーケンスの間、PC の BIOS はアダプタ BIOS があるかどうか調べ、あれば、それぞれをロードして、実行します。アダプタの BIOS はそれぞれセルフテスト診断を実行して、デバイス情報を表示します。
Solaris のブート時に、ブートシステムについて次の選択を行えます。
一次ブートサブシステム (「Partition Boot」メニュー) - この最初のメニューは、ブート可能な fdisk パーティションがディスク上に複数ある場合に表示されます。このメニューで、どの fdisk パーティションからブートするかを指定できます。何も指定しなければ、デフォルトではアクティブなパーティションからブートします。
Solaris のパーティション以外のパーティションからブートするように指定すると、次の 2 つのメニューは表示されません。
自動ブートプロセスへの割り込み - 自動ブートプロセスに割り込むと、Configuration Assistant (構成用補助) にアクセスできます。
Configuration Assistant を使用すると、Solaris システムを別のブートデバイスからブートしたり、新しいハードウェアの構成や構成変更が行え、またデバイスやブートに関連する作業を実行できます。
「Current Boot Parameters」メニュー - このメニューには 2 つの形式があります。1 つは、通常の Solaris ブート用で、もう 1 つは Solaris インストールブート用です。
通常の「Current Boot Parameters」メニューでは、オプションを付けて Solaris システムをブートしたり、ブートインタプリタを実行できます。
インストール用の「Current Boot Parameters」メニューでは、インストールの種類を選択したり、ブートをカスタマイズできます。
表 10-3 に、主な x86 ブートインタフェースの目的を示します。以降の節では、各ブートサブシステムを詳細に説明し、例を示します。
表 10-3 x86 ブートサブシステム
ブートプロセス中は、ブートサブシステムメニューは異なるデバイスとブートオプションを表示します。システムは何回かのタイムアウトの後で応答を受け付けなくなった場合、デフォルトの設定値を使って自動的にブートを継続します。ブートサブシステムメニューが表示されるたびに、ブートプロセスを停止することができます。また、自動的に継続させることもできます。
以下の節では、各サブシステムの画面の例を示します。
デバイスを識別するフェーズでは、Configuration Assistant (構成用補助) は次の処理を実行します。
システムにインストールされているデバイスを走査する。
識別されたデバイスを表示する。
キーボードの選択やデバイスとその資源の編集などの追加作業を可能にする。
ブート中に、システムは次の処理を行います。
ブートするデバイスのリストを表示する。アスタリスク (*) が付いたデバイスがデフォルトのブートデバイスです。
自動ブートやプロパティの編集などの追加作業を可能にする。
各段階のデバイス識別の例を次に示します。デバイス出力は、各システム構成によって異なります。
Configuration Assistant がシステム上のデバイスを識別するときに、いくつかのメニューが表示されます。
このメニューは、Configuration Assistant を実行するたびに表示されます。
Solaris Device Configuration Assistant The Solaris(TM) (Intel Platform Edition) Device Configuration Assistant scans to identify system hardware, lists identified devices, and can boot the Solaris software from a specified device. This program must be used to install the Solaris operating environment, add a driver, or change the hardware on the system. > To perform a full scan to identify all system hardware, choose Continue. > To diagnose possible full scan failures, choose Specific Scan. > To add new or updated device drivers, choose Add Driver. About navigation... - The mouse cannot be used. - If the keyboard does not have function keys or they do not respond, press ESC. The legend at the bottom of the screen will change to show the ESC keys to use for navigation. - The F2 key performs the default action. F2_Continue F3_Specific Scan F4_Add Driver F6_Help |
このメニューは、Configuration Assistant が自動検出できるデバイスのハードウェア構成データを集めているときに一時的に表示されます。
Bus Enumeration Determining bus types and gathering hardware configuration data ... Please wait ... |
このメニューは、特別なドライバだけで検出できるデバイスを Configuration Assistant が手動で走査しているときに表示されます。
Scanning Devices The system is being scanned to identify system hardware. If the scanning stalls, press the system's reset button. When the system reboots, choose Specific Scan or Help. Scanning: Flpppy disk controller ####################### | | | | | | 0 20 40 60 80 100 Please wait ... |
このメニューは、システムで識別されたデバイスを表示します。このメニューからは、「Boot Solaris」メニューに移動できます。また、キーボード構成の設定、デバイスの表示や編集、シリアルコンソールの設定、構成の保存や削除など、付加的な作業も実行できます。
Identified Devices The following devices have been identified on this system. To identify devices not on this list or to modify device characteristics, such as keyboard configuration, choose Device Tasks. Platform types may be included in this list. EISA: Adaptec 1740/1742 SCSI controller EISA: Motherboard EISA: SMC EtherCard Elite32C Ethernet adapter ISA: Floppy disk controller ISA: Game port (Joy stick) ISA: PCMCIA controller ISA: Parallel port ISA: Serial port ISA: System keyboard (US-English) ISA: VGA w/ 8514/A compatible graphics adapter F2_Continue F3_Back F4_Device Tasks F6_Help |
この段階では、システムをブートする方法を指定できます。
Solaris ブートメニューからは、Solaris リリースをブートするデバイスを選択できます。また、autoboot やプロパティ設定の表示や編集など、オプションの作業も実行できます。ブートデバイスを選択し、[Continue] を選択すると、Solaris カーネルがブートを開始します。
Boot Solaris Select one of the identified devices to boot the Solaris kernel and choose Continue. To perform optional features, such as modifying the autoboot and property settings, choose Boot Tasks. An asterisk (*) indicates the current default boot device. > To make a selection use the arrow keys, and press Enter to mark it [X]. [ ] DISK: Target 0, IMPRIMIS 94241-7 0888 on Adaptec 1740/1742 SCSI controller in EISA Slot 4 [ ] CD : Target 2, TOSHIBA CD-ROM XM-3501TA 3054 on Adaptec 1740/1742 SCSI controller in EISA Slot 4 [ ] NET : SMC EtherCard Elite32C Ethernet adapter in EISA Slot 6 F2_Continue F3_Back F4_Boot Tasks F6_Help |
このメニューは、ローカルディスクから Solaris をブートするたびに表示されます。デフォルトの Solaris カーネルからブートしたい場合は、5 秒間のタイムアウトが経過するのを待ちます。別のオプションでブートしたい場合は、タイムアウト期間が経過する前に、適切なオプションを選択します。
<<< Current Boot Parameters >>> Boot path: /eisa/eha@1,4000/sd@0,0:a Boot args: Type b [file-name] [boot-flags] to boot with options or i to enter boot interpreter or to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: |
BIOS フェーズ | PC BIOS が、すべてのハードウェアデバイスの BIOS を読み込んで実行する。 |
BIOS ブートプログラムが、マスターブートレコード mboot を読み込んで実行する。 | |
ブートプログラムフェーズ | mboot が、Solaris パーティションブートプログラム pboot を読み込む。 |
pboot が一次ブートプログラム bootblk を読み込む。 | |
bootblk が、fdisk テーブルを読み込み、デフォルトのブートパーティションを探す。この時点で、「一次ブートサブシステム」メニューが表示される。 | |
bootblk が、二次ブートプログラム boot.bin または ufsboot を読み込む。ここで ESC キを押すと、「Configuration Assistant (構成用補助)」メニューを表示できる。 | |
二次ブートプログラム boot.bin または ufsboot が、/etc/bootrc スクリプトを読み込み、このスクリプトがカーネルを読み込む。ここで、Solaris ブートオプションメニューが表示される。 | |
カーネル初期設定フェーズ | カーネルが自身を初期設定し、ルート (/) ファイルシステムをマウントするのに必要なモジュールをロードする。 |
カーネルが init プロセスを起動する。 | |
init フェーズ | init プロセスが、実行制御スクリプトを起動する。 |
表 10-5 に、上記の図に示した x86 ブートプロセスについて説明します。
表 10-5 x86 ブートプロセスの説明
ブートフェーズ |
説明 |
---|---|
BIOS |
1. システムの電源をオンにすると、PC BIOS がセルフテスト診断を実行してシステムのハードウェアとメモリーを検査する。エラーが検出されなければ、システムは自動的にブートを開始する。エラーが検出されると、エラーメッセージが表示されて、復元オプションが示される。 追加のハードウェアデバイスの BIOS がここで実行される。 |
|
2. BIOS ブートプログラムが、ブートデバイス (フロッピーディスクかハードドライブ) の最初の物理セクターを読もうとする。ブートデバイス上のこの最初のディスクセクターにはマスターブートレコード mboot が格納されており、このレコードが読み込まれて実行される。mboot ファイルが見つからなかった場合は、エラーメッセージが表示される。 |
ブートプログラム |
3. mboot には、アクティブなパーティションと、Solaris ブートプログラム pboot の位置を見つけるのに必要なディスク情報が、格納されており、mboot は、pboot を読み込んで実行する。 |
4. pboot が一次ブートプログラム bootblk を読み込む。このプログラムは、ufs ファイルシステムにある二次ブートプログラムを読み込む。 |
|
5. ブート可能なパーティションが複数ある場合、bootblk は fdisk テーブルを読んでデフォルトのブートパーティションをさがし、利用可能なパーティションのメニューを表示する。ブートするパーティションを選択する際に、30 秒経過するとタイムアウトになる。これは、ブート可能なパーティションが複数ある場合にのみ発生する。 |
|
6. bootblk はルートファイルシステムで二次ブートプログラム boot.bin または ufsboot をさがし、実行する。Configuration Assistant を起動するときは、5 秒以内に自動ブートに割り込みをかける。 |
|
7. 二次ブートプログラム boot.bin または ufsboot が /etc/bootrc スクリプトを実行するコマンドインタプリタを起動する。ここでシステムのブート方法を選択するメニューが表示される。デフォルトでは、カーネルが読み込まれ、実行される。ブートオプションを指定したり、ブートインタプリンタを起動するときは、5 秒以内に行う。 |
|
カーネル初期設定 |
8. カーネルは二次ブートプログラム boot.bin または ufsboot を使用してファイルを読み取り、カーネル自身を初期化して、モジュールの読み込みを開始する。ルートファイルシステムをマウントするのに十分なモジュールをカーネルが読み込むと、二次ブートプログラムのマッピングを解除し、それ自身の資源を使用してブートを継続する。 |
9.カーネルはユーザープロセスを作成し、/sbin/init プロセスを起動する。このプロセスは /etc/inittab ファイルを読み込んで他のプロセスを起動する。 |
|
init |
10. /sbin/init プロセスは実行制御 (rc) スクリプトを開始し、このスクリプトが一連の他のスクリプトを実行する。それらのスクリプト (/sbin/rc*) はファイルシステムを検査、マウントし、さまざまなプロセスを実行して、システム保守作業を実行する。 |