On 02/01/2013 17:49, Paul Mather wrote:
> Yesterday, I updated my RELENG_8 ZFS-only system that has worked like a champ 
> for ages.  After a successful install{kernel,world} and reboot, I noticed the 
> 20121130 entry in /usr/src/UPDATING and upgraded my ZFS pool via "zfs upgrade 
> -a".  I also upgraded my boot blocks as requested, and as per the "ZFS notes" 
> section of /usr/src/UPDATING.
> 
> Unfortunately rebooting with the upgraded pool failed.  The "windmill" boot 
> spinner spins for a tiny amount of time and then stops dead. :-(  I don't get 
> to the boot loader menu at all.
> 
> I downloaded a very recent RELENG_8 snapshot 
> (FreeBSD-8.3-RELENG_8-r244923-JPSNAP-amd64-amd64-memstick.img) from 
> pub.allbsd.org and was able to boot successfully from USB using that.  I 
> entered Fixit Mode and tried to write the boot blocks on the memstick image 
> onto my hard drives but the resultant system still wouldn't boot.  The 
> commands I used (from Fixit Mode) are these:
> 
>       gpart bootcode -b /dist/boot/pmbr -p /dist/boot/gptzfsboot -i 1 ad4
>       gpart bootcode -b /dist/boot/pmbr -p /dist/boot/gptzfsboot -i 1 ad6
> 
> (ad4 and ad6 are my two hard drives.)
> 
> If I "load zfs" before booting the USB memstick then I can see my old pool 
> listed when I do "zfs import".  I haven't tried importing the pool because 
> I'm not sure if that would make the problem worse.
> 
> Does anyone have any advice in restoring this system to bootability?  I 
> followed the standard "root on ZFS" recipe using a two drive mirror when 
> installing the system initially.  Each drive uses GPT with three partitions: 
> freebsd-boot, freebsd-swap, and freebsd-zfs in that order.  Like I said at 
> the start, all this worked for a long time until just now when I upgraded the 
> pool to enable "feature flags" support. :-(
> 
> Any help is appreciated.

I think you may be running into problems with zpool.cache.  This has
been fixed in current, which now has the ability to find the root zpool
without a valid zpool.cache, but that I suspect is faint comfort for you.

To recover from a toasted zpool.cache, you need to boot from alternate
media and then import your root zpool.  It's easiest to do that to a
temporary directory.  The important bit is to copy the zpool.cache onto
your actual zroot device:

 -- Boot from install media to 'Live CD' and log in as root (no password)

# kldload zfs               -- should load opensolaris.ko automatically
# cd /tmp                   -- this should be a writable MFS; you'll
                               need to arrange something similar if
                               not.
# zpool import -o cachefile=/tmp/zpool.cache -R /tmp/zroot zroot
                            -- this should create a zpool.cache file
# cp zpool.cache /tmp/zroot/boot/zfs/
# zfs umount -a
# shutdown -r

Eject the install media, and the system should boot up from your root zpool.

        Cheers,

        Matthew

-- 
Dr Matthew J Seaman MA, D.Phil.

PGP: http://www.infracaninophile.co.uk/pgpkey
JID: matt...@infracaninophile.co.uk

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to