Solved zpool not importing on boot

I just upgraded from 12.2-RELEASE to 13.0-RELEASE and my only zpool pool will not import on boot. I can import it manually after booting but it does not persist.
I am not using zfs on root and no encryption. Pretty simple setup.
Any suggestions?
 
I've just finished updating from 12.2-RELEASE-p6 to 13.0-RELEASE using freebsd-update() and had the same problem. I had zfs_enable="YES" set. This was after the reboot following the first freebsd-update install, but before I ran the second freebsd-update install.

I manually imported my two missing non-root pools, which succeeded fine, then after another reboot they were found automatically on boot.
 
I've just finished updating from 12.2-RELEASE-p6 to 13.0-RELEASE using freebsd-update() and had the same problem. I had zfs_enable="YES" set. This was after the reboot following the first freebsd-update install, but before I ran the second freebsd-update install.

I manually imported my two missing non-root pools, which succeeded fine, then after another reboot they were found automatically on boot.
That did the trick. I guess I hadn't actually finished installing yet.
 
Hi all

I got same issue and fixed by move zfs_enable="YES" from /etc/rc.conf.d/zfs to /etc/rc.conf?
But /etc/rc.conf.d/zfs worked fine prior 12.2-RELEASE, no idea malfunction after upgrade.
I will try to find root cause ?
 
I still have the issue with several servers which still run on 12.4 because any upgrade failed so far because of the above problem (a zpool is not automatically imported).
Setup is from the times where root-on-zfs was not reilable yet, so all of them have root and /var on a gmirror and some also /usr , but most get their /usr already from a zfs dataset.
That worked well since FreeBSD 9 or 10, but doesn't with 13 (eg after merging with the linux stuff).
I'm always building/installing/upgrading from source , not with freebsd-update.
I have zfs_load in /boot/loader.conf and zfs_enable in /etc/rc.conf .
As I saw that sometimes the cachefile was still updated in /etc/zfs instead of /boot/zfs , I also tried
various combinations of copying the newer to the older / other location. None of them had any effect. Then also tried to manually set the cachefile property in the pool , also no effect.
I really ran out of ideas now. I'm trying for more than a year now. As I'm still stuck on 12.4 on about a dozen important servers, I even backported some stuff from 13 to be able to build ports and fix security bugs.
To avoid affecting the live servers, I have setup a test server here with the same setup and do the trial and error there, so I can try any suggestions there without a problem.
Manually importing the zpool in single user and then going mulit user afterwards is no problem, but of course that's no solution for live servers.
I appreciate ANY ideas ;-)
 
Ok, problem solved. After reading my own and the above postings again, I realized I never did the final step and updated the userspace. I just did a 'make installworld' and some mergemaster thus fully upgrading the system and guess what, the zpool is automatically imported. However it's not yet in single user mode, when only zfs kmod was loaded (which used to work). So some magic in the rc scripts does the job now, that's the difference. I'll have a closer look to check what exactly did the job.
 
the "magic" is actually quite simple. In 13.x the script /etc/rc.d/zpool was added which does the job and which was not yet available when I only booted the 13.3 kernel. I added that manually to all servers with zfs and 12.4 before I upgraded , so I had no problem during the upgrade.
 
Back
Top