Solaris のシステム管理 (基本編)

SPARC システムをフェイルセーフモードでブートする

ブートアーカイブであるルートファイルシステムイメージからシステムをブートし、そのあとでこのファイルシステムを実際のルートデバイスに再マウントすると、ブートアーカイブとルートファイルシステムが一致しなかったり、「矛盾」していたりすることがあります。 このような状況では、システムの適切な処理や完全性が損なわれます。システムでは、ルート (/) ファイルシステムがマウントされると、メモリー内のファイルシステムを放棄する前に、2 つのファイルシステムを照合して整合性検査を行います。不一致が検出されると、通常のブートシーケンスが中断され、システムは「フェイルセーフモード」に戻ります。

カーネルファイルの更新の直後に、システム障害、電源障害、またはカーネルパニックが発生した場合も、ブートアーカイブとルートファイルシステムが同期していない可能性があります。矛盾したブートアーカイブを使用してシステムが引き続きブートする場合でも、フェイルセーフアーカイブをブートしてブートアーカイブを更新することをお勧めします。bootadm コマンドを使用してブートアーカイブを手動で更新することもできます。詳細は、bootadm コマンドを使用してブートアーカイブを管理する」を参照してください。

復旧やブートアーカイブの更新を行う目的で、フェイルセーフアーカイブをブートできます。

SPARC プラットフォームでは、フェイルセーフアーカイブは次のとおりです。

/platform/`uname -m`/failsafe

次の構文を使用してフェイルセーフアーカイブをブートします。


ok boot  -F failsafe

フェイルセーフブートは、Oracle Solaris ZFS からブートされるシステムでもサポートされます。ZFS をルートとした BE からブートするときは、各 BE に独自のフェイルセーフアーカイブが用意されています。フェイルセーフアーカイブは、UFS をルートとした BE と同様に、ルートファイルシステムが置かれている場所にあります。デフォルトのフェイルセーフアーカイブは、デフォルトのブート可能ファイルシステムにあるアーカイブです。デフォルトのブート可能ファイルシステム (データセット) は、プールの bootfs プロパティーの値で示されます。

x86 ベースのフェイルセーフアーカイブのブートについては、「x86 システムをフェイルセーフモードでブートする」を参照してください。

自動ブートアーカイブ障害の消去方法については、「x86: auto-reboot-safe プロパティーを使用して自動ブートアーカイブ更新障害を消去する方法」を参照してください。

ProcedureSPARC システムをフェイルセーフモードでブートする方法

次の手順は、ブートアーカイブを更新するために SPARC システムをフェイルセーフモードでブートする方法を示しています。ブートアーカイブが更新されたあとでシステムがブートしない場合は、シングルユーザーモードでシステムをブートする必要がある場合があります。詳細は、「SPARC: システムを実行レベル S (シングルユーザーレベル) でブートする方法」を参照してください。


注 –

次の手順では、特定の ZFS データセットをフェイルセーフモードでブートする方法も示します


  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. システムを ok プロンプトにします。


    # init 0
    
  3. フェイルセーフアーカイブをブートします。

    • デフォルトのフェイルセーフアーカイブをブートするには、次のように入力します。


      ok boot -F failsafe
      
    • 特定の ZFS データセットのフェイルセーフアーカイブをブートするには、次のように入力します。


      ok boot -F failsafe -Z dataset
      

      次に例を示します。


      ok  boot -F failsafe -Z rpool/ROOT/zfsBE2
      

      注 –

      ブートするデータセットの名前を調べるには、最初に boot -L コマンドを使用して、システム上の使用可能な BE のリストを表示します。詳細は、「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」を参照してください。


    矛盾したブートアーカイブが検出されると、メッセージが表示されます。

  4. ブートアーカイブを更新するには、y と入力して Return キーを押します。


    An out of sync boot archive was detected on rpool.
    The boot archive is a cache of files used during boot
    and should be kept in sync to ensure proper system operation.
    
    Do you wish to automatically update this boot archive? [y,n,?] y
    

    アーカイブが正常に更新されると、メッセージが表示されます。


    The boot archive on rpool was updated successfully.

例 12–7 SPARC: システムをフェイルセーフモードでブートする

次の例は、SPARC システムをフェイルセーフモードでブートする方法を示しています。デバイスを指定しない場合は、デフォルトのブートデバイスのフェイルセーフアーカイブがブートされます。


ok boot -F failsafe
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 -F failsafe
Boot device: /pci@1f,4000/scsi@3/disk@1,0:a  File and args: -F failsafe
SunOS Release 5.10t
Copyright 1983-2007 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring /dev Searching for installed OS instances...

An out of sync boot archive was detected on /dev/dsk/c0t1d0s0.
The boot archive is a cache of files used during boot and
should be kept in syncto ensure proper system operation.

Do you wish to automatically update this boot archive? [y,n,?] y 
Updating boot archive on /dev/dsk/c0t1d0s0.
The boot archive on /dev/dsk/c0t1d0s0 was updated successfully.

Solaris 5.10 was found on /dev/dsk/c0t1d0s0.
Do you wish to have it mounted read-write on /a? [y,n,?] n
Starting shell.
#


例 12–8 SPARC: 指定した ZFS データセットをフェイルセーフモードでブートする

この例は、ZFS データセットをフェイルセーフモードでブートする方法を示しています。最初に boot -L コマンドを使用して、使用可能なブート環境のリストを表示します。このコマンドは、ok プロンプトで実行する必要があります。


ok boot -L
Rebooting with command: boot -L                                       
Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: -L
1 zfsBE2
Select environment to boot: [ 1 - 1 ]: 1

To boot the selected entry, invoke:
boot [<root-device>] -Z rpool/ROOT/zfsBE2

Program terminated
{0} ok 





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.



                                                                      
{0} ok  boot -F failsafe -Z rpool/ROOT/zfsBE2
Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: -F failsafe -Z 
rpool/ROOT/zfsBE2
SunOS Release 5.10
Copyright 1983-2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Configuring /dev
Searching for installed OS instances...

ROOT/zfsBE2 was found on rpool.
Do you wish to have it mounted read-write on /a? [y,n,?] y
mounting rpool on /a

Starting shell.
# 
# 
# 
# zpool list
NAME    SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
rpool  16.8G  6.26G  10.5G    37%  ONLINE  /a
# 
# zpool status
  pool: rpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c0t1d0s0  ONLINE       0     0     0

errors: No known data errors
# 
# df -h
Filesystem             size   used  avail capacity  Mounted on
/ramdisk-root:a        163M   153M     0K   100%    /
/devices                 0K     0K     0K     0%    /devices
/dev                     0K     0K     0K     0%    /dev
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   601M   344K   601M     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
swap                   602M   1.4M   601M     1%    /tmp
/tmp/root/etc          602M   1.4M   601M     1%    /.tmp_proto/root/etc
fd                       0K     0K     0K     0%    /dev/fd
rpool/ROOT/zfsBE2       16G   5.7G   9.8G    37%    /a
rpool/export            16G    20K   9.8G     1%    /a/export
rpool/export/home       16G    18K   9.8G     1%    /a/export/home
rpool                   16G    63K   9.8G     1%    /a/rpool