ブートアーカイブであるルートファイルシステムイメージからシステムをブートし、そのあとでこのファイルシステムを実際のルートデバイスに再マウントすると、ブートアーカイブとルートファイルシステムが一致しなかったり、「矛盾」していたりすることがあります。 このような状況では、システムの適切な処理や完全性が損なわれます。システムでは、ルート (/) ファイルシステムがマウントされると、メモリー内のファイルシステムを放棄する前に、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 プロパティーを使用して自動ブートアーカイブ更新障害を消去する方法」を参照してください。
次の手順は、ブートアーカイブを更新するために SPARC システムをフェイルセーフモードでブートする方法を示しています。ブートアーカイブが更新されたあとでシステムがブートしない場合は、シングルユーザーモードでシステムをブートする必要がある場合があります。詳細は、「SPARC: システムを実行レベル S (シングルユーザーレベル) でブートする方法」を参照してください。
次の手順では、特定の ZFS データセットをフェイルセーフモードでブートする方法も示します
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
システムを ok プロンプトにします。
# init 0 |
フェイルセーフアーカイブをブートします。
デフォルトのフェイルセーフアーカイブをブートするには、次のように入力します。
ok boot -F failsafe |
特定の ZFS データセットのフェイルセーフアーカイブをブートするには、次のように入力します。
ok boot -F failsafe -Z dataset |
次に例を示します。
ok boot -F failsafe -Z rpool/ROOT/zfsBE2 |
ブートするデータセットの名前を調べるには、最初に boot -L コマンドを使用して、システム上の使用可能な BE のリストを表示します。詳細は、「SPARC: ZFS ルートプール内の使用可能なブート可能データセットのリストを表示する方法」を参照してください。
矛盾したブートアーカイブが検出されると、メッセージが表示されます。
ブートアーカイブを更新するには、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. |
次の例は、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. # |
この例は、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
|