Solved?: Re: Upgrade of RELENG_8 ZFS boot pool leads to unbootable system
Paul Mather
paul at gromit.homeunix.org
Thu Jan 3 21:19:15 UTC 2013
On Jan 2, 2013, at 2:10 PM, Matthew Seaman <m.seaman at infracaninophile.co.uk> wrote:
> 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.
It turns out it was my /boot.config that was preventing booting. The system is usually always headless, so I have "-S115200 -Dh" as the sole line in /boot.config to enable a 115200 baud serial console. This has been working fine for me up until I did a {build,install} {kernel,world} on 1st January 2013. I was pretty sure my woes began after I did the "zpool upgrade -a" and subsequently rebooted again, but now I can't be sure whether I successfully rebooted at all after the "make installworld" and mergemaster step.
Does anyone know a sure-fire way of getting a dual console setup (high-speed serial + VGA). The recipe I had been using had worked well for a long time. I had "-S115200 -Dh" in /boot.config and the following entries in /boot/loader.conf:
boot_multicons="YES"
comconsole_speed="115200"
console="comconsole,vidconsole"
Now, though, if I have "-S115200 -Dh" then the system locks up at boot. Removing /boot.config gets me dual console, but only at 9600 baud. :-(
Cheers,
Paul.
PS: Is the BOOT_COMCONSOLE_SPEED entry in /etc/make.conf needed? I was under the impression it has been obsolete for a while and took it out of my /etc/make.conf file.
More information about the freebsd-stable
mailing list