Hardware Diagnostics for Oracle Sun systems, A Toolkit for System Administrators

The easiest way to diagnose the hardware related problem on Oracle Sun server is by using of OBP OK Prompt commands, the Power On Self Test (POST), and the status LEDs on system boards.

ou can diagnose hardware related problems on Oracle Sun server and desktop products. With these low-level diagnostics, you can establish the state of the system and attached devices. For example, you can determine if a device is recognized by the system and working properly, or you can also obtain useful system configuration information.

OBP DIAGNOSTIC COMMANDS AND TOOLS
OBP is a powerful, low-level interface to the system and devices attached to the system (OBP is also known as the ok prompt). By entering simple OBP commands, you can learn system configuration details such as the ethernet address, the CPU and bus speeds, installed memory, and so on. Using OBP, you can also query and set system parameter values such as the default boot device, run tests on devices such as the network interface, and display the SCSI and SBUS devices attached to the system.

Below are the available commands in OBP OK prompt:
—————————-
banner
Displays the power on banner. The banner includes information such as CPU speed, OBP revision, total system memory, ethernet address and hostid.

devalias alias path
Defines a new device alias, where alias is the new alias name and path is the physical path of the device. If devalias is used without arguments, it displays all system device aliases (will run up to 120 MHz).

.enet-addr
Displays the ethernet address

led-off/led-on
Turns the system led off or on.

nvaliasname path
Creates a new alias for a device, where name is the name of the alias and path is the physical path of the device. Note – Run the reset-all or the nvstore command to save the new alias in non-volatile memory (NVRAM).

nvunalias name path
Deletes a user-created alias (see nvalias), where name is the name of the alias and path is the physical path of the device. Note – Run the reset-all or nvstore command to save changes in NVRAM.

nvstore
Copies the contents of the temporary buffer to NVRAM and discards the contents of the temporary buffer.

power-off/power-on
Powers the system off or on.

printenv
Displays all parameters, settings, and values

probe-fcal-all
dentifies Fiber Channel Arbitrated Loop (FCAL) devices on a system. 1

probe-sbus
Identifies devices attached to all SBUS slots. Note – This command works only on systems with SBUS slots.

probe-scsi
Identifies devices attached to the onboard SCSI bus. 1

probe-scsi-all
Identifies devices attached to all SCSI busses. 1

set-default parameter
Resets the value of parameter to the default setting.

set-defaults
Resets the value of all parameters to the default settings. Tip – You can also press the Stop and N keys simultaneously during system power-up to reset the values to their defaults.

setenv parameter value
Sets parameter to specified value. Note – Run the reset-all command to save changes in NVRAM.

show-devs
Displays all the devices recognized by the system.

show-disks
Displays the physical device path for disk controllers.

show-displays
Displays the physical device path for frame buffers.

show-nets
Displays the physical device path for network interfaces

show-post-results
If run after Power On Self Test (POST) is completed, this command displays the findings of POST in a readable format.

show-sbus
Displays devices attached to all SBUS slots. Similar to probe-sbus .

show-tapes
Displays the physical device path for tape controllers.

sifting string
Searches for OBP commands or methods that contain string. For example, the sifting probe command displays probe-scsi, probe-scsi-all, probe-sbus, and so on.

speed
Displays CPU and bus speeds

test device-specifier
Executes the selftest method for device-specifier. For example, the test net command tests the network connection.

test-all
Tests all devices that have a built-in test method.

version
Displays OBP and POST version information.

watch-clock
Tests a clock function.

watch-net
Monitors the network connection for the primary interface.

watch-net-all
Monitors all the network connections.

words
Displays all OBP commands and methods

—————————-

OBDIAG
OBDiag also displays diagnostic and error messages on the system console.

How To Run OBDiag
To run OBDiag, simply type obdiag at the Open Boot ok prompt.
You can also set up OBDiag to run automatically when the system is powered on using the following methods:

Set the OBP diagnostics variable:   ok setenv diag-switch  true
Press the Stop and D keys simultaneously while you power on the system.
On Ultra Enterprise servers, turn the key switch to the diagnostics position and power on the system.

POWER ON SELF TEST (POST)
POST is a program that resides in the firmware of each board in a system, and it is used to initialize, configure, and test the system boards. POST output is sent to serial port A (on an Ultra Enterprise server, POST output is sent only to serial port A on the system and clock board). The status LEDs of each system board on Ultra Enterprise servers indicate the POST completion status. For example, if a system board fails the POST test, the amber LED stays lit.
You can watch POST ouput in real-time by attaching a terminal device to serial port A. If none is available, you can use the OBP command show-post-results to view the results after POST completes.

How To Run POST
– connect to serial port
– set the dig-switch to ‘true’
ok setenv diag-switch  true
– Set the desired testing level (min or max), example:
ok setenv diag-level max
– Set the auto-boot variable to ‘false’
ok setenv auto-boot  false
– run ‘reset-all’ >> ok reset-all
– Reboot or Power cycle the system

SOLARIS OPERATING ENVIRONMENT DIAGNOSTIC COMMANDS
The following table describes OS commands you can use to display the system configuration, such as failed Field Replaceable Units (FRU), hardware revision information, installed patches, and so on

/usr/platform/sun4u/sbin/prtdiag -v
Displays system configuration and diagnostic information, and lists any failed Field Replaceable Units (FRU).

/usr/bin/showrev [-p]
Displays revision information for the current hardware and software. When used with the -p option, displays installed patches.

/usr/sbin/prtconf
Displays system configuration information.

/usr/sbin/psrinfo -v
Displays CPU information, including clock speed.

###########
ref# Doc ID 1005946.1

How to Change and Configure Solaris 11 IP Address

Before changing the Solaris 11 IP address, please read on how the network is configured in Oracle Solaris 11

Oracle Solaris 11 uses profile-based network configuration, which is comprised of two network configuration modes: manual (fixed) and automatic (reactive). Depending on which network configuration mode you choose during an installation, either the DefaultFixed network configuration profile (NCP) or the Automatic NCP is activated on the system. If the DefaultFixed NCP is active, the network is manually configured by using the dladm and ipadm commands . If the Automatic NCP or a user-defined, automatic NCP that you previously created is active, the netcfg and netadm commands (formerly nwamcfg and nwamadm) are used to create and manage network configuration.

more detail, go to this page:

http://docs.oracle.com/cd/E23824_01/html/E24456/glhbr.html

To change the IPv4 static IP address, use below prefix:
ipadm delete-addr <interface>/v4
ipadm create-addr -T static -a <ip_address>/<subnet> <interface>/v4

[exp. changing below “net0” ip address to 192.168.10.2:
solaris_11_ip1

 

 

# ipadm delete-addr net0/v4
# ipadm create-addr -T static -a 192.168.10.2/24 net0/v4
# ipadm show-addr

*If you want to delete the interface first and then put the new ip address, run below 2 commands:

# ipadm delete-ip net0
# ipadm create-ip net0

*then

# ipadm create-addr -T static -a 192.168.10.2/24 net0/v4

[Configure an interface with DHCP:

# ipadm delete-addr net0
# ipadm create-addr -T dhcp net0/v4

Manually Configuring the Default Route for a System:
route -p add default <ip-address>

How to Upload Files to Oracle Support

As an old Sun/Oracle upload file method has been discontinued, below are the several method on how to upload files to Oracle Support based on file size.

mos_attach

  • FTPS & HTTPS to MOS File Upload service – 200 GB max

sftp_mos

  1.     Set “ftps://transport.oracle.com” as the Host
  2.     Supply the appropriate credentials (MOS Support Portal username and password)
  3.     Leave the Port setting blank
  4.     After connecting, double-click on the Issue directory in the right (Remote) pane
  5.     Double-click the SR number’s directory in the right (Remote) pane
  6.     Locate the file to be transferred in the left (Local) pane
  7.     Drag-and-drop the file into the relevant SR directory
  • Diagnostic Assistant (DA), using MOS file utilities – 200 GB max

Diagnostic Assistant (DA)

DA 2.2 (included w/RDA/Explorer/STB 8.02) now supports uploads via https to MOS File Upload Service. Use DA via menus,explorer or the command line.

Menu

  1. Run diagnostic assistant menu:
  2. /<linux/solaris rda home>/da/da.sh menu or <win rda home>dada.cmd menuDiagnosticAssistance
  3. Start with option 3: RDA, OCM,ADR, SR Creation / Packaging, and MOS ToolsDiagnosticAssistant
  4. Next select option 4: Package, Upload Diagnostic FilesDiagnosticAssistanct
  5. Complete it with option 7: Upload File Package to SRDiagnosticAssistant
  6. You will be prompted for your SR, credentials and the file.

 

To use DA do a command line upload:

da.sh upload -p sr=<SR Number>file=path=<path to file>

To use DA to upload with explorer

explorer -w default -T DA -SR <Service Request number>

NOTE: If SR Number is not specified, the file will be uploaded to transport.oracle.com/upload/proactive/

  • Secure File Transport (SFT), part of ASR Manager – 200 GB max

# /opt/SUNWsasm/bin/sasm transport -r
Enter “1” to select:
1) transport.oracle.com
Or, enter:
https://tranport.oracle.com

  • FTP, including SFTP, is not supported

*Reference: Doc ID 1547088.2 and Doc ID 1596914.1

How to Analyze Solaris Crash Dump

Did your Solaris OS suddenly crashed, hang and rebooted by it self for no reason? After initial checking no amber light found on or HW faulty on the server ? its time to check the crash dump log file.

If your system properly installed and configured, the moment system crash, it will save all data on the memory to specific file so call crash dump log file. Check your dump log file location with “dumpadm” command. Usually, its located at: /var/crash/<server_hostname>/, file name: vmdump.0

What we need to do is to read and analyze this most important file. Unfortunately, this dump log file can’t be read manually, its required special package: SUNWscat – Oracle Solaris Crash Analysis Tool.

Download and install SUNWscat – Solaris Crash Analyzer Tool

The latest version Oracle Solaris Crash Analysis Tool is version 5.5, this patches are available on MOS, and can be found by searching on the patchIDs 21099218 (Combined package supporting SPARC and X86/X64) and 21099215 (platform specific packages).

Go to MOS: https://support.oracle.com and login, Click on tab entitled Patches and Updates at top, Enter 21099218 and 21099215 for patch numbers.

————

[Install the package:

root@solaris10 # ls
p21099218_55000_Generic.zip
root@solaris10 # unzip p21099218_55000_Generic.zip
Archive: p21099218_55000_Generic.zip
inflating: Readme.txt
inflating: SUNWscat5.5-GA-combined.pkg.gz
root@solaris10 #
root@solaris10 # gunzip SUNWscat5.5-GA-combined.pkg.gz
root@solaris10 #
root@solaris10 # ls
Readme.txt SUNWscat5.5-GA-combined.pkg p21099218_55000_Generic.zip
root@solaris10 # pkgadd -d SUNWscat5.5-GA-combined.pkg

The following packages are available:
1 SUNWscat Oracle Solaris Crash Analysis Tool (5.5 GA)
(any) 5.5

Select package(s) you wish to process (or ‘all’ to process
all packages). (default: all) [?,??,q]: all

Processing package instance <SUNWscat> from </export/home/SCAT/SUNWscat5.5-GA-combined.pkg>
….
….
Installation of <SUNWscat> was successful.

[decompress the crash dump log file:
root@solaris10 # savecore -vf vmdump.0
savecore: System dump time: Mon Aug 10 05:43:52 2015

savecore: saving system crash dump in /opt/crash/solaris10/{unix,vmcore}.0
Constructing namelist /opt/crash/solaris10/unix.0
Constructing corefile /opt/crash/solaris10/vmcore.0
1:15 100% done: 341483 of 341483 pages saved
48444 (14%) zero pages were not written
1:16 dump decompress is done
root@solaris10 #

[Let start analyze the log:
root@solaris10 # cd /opt/crash/solaris10/
root@solaris10 # /opt/SUNWscat/bin/scat vmcore.0

Oracle Solaris Crash Analysis Tool
Version 5.5 for Oracle Solaris 10 64-bit UltraSPARC

Copyright (c) 1989, 2015, Oracle and/or its affiliates. All rights reserved.

Please note: Do not submit any health, payment card or other sensitive
production data that requires protections greater than those specified in
the Oracle GCS Security Practices. Information on how to remove data from
your submission is available at:
https://support.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1227943.1

For support, please use the Oracle Solaris kernel community at
https://community.oracle.com/community/support/oracle_sun_technologies/
Select “Subspaces” and then “Oracle Solaris Performance, Panics,
Hangs, and Dtrace”.
Further information may be found at https://blogs.oracle.com/SolarisCAT/

opening unix.0 vmcore.0 …dumphdr…symtab…maps…done
loading crashdump data: modules…CTF…globals…done

crash file: /opt/crash/solaris10/vmcore.0
user: Super-User (root:0)
release: 5.10 (64-bit)
version: Generic_144488-06
machine: sun4v
node name: XXXX
domain: default.solaris10.com
hw_provider: Sun_Microsystems
system type: SUNW,Netra-T5440 (UltraSPARC-T2+)
hostid: XXXXXXXX


disks…done

[run ‘analyze’:

CAT(vmcore.0/10V)> analyze

crash file: /opt/crash/solaris10/vmcore.0
user: Super-User (root:0)
release: 5.10 (64-bit)
version: Generic_144488-06
machine: sun4v
node name: XXX
domain: default.server.com
hw_provider: Sun_Microsystems
system type: SUNW,Netra-T5440 (UltraSPARC-T2+)
hostid: xxxxxxxx
dump_conflags: 0x10000 (DUMP_KERNEL) on /dev/dsk/c1t0d0s1(8G)
time of crash: Mon Aug 10 05:43:01 WIT 2015
age of system: 37 days 19 hours 54 minutes 4 seconds
panic CPU: 96 (96 CPUs, 15.7G memory, 2 nodes)
panic string: xt_sync: timeout
==== panic thread: 0x300c2653200 ==== CPU: 96 ====
==== panic user (LWP_SYS) thread: 0x300c2653200 PID: 22900 on CPU: 96 ====
cmd: /bin/sh /opt/scripts/xxxxxxx Called from script ‘/opt/scrips’    >>>>THE ROOT CAUSE OF CRASH/HUNG
t_procp: 0x60024f870b0
p_as: 0x6003a631c18 size: 1769472 RSS: 1482752

….
— switch to user thread’s user stack —

——————-

‘analyze’ is just one of initial investigation command, type help for other commands:

CAT(vmcore.0/10V)> help
CAT(vmcore.0/10V)>

HowTo Install redhat package with YUM command without RHN

I think it’s not too late to play with Redhat Enterprise Server :-). Need a kind of a distraction from Solaris, and other Ora** HW/SW product.. hahaha.

I just install RHEL version 6.4. trying to use yum command to install rpm-build package, but it showing below error messages:

[root@redhat64 ~]# yum install rpm-build
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Install Process
No package rpm-build available.
Error: Nothing to do

By default, if you check with “yum repolist all” command, there are 2 repo source with status disabled:

[root@redhat64 ~]# yum repolist all
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id                              repo name                                                                   status
rhel-source                          Red Hat Enterprise Linux 6Server - x86_64 - Source                          disabled
rhel-source-beta                     Red Hat Enterprise Linux 6Server Beta - x86_64 - Source                     disabled
repolist: 0
[root@redhat64 ~]#

Check the Redhat repository configuration file, there are two repo name, both are pointed to redhat website:

[root@redhat64 ~]# cd /etc/yum.repos.d/
[root@redhat64 yum.repos.d]# ls
rhel-source.repo
[root@redhat64 yum.repos.d]# more rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@redhat64 yum.repos.d]# 

We need to register to RHN in order to use those repo source, even you try to enable the repo, by editing the line “enable=0” to “enable=1” but it won’t work. The easy way is build a local repository from your current redhat’s DVD / ISO file:

# mkdir /cdrom
# mount /dev/cdrom /cdrom

Rename existing repo file “rhel-source.repo” to “rhel-source.repo.backup” or whatever you want.
Create another repo file name, example “dvd.repo”:

# vi dvd.repo
[dvd-source]
name=RHEL 6.4 dvd repo
baseurl=file:///cdrom/Server
enabled=1
gpgcheck=0

Check your repo config, Test  and try to install the package:
# yum repolist
# yum install rpm-build

[root@redhat64 yum.repos.d]# yum repolist
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id                                               repo name                                                    status
dvd-source                                            RHEL 6.4 dvd repo                                            3,648
repolist: 3,648
[root@redhat64 yum.repos.d]# yum install rpm-build
Loaded plugins: product-id, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

dvd-source                                                                                        | 3.9 kB     00:00 ...

dvd-source/primary_db                                                                             | 3.1 MB     00:00 ...
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rpm-build.x86_64 0:4.8.0-32.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                     Arch                     Version                         Repository                    Size
=========================================================================================================================
Installing:
 rpm-build                   x86_64                   4.8.0-32.el6                    dvd-source                   126 k

Transaction Summary
=========================================================================================================================
Install       1 Package(s)

Total download size: 126 k
Installed size: 315 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.

  Installing : rpm-build-4.8.0-32.el6.x86_64 [                                                                     ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [####                                                                 ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#####                                                                ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [######                                                               ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#######                                                              ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [########                                                             ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#################                                                    ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#########################                                            ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [###############################                                      ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#################################                                    ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [###################################                                  ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [####################################                                 ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#########################################                            ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [##########################################                           ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [###########################################                          ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [############################################                         ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [##############################################                       ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [################################################                     ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#################################################                    ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [########################################################             ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#########################################################            ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [##########################################################           ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [################################################################     ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [##################################################################   ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [###################################################################  ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64 [#################################################################### ] 1/1
  Installing : rpm-build-4.8.0-32.el6.x86_64                                                                         1/1

dvd-source/productid                                                                              | 1.7 kB     00:00 ...
  Verifying  : rpm-build-4.8.0-32.el6.x86_64                                                                         1/1
Installed:
  rpm-build.x86_64 0:4.8.0-32.el6                                                                                        
Complete!
[root@redhat64 yum.repos.d]#
##################

We can also build a local http or ftp repository server, will talk later on another post.

MPT Firmware Fault, code 0800

Getting below error messages during my Sparc M5000 machine boot up:

{20} ok boot
Boot device: root  File and args:
MPT Firmware Fault, code 0800

read failed
ERROR: FCode Aborted.

The file just loaded does not appear to be executable.
{20} ok Sep  9 09:56:27 dm6-sc0 fmd: SOURCE: sde, REV: 1.16, CSN: BEF0850709  EVENT-ID: 49817271-d01d-4ece-8098-a362c9e52f71 Refer to http://www.sun.com/msg/SCF-8001-KC for detailed information.

Can’t find any clue what does “MPT Firmware Fault, code 0800” error code mean on MOS. Technical support asked to power cycle twice, including replacing the IOU, but the problem still persistent.

Anyway, after perform troubleshooting, below step solved my problem:

[boot into single user mode via DVD or Network, perform FSCK, mount root file system, installboot, then update boot-archive:

{29} ok boot net -s
# fsck -F ufs -y /dev/rdsk/c0t0d0s0

** /dev/rdsk/c0t0d0s0
BAD SUPERBLOCK AT BLOCK 16: MAGIC NUMBER WRONG
LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS?  yes
FOUND ALTERNATE SUPERBLOCK 80032 WITH MKFS
USE ALTERNATE SUPERBLOCK?  yes

FOUND ALTERNATE SUPERBLOCK AT 80032 USING MKFS
If filesystem was created with manually-specified geometry, using
auto-discovered superblock may result in irrecoverable damage to
filesystem and user data.

CANCEL FILESYSTEM CHECK?  yes

Please verify that the indicated block contains a proper
superblock for the filesystem (see fsdb(1M)).

FSCK was running in YES mode.  If you wish to run in that mode using
the alternate superblock, run `fsck -y -o b=80032 /dev/rdsk/c0t0d0s0′.

——————-

Owh, there was bad superblock issue, so I need to find the superblock backup then re-run fsck with -o b=<backup_superblock> option:

# newfs -Nv /dev/rdsk/c0t0d0s0
mkfs -F ufs -o N /dev/rdsk/c0t0d0s0 81937152 -1 -1 8192 1024 160 1 167 8192 t 0 -1 8 128 n
Warning: 5376 sector(s) in last cylinder unallocated
/dev/rdsk/c0t0d0s0:     81937152 sectors in 13337 cylinders of 48 tracks, 128 sectors
40008.4MB in 834 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
Initializing cylinder groups:
…………….
super-block backups for last 10 cylinder groups at:
81009696, 81108128, 81206560, 81304992, 81403424, 81501856, 81600288,
81698720, 81788960, 81887392
#

# fsck -F ufs -y -o b=81887392 /dev/rdsk/c0t0d0s0

*continue fsck to other slices

# mount /dev/dsk/c0t0d0s0 /mnt
# installboot /mnt/usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0
# bootadm update-archive -fv -R /mnt

Solaris 11 ZFS Root Recovery

[SOLARIS 11 ZFS ROOT RECOVERY:

* Boot system into single user via network or CDROM.
boot net -s
boot cdrom -s

* On X86 machine, you need edit grub and append -s on kernel line OR boot CDROM with Solaris-11-Text image/media, then select option “3 shell” on “Welcome to the Oracle Solaris Installation Menu”.
* If it ask username: root/solaris or root/password

# mkdir /a /b
# zpool import -R /a -f rpool
# zfs mount –o mountpoint=/b rpool/ROOT/solaris
# vi /b/etc/shadow

*Remove the root password section, it will become look like this:
root::15356::::::

*Note that by default, the new Solaris 11 doesn’t allow blank password
*To allow empty passwords at login:

# vi /b/etc/default/login
*Switch this line “PASSREQ=YES” to “PASSREQ=NO”

*If you access the system via SSH, also check the directive PermitEmptyPasswords in “/etc/ssh/sshd_config”
PermitEmptyPasswords yes

# cd /
# umount /b
# zpool export -f rpool
# reboot