2

I have a test server running Solaris 11.2 (on HP Proliant Gen8 Microserver hardware). On October 31st I upgraded the system to Solaris 11.3 as described in Solaris documentation article Updating a System to Oracle Solaris 11.3 and everything seemed to go smoothly. After two weeks I shut down the server with

shutdown -y -i5 -g0

After starting the server again, the state of the rpool has been reverted to the state before the upgrade. Logging in with ssh displayed the last login time being October 31st, even though I logged in on November 14th. Running

uname -a

displays

SunOS nas3 5.11 11.2 i86pc i386 i86pc

and all the files on rpool created after October 31st are gone. The console shows the message

nas3 console login: Nov 15 18:11:34 nas3 genunix: NOTICE: /dev/chassis/.ca/Proliant-MicroServer-Gen8.CZ152300T4/SYS: cannot create shadow directory - error

Unfortunately there are no snapshots of the rpool. Questions:

  1. What could have caused this?
  2. Is there any way to get back the data saved on rpool after the upgrade?

What I have tried:

  • googling (of course) Google doesn't have a single result for the search query "cannot create shadow directory".
  • searching for Solaris documentation, e.g. Issues When Updating to Oracle Solaris 11.3
  • checking ZFS snapshots. Unfortunately, none have been made (yes, that was not very wise)
  • checking the state of rpool - it is reported being healthy and without errors

Update

Running

beadm list

shows

BE        Active Mountpoint Space   Policy Created
--        ------ ---------- -----   ------ -------
solaris   N      /          171.47M static 2015-08-16 17:51
solaris-1 R      -          14.72G  static 2015-10-31 21:52

Solution

As pointed out by Lambert, the boot environment was wrong. Just rebooting with

init 6

fixed the issue. It would still be interesting to find out what caused this.

Update 2:

Apparently running

beadm activate solaris-1

activated permanently the new partition. See Changing the Default Boot Environment.

2 Answers 2

4

What is the result of beadm list? You should have multiple boot environments. Using beadm activate <bename> you can switch between them (after activating, you should reboot).

A boot environment can also be chosen at the grub level. Perhaps you mistakenly pressed the down arrow and hit enter and you manually chose a boot environment based on the previous release of Solaris.

3
  • Thanks, the beadm list shows two boot enviroments (I updated the question to show the output). I'll try to activate the other one and reboot after the backup finishes running (learning from this experience, I'm backing up all the data on an external hard drive). I can rule out that I mistakenly chose the wrong one, as the server is running headless - I just started it yesterday, logged in today using Putty and noticed the strange "last login time".
    – simon
    Nov 16, 2015 at 19:25
  • It seems that the boot environment Solaris-1 is set to be the active boot environment after a reboot. Perhaps you have console (serial) access to the host to follow the boot process. As alternative you should be able to mount the Solaris-1 boot environment and look around in the logfiles.
    – Lambert
    Nov 16, 2015 at 19:37
  • After rebooting it works, thank you. :) I'll check the log files to see if I can find out the root cause.
    – simon
    Nov 17, 2015 at 7:57
0

Lambert resolved your primary issue.

The update would have most likely created a new BE. If you need to look at an old BE, you can always mount it.
ie: beadm mount solaris-1 /mnt would mount the non-active BE set for the next reboot to be mounted to /mnt.

Historically, LU (v10) didn't play well unless you used the init commands, and BE in v11 is most likely the same. Normally after an update, you'll do an init 6 to reboot to the new BE. Your shutdown command issued an init 5 which should have sync'd everything and set the new BE to boot via grub.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .