Solaris のシステム管理 (第 1 巻)

x86 システムのブート

表 9-1 に、この章で説明するブート方法の要約を示します。

表 9-1 x86: ブート方法の説明

システムのブート方法 

このブート方法が必要な場合 

参照先 

実行レベル 3 (マルチユーザー状態) 

システムを停止するか、またなんらかのシステムハードウェアの保守作業を行なった後。これはデフォルトのブートレベルで、すべての資源が利用でき、そしてユーザーがシステムにログインすることができる。 

「x86: 例 - システムを実行レベル 3 (マルチユーザー状態) にする」

実行レベル S (シングルユーザー状態) 

ファイルシステムのバックアップなどのなんらかのシステム保守作業を行なった後。このレベルでは、一部のファイルシステムだけがマウントされ、ユーザーはシステムにログインできない。 

「x86: 例 - システムを実行レベル S (シングルユーザー状態) にする」

対話式でブート 

テストのために、システムファイルまたはカーネルを一時的に変更した後。この形式のブートを使えば、システムファイルまたはカーネルに問題がある場合、プロンプトが表示されたときに、これらのファイルに対して別のパス名を指定すれば簡単に復元できる。他のシステムプロンプトにデフォルトの設定を使う。 

「x86: 例 - システムを対話式でブートする」

ローカル CD-ROM またはネットワークからブートして復元する 

システムの正常なブートを妨げている重要なシステムファイルを修復する。また、この形式のブートは、オペレーティングシステムの新しいリリースをインストール (またはアップグレード) するのにも使用する。 

「x86: 例 - システムを復元する目的でブートする」

kadb を使ってブート

オペレーティングシステムのコアダンプを保存して、システムの障害を追跡する場合。 

「x86: クラッシュダンプを強制して、システムをリブートする方法」

次に、リセットボタンを使ってシステムを再起動する手順を示します。システムにリセットボタンがない場合は、電源のオン・オフスイッチを使ってシステムを再起動します。システムの状態によっては Control-Alt-Del キーを使って、システムの動作に割り込むことができます。

x86: システムを実行レベル 3 (マルチユーザー状態) にする方法

  1. Type any key to continue プロンプトが表示された場合は、任意のキーを押してシステムをリブートするか、リセットボタンを押してシステムを再起動します。システムがシャットダウンしている場合は、電源スイッチを押してシステムを再起動します。

    「Current Boot Pramaters」メニューが、数分後に表示されます。

  2. システムを実行レベル 3 にするには、b を入力します。Return キーを押してください。

    5 秒以内に選択しないと、システムは自動的に実行レベル 3 になります。

  3. システムが実行レベル 3 になっていることを確認します。

    ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。


    hostname console login:

x86: 例 - システムを実行レベル 3 (マルチユーザー状態) にする


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:

x86: システムを実行レベル S (シングルユーザー状態) にする方法

  1. Type any key to continue プロンプトが表示された場合は、どれかキーを押してシステムをリブートします。このプロンプトが表示されているときは、リセットボタンを押すこともできます。システムがシャットダウンしている場合は、電源スイッチを使用してシステムの電源を入れます。

    数分後、「Current Boot Parameters」メニューが表示されます。

  2. b -s と入力し、システムを実行レベル S でブートします。Return キーを押します。

    5 秒以内に選択しないと、システムは自動的に実行レベル 3 でブートします。

  3. プロンプトが表示されたら、スーパーユーザーのパスワードを入力します。

  4. who -r を使用して、システムが実行レベル S になっていることを確認します。


    # who -r
       .         run-level S  Nov 10 13:59     S    0  3
  5. 実行レベルを S に移行して行う必要がある保守作業を行います。

  6. システムを実行レベル 3 に戻すには、Control-d を押します。

x86: 例 - システムを実行レベル S (シングルユーザー状態) にする


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 を押す

x86: システムを対話式でブートする方法

  1. Type any key to continue プロンプトが表示されているときは、任意のキーを押してリブートするか、リセットボタンを押してシステムを再起動します。システムがシャットダウンしているときは、電源スイッチを押してシステムをリブートします。

    「Current Boot Parameters」メニューが、数分後に表示されます。

  2. b -a と入力して、システムを対話式でブートします。

    5 秒以内に選択しないと、システムは自動的に実行レベル 3 でブートします。

  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 のデフォルトの物理名を使う。

x86: 例 - システムを対話式でブートする

デフォルトを選択 ([]で囲まれています) した例を示します。


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:

x86: システムを復元するためにブートする方法

システムの復元を目的としたブート例として、無効な /etc/passwd ファイルを復元する方法について説明します。

以下の手順では、認識された devicename 変数を修復するためにファイルシステムのデバイス名に置き換えます。システムのデバイス名については、第 20 章「デバイスへのアクセス」を参照してください。

Solaris インストール CD またはネットワークのどちらからブートしているかによって、対応する手順に従ってください。

  1. Solaris インストール CD (またはネットワーク) から、手順 a から f に従ってシングルユーザーモードでブートします。

    ネットワークからブートしている場合は、手順 a と b を省略します。

    1. Solaris インストール CD を CD キャディに挿入します。

    2. CD キャディを CD-ROM ドライブに挿入します。

    3. (省略可能) ブート元のディスクに Intel 版 Solaris 2.6 またはその互換バージョンが含まれていない場合、フロッピーディスクドライブ (DOS ドライブ A) に Configuration Assistant/Boot (構成用補助) フロッピーディスクを挿入します。

    4. Type any key to continue プロンプトが表示されている場合は、どれかキーを押してシステムをリブートします。このプロンプトが表示されているときは、リセットボタンを押すこともできます。システムがシャットダウンしている場合は、電源スイッチを使用してシステムの電源を入れます。

    5. 「Solaris Device Configuration Assistant」画面で、F2 キー (F2_Continue) を押します。

      デバイスが識別され、識別されたデバイスを示す画面が表示されます。

    6. 「Identified Devices」画面で、F2 キー (F2_Continue) を押します。

      ブート可能なドライバが読み込まれます。

    7. 「Boot Solaris」画面から CD または NET をブートデバイスとして選択します。次に F2 キー (F2_Continue) を押します。

      「Current Boot Parameters」メニューが表示されます。

    8. Select type of installation: プロンプトで b -s と入力します。

      数分後に、シングルユーザーモードの # プロンプトが表示されます。

  2. 無効な passwd ファイルがあるルート (/) ファイルシステムをマウントします。


    # mount /dev/dsk/devicename /a
    
  3. 新しくマウントした etc ディレクトリに移動します。


    # cd /a/etc
    
  4. 端末タイプを設定します。


    # TERM=AT386
    # export TERM
    
  5. 必要に応じて、エディタを使って passwd ファイルに必要な変更を加えます。


    # vi passwd
    
  6. ルート (/) ディレクトリに移動します。


    # cd /
    
  7. /a ディレクトリのマウントを解除します。


    # umount /a
    
  8. システムをリブートします。


    # init 6
    
  9. システムが実行レベル 3 でブートしたことを確認します。

    ブートプロセスが正常に終了すると、ログイン画面かログインプロンプトが表示されます。


    hostname console login:

x86: 例 - システムを復元する目的でブートする


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

x86: 復元を目的としてシステムを停止する方法

可能であれば、次のコマンドのどちらかを使用してシステムを停止してみます。

マウスまたはキーボードからの入力にシステムが応答しない場合、リセットキーがあればそのキーを押してシステムをリブートします。あるいは、電源スイッチを使用してシステムをリブートします。

x86: クラッシュダンプを強制してシステムをリブートする

問題に対処するために、オペレーティングシステムのコアダンプを保存しておく必要があります。

savecore 機能とその設定方法については、『Solaris のシステム管理 (第 2 巻)』の「システムクラッシュ情報の生成と保存」で説明しています。この節では、savecore 機能が有効な場合に、システムをリブートする方法だけを説明します。

x86: クラッシュダンプを強制して、システムをリブートする方法

kadb[0]: プロンプトを表示して、クラッシュダンプを強制するには、カーネルデバッガオプション kadb を指定してシステムをブートします。


x86 のみ -

カーネルデバッガ kadb に入るにはテキストモードでなければなりません。したがって、まずウィンドウシステム (CDE または OpenWindows) を終了してください。


  1. Control-Alt-d を押します。


    kadb[0]:

    kadb[0]: プロンプトが表示されます。

  2. 次のコマンドを 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 を入力し、クラッシュダンプを強制して、システムをリブートします。

    クラッシュダンプがディスクに書き込まれた後、システムはリブートします。

  3. コンソールログインプロンプトでログインして、システムがリブートされていることを確認します。