ZFS: unsupported ZFS version 14 (should be 13)
Categories: FreeBSD, Sysadmin.
How I got there?
After updating to the latest development version of GNOME thanks' to MarcusCom ports I wanted to log out and back in but X refused to restart because of the in-heavy-development Nouveau video driver. I run in this problem every once a while and a full reboot solve this problem. However, the system did not boot:
ZFS: unsupported ZFS version 14 (should be 13) ZFS: unsupported ZFS version 14 (should be 13) NO ZFS pools located? can't boot
Okay, I recall running the following to update my full-ZFS system from ZFS 13 to 14 a while ago:
zpool upgrade -a
I completly forgot about updating the GPT bootloader accordingly and thus it was unable to use the version of ZFS on my disks.
The FreeBSD 8.0-STABLE livefs
The FreeBSD projects provides snapshots of -STABLE version of the Operating System (I am running FreeBSD 8.0-STABLE) and the livefs disk contains the fixit environement which would allow me to solve my problems.
I so used my laptop to look for such an ISO image and burn it, unfortunately, the bootp and dns servers are run by the machine that was down. Hopefully, I had a web browser oppenned on this system and it had the address of google's servers in it's cache. I could search for my ISP DNS and add them to /etc/resolv.conf. I was then able to download the image and burn it.
Fixing
By default, the livefs will not have ZFS support unless you ask for it before starting. In other word, at the boot menu, Escape to loader prompt and type:
OK load zfs OK boot
When the sysinstall(8) menu appears, select Fixit / CDROM/DVD. At the Fixit# prompt, you will have to search for your zfs pools, mount your filesystems, locate the new version of the bootloader and install it. This is basically a transcript of what I did (I previously described my setup in this blog):
Fixit# zpool import -f data # at this point I had to leave and return in the Fixit environement # because by ZFS root was hiding the livefs root. Fixit# zfs set mountpoint=/mnt data Fixit# gpart bootcode -p /mnt/boot/gptzfsboot -i 1 ad10 Fixit# gpart bootcode -p /mnt/boot/gptzfsboot -i 1 ad12 Fixit# zfs set mountpoint=legacy data Fixit# zfs umount -a Fixit# logout
Note to myself: in the future do not forget to update the bootloader when updating my ZFS filesystems.