Thursday, March 4, 2010

Booting the Failsafe Archive on a SPARC Based System

Booting the Failsafe Archive on a SPARC Based SystemBooting a system from a root (/) file system image that is a boot archive, and then remounting this file system on the actual root device can sometimes result in a boot archive and root file system that do not match, or are inconsistent. Under these conditions, the proper operation and integrity of the system is compromised. After the root (/) file system is mounted, and before relinquishing the in-memory file system, the system performs a consistency verification against the two files systems. If an inconsistency is detected, the normal boot sequence is suspended and the system reverts to failsafe mode.
Also, if a system failure, a power failure, or a kernel panic occurs immediately following a kernel file update, the boot archives and the root (/) file system might not be synchronized. Although the system might still boot with the inconsistent boot archives, it is recommended that you boot the failsafe archive to update the boot archives. You can also use the bootadm command to manually update the boot archives. For more information, see Using the bootadm Command to Manage the Boot Archives.
The failsafe archive can be booted for recovery purposes or to update the boot archive on both the SPARC and x86 platforms.
On the SPARC platform the failsafe archive is:
/platform/`uname -m`/failsafe
You would boot the failsafe archive by using the following syntax:

ok boot -F failsafe


Failsafe booting is also supported on systems that are booted from ZFS. When booting from a ZFS-rooted BE, each BE has its own failsafe archive. The failsafe archive is located where the root (/) file system is located, as is the case with a UFS-rooted BE. The default failsafe archive is the archive that is in the default bootable file system. The default bootable file system (dataset) is indicated by the value of the pool's bootfs property.

For information about booting an x86 based failsafe archive, see Booting the Failsafe Archive on an x86 Based System.

Another method that can be used to update the boot archives is to clear the boot-archive service. However, the preferred methods for updating the boot archives are to boot the failsafe archive or use the bootadm command. For more information, see How to Update an Inconsistent Boot Archive by Clearing the boot-archive Service.

How to Boot the Failsafe Archive on a SPARC Based SystemUse this procedure to boot the failsafe archive on a SPARC based system. If the system does not boot after the boot archive is updated, you might need to boot the system in single-user mode. For more information, see SPARC: How to Boot a System to Run Level S (Single-User Level).

--------------------------------------------------------------------------------
Note – This procedures also includes instructions for booting the failsafe archive for a specific ZFS dataset.
--------------------------------------------------------------------------------

Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
Bring the system to the ok prompt:

# init 0

Boot the failsafe archive.
To boot the default failsafe archive, type:

ok boot -F failsafe

To boot the failsafe archive of a specific ZFS dataset:

ok boot -F failsafe -Z dataset

For example:

ok boot -F failsafe -Z rpool/ROOT/zfsBE2
--------------------------------------------------------------------------------
Note – To determine the name of the dataset to boot, first use the boot -L command to display a list of the available BEs on the system. For more information, see SPARC: How to List Available Bootable Datasets Within a ZFS Root Pool.
--------------------------------------------------------------------------------
If an inconsistent boot archive is detected a message is displayed.
To update the boot archive, type y and press Return.

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

The boot archive on rpool was updated successfully.
--------------------------------------------------------------------------------
Example 12–7 SPARC: Booting the Failsafe Archive
This example shows how to boot the failsafe archive on a SPARC based system. If no device is specified, the failsafe archive for the default boot device is booted.

ok boot -F failsafeResetting ...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 KeyboardOpenBoot 3.23, 1024 MB memory installed, Serial #13116682.Ethernet address 8:0:20:c8:25:a, Host ID: 80c8250a.
Rebooting with command: boot -F failsafeBoot device: /pci@1f,4000/scsi@3/disk@1,0:a File and args: -F failsafeSunOS Release 5.10tCopyright 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 andshould 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,?] nStarting shell.#
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Example 12–8 SPARC: Booting the Failsafe Archive for a Specified ZFS Dataset
This example shows how to boot the failsafe archive of a ZFS dataset. Note that the boot -L command is first used to display a list of available boot environments. This command must be run at the ok prompt.

ok boot -LRebooting with command: boot -L Boot device: /pci@1f,4000/scsi@3/disk@1,0 File and args: -L1 zfsBE2Select environment to boot: [ 1 - 1 ]: 1
To boot the selected entry, invoke:boot [] -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 KeyboardOpenBoot 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/zfsBE2Boot device: /pci@1f,4000/scsi@3/disk@1,0 File and args: -F failsafe -Z rpool/ROOT/zfsBE2SunOS Release 5.10Copyright 1983-2008 Sun Microsystems, Inc. All rights reserved.Use is subject to license terms.Configuring /devSearching for installed OS instances...
ROOT/zfsBE2 was found on rpool.Do you wish to have it mounted read-write on /a? [y,n,?] ymounting rpool on /a
Starting shell.# # # # zpool listNAME SIZE USED AVAIL CAP HEALTH ALTROOTrpool 16.8G 6.26G 10.5G 37% ONLINE /a# # zpool status pool: rpool state: ONLINE scrub: none requestedconfig:
NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c0t1d0s0 ONLINE 0 0 0
errors: No known data errors# # df -hFilesystem size used avail capacity Mounted on/ramdisk-root:a 163M 153M 0K 100% //devices 0K 0K 0K 0% /devices/dev 0K 0K 0K 0% /devctfs 0K 0K 0K 0% /system/contractproc 0K 0K 0K 0% /procmnttab 0K 0K 0K 0% /etc/mnttabswap 601M 344K 601M 1% /etc/svc/volatileobjfs 0K 0K 0K 0% /system/objectsharefs 0K 0K 0K 0% /etc/dfs/sharetabswap 602M 1.4M 601M 1% /tmp/tmp/root/etc 602M 1.4M 601M 1% /.tmp_proto/root/etcfd 0K 0K 0K 0% /dev/fdrpool/ROOT/zfsBE2 16G 5.7G 9.8G 37% /arpool/export 16G 20K 9.8G 1% /a/exportrpool/export/home 16G 18K 9.8G 1% /a/export/homerpool

No comments: