"Cannot read the pool label from " after changing boot controller

_The statements and opinions expressed here are my own_
_ and do not necessarily represent those of Oracle Corporation._ 
  _This post applies to: Solaris 11 express running on x86 hardware_

**Problem: **After changing my boot controller (as part of a motherboard change, solaris stopped booting, giving the error below:

Notice: can not read the pool label from '<path to device>'
Notice: spa_import_rootpool: error 5
Cannot mount root on <path to device>: fstype zfs
Panic[cpu0]/thread=<thread_id>: vfs_mountroot: cannot mount root
  • Note: unfortunately the machine reboots before you can read anything useful from the screen on my x86 machine which lacks console redirection -- I had to video the screen to capture the error message, shown below:
    Solution:

  • Boot from alternate media into single user mode:

  • (press 'e' to edit the grub boot option and append "-s" to the line starting with 'kernel')* Import the problem pool, probably named 'rpool'

  • Export the problem poolThe above process seems to fix the label on the pool devices so the more primitive boot-time code can deal with the pool.

[![](http://4.bp.blogspot.com/-uqUGkJ2vn1Q/TnFR2QTo1BI/AAAAAAAAAOw/tUW1BfDPZGA/s640/ss.jpg)](http://4.bp.blogspot.com/-uqUGkJ2vn1Q/TnFR2QTo1BI/AAAAAAAAAOw/tUW1BfDPZGA/s1600/ss.jpg)
sceenshot