Friday, December 13, 2013

Performing Zpool Upgrade of the Root Pool After Applying Solaris 10 Kernel Patches 144500-19/144501-19 May Cause Systems to Fail to Boot

Description
Solaris 10 x86 and SPARC platform Kernel Patches 144500-19 and144501-19 deliver support for a new zpool version. This new zpool version has a potential impact for systems with a ZFS root file system which may lead to a non-booting system. This is due to a failure of this Kernel Patch to perform the corresponding update of GRUB (GRand Unified Bootloader) on x86 or the boot block on SPARC.


The installation of these Kernel Patches will initially not have any negative impact. If however, at a later date a ZFS root pool version upgrade is carried out using either "zpool upgrade <root- pool>" or "zpool upgrade -a", then the system will become vulnerable to two issues:

1.The system will fail to come up after the next regular reboot.
2.New boot environments (BEs) created after the root pool version upgrade will not be able to boot.
Note: This issue does not impact systems that are upgraded to Solaris 10 8/11.
Occurrence

This issue can occur in the following releases:

SPARC Platform

•Solaris 10 with patch 144500-19 and without patch 125555-11
x86 Platform

•Solaris 10 with patch 144501-19 and without patch 125556-11
Note 1: Solaris 8, Solaris 9, and Solaris 11 Express are not impacted by this issue.

Note 2: Systems are only vulnerable to this issue if they use a zfs(1M) root file system. The root file system type can be determined by executing the following command :

   # df -n /
   / : zfs
The above output shows the response if root is a zfs(1M) file system.

Symptoms

When the described issue occurs, the following will be seen:

On SPARC:

   {1} ok boot
   Boot device: /pci@1c,600000/scsi@2/disk@0,0:a  File and args:
   Can't mount root
   The file just loaded does not appear to be executable.
   okOn x86/x64:

   GNU GRUB version 0.95 (615K lower / 4062144K upper memory)
   Minimal BASH-like line editing is supported. For the first word, TAB
   lists possible command completions. Anywhere else TAB lists the
   possible completions of a device/filename.
   grub>Workaround

After applying the affected Kernel Patches and rebooting the system, the following commands need to be executed to reinstall GRUB (x86) or 'bootblk' (SPARC). These commands must be run before the next reboot and before the creation of any new boot environments (BEs) following an upgrade of the root pool:

On SPARC:



   # /sbin/installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/cWtXdYsZFor a zfs mirror, installboot needs to be run on each disk in the mirror.

On x86/x64:

    # /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/cXdYsZFor a zfs mirror, installgrub needs to be run on each disk in the mirror.

This issue is addressed in the following releases:

SPARC Platform

•Solaris 10 with patch 125555-11 or later
x86 Platform

•Solaris 10 with patch 125556-11 or later


Note: The fix patches above must be applied to the system before the Kernel Patches 144500-19 or 144501-19 are applied.

No comments:

Post a Comment