2.4.0 -> 2.4.1 Update Failed
Updating from 2.4.0 to 2.4.1 from either the Web Interface or the Console is failing for me. I am running a clean ZFS install as of 2.4.0 with no modifications outside of the Web Interface. The only plugins I use are nmap and openvpn client export.
Here is the update log:
>>> Updating repositories metadata... Updating pfSense-core repository catalogue... pfSense-core repository is up to date. Updating pfSense repository catalogue... pfSense repository is up to date. All repositories are up to date. >>> Downloading upgrade packages... Updating pfSense-core repository catalogue... pfSense-core repository is up to date. Updating pfSense repository catalogue... pfSense repository is up to date. All repositories are up to date. Checking for upgrades (9 candidates): ......... done Processing candidates (9 candidates): ......... done Checking integrity... done (0 conflicting) The following 10 package(s) will be affected (of 0 checked): New packages to be INSTALLED: wpa_supplicant: 2.6_2 [pfSense] hostapd: 2.6_1 [pfSense] Installed packages to be UPGRADED: pfSense-rc: 2.4.0 -> 2.4.1 [pfSense-core] pfSense-kernel-pfSense: 2.4.0 -> 2.4.1 [pfSense-core] pfSense-default-config-serial: 2.4.0 -> 2.4.1 [pfSense-core] pfSense-base: 2.4.0 -> 2.4.1 [pfSense-core] pfSense-Status_Monitoring: 1.7.2 -> 1.7.3 [pfSense] pfSense: 2.4.0 -> 2.4.1 [pfSense] nginx: 1.12.1_1,2 -> 1.12.1_2,2 [pfSense] mpd5: 5.8_2 -> 5.8_3 [pfSense] Number of packages to be installed: 2 Number of packages to be upgraded: 8 The process will require 2 MiB more space. >>> Upgrading pfSense kernel... Checking integrity... done (0 conflicting) The following 1 package(s) will be affected (of 0 checked): Installed packages to be UPGRADED: pfSense-kernel-pfSense: 2.4.0 -> 2.4.1 [pfSense-core] Number of packages to be upgraded: 1 [1/1] Upgrading pfSense-kernel-pfSense from 2.4.0 to 2.4.1... [1/1] Extracting pfSense-kernel-pfSense-2.4.1: pkg-static: Fail to create /boot/kernel:No such file or directory [1/1] Extracting pfSense-kernel-pfSense-2.4.1... done Failed
MiamiDan last edited by
Same here. Update failed either Web Interface or console.
That's a bit strange, that directory must exist or it wouldn't be booted at all.
Are all of your filesystems live and mounted? Check this:
: mount zroot/ROOT/default on / (zfs, local, noatime, nfsv4acls) devfs on /dev (devfs, local) zroot/tmp on /tmp (zfs, local, noatime, nosuid, nfsv4acls) zroot/var on /var (zfs, local, noatime, nfsv4acls) zroot on /zroot (zfs, local, noatime, nfsv4acls) /dev/md0 on /var/run (ufs, local) devfs on /var/dhcpd/dev (devfs, local) : zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 812M 24.2G 88K /zroot zroot/ROOT 553M 24.2G 88K none zroot/ROOT/default 553M 24.2G 553M / zroot/tmp 424K 24.2G 424K /tmp zroot/var 256M 24.2G 256M /var
And then see if the /boot/kernel directory looks normal
: ls -ld /boot drwxr-xr-x 9 root wheel 57 Oct 26 14:15 /boot : ls -ld /boot/kernel drwxr-xr-x 2 root wheel 48 Oct 26 14:11 /boot/kernel : ls -l /boot/kernel total 21127 -r-xr-xr-x 1 root wheel 46928 Oct 26 11:42 aesni.ko -r-xr-xr-x 1 root wheel 20200 Oct 26 11:42 alpm.ko -r-xr-xr-x 1 root wheel 20136 Oct 26 11:42 amdpm.ko -r-xr-xr-x 1 root wheel 16736 Oct 26 11:42 amdsmb.ko -r-xr-xr-x 1 root wheel 15656 Oct 26 11:42 amdtemp.ko -r-xr-xr-x 1 root wheel 19424 Oct 26 11:42 coretemp.ko -r-xr-xr-x 1 root wheel 32448 Oct 26 11:42 cryptodev.ko -r-xr-xr-x 1 root wheel 38176 Oct 26 11:42 cyapa.ko -r-xr-xr-x 1 root wheel 156624 Oct 26 11:42 dummynet.ko -r-xr-xr-x 1 root wheel 33216 Oct 26 11:42 fdescfs.ko -r-xr-xr-x 1 root wheel 185344 Oct 26 11:42 hwpmc.ko -r-xr-xr-x 1 root wheel 24864 Oct 26 11:42 ichsmb.ko -r-xr-xr-x 1 root wheel 26160 Oct 26 11:42 ichwd.ko -r-xr-xr-x 1 root wheel 118304 Oct 26 11:42 if_ena.ko -r-xr-xr-x 1 root wheel 17920 Oct 26 11:42 if_ic.ko -r-xr-xr-x 1 root wheel 341176 Oct 26 11:42 if_ix.ko -r-xr-xr-x 1 root wheel 281856 Oct 26 11:42 if_ixv.ko -r-xr-xr-x 1 root wheel 35704 Oct 26 11:42 if_stf.ko -r-xr-xr-x 1 root wheel 32424 Oct 26 11:42 ig4.ko -r-xr-xr-x 1 root wheel 16688 Oct 26 11:42 iic.ko -r-xr-xr-x 1 root wheel 20912 Oct 26 11:42 iicbb.ko -r-xr-xr-x 1 root wheel 27416 Oct 26 11:42 iicbus.ko -r-xr-xr-x 1 root wheel 14976 Oct 26 11:42 iicsmb.ko -r-xr-xr-x 1 root wheel 23824 Oct 26 11:42 intpm.ko -r-xr-xr-x 1 root wheel 33984 Oct 26 11:42 ipdivert.ko -r-xr-xr-x 1 root wheel 279152 Oct 26 11:42 ipfw.ko -r-xr-xr-x 1 root wheel 66784 Oct 26 11:42 ipmi.ko -r-xr-xr-x 1 root wheel 12952 Oct 26 11:42 ipmi_linux.ko -r-xr-xr-x 1 root wheel 14104 Oct 26 11:42 isl.ko -r-xr-xr-x 1 root wheel 24984 Oct 26 11:42 ismt.ko -r-xr-xr-x 1 root wheel 10032 Oct 26 11:42 jedec_ts.ko -r-xr-xr-x 1 root wheel 18232207 Oct 26 11:42 kernel.gz -rw-r--r-- 1 root wheel 119948 Oct 26 11:42 linker.hints -r-xr-xr-x 1 root wheel 13776 Oct 26 11:42 lpbb.ko -r-xr-xr-x 1 root wheel 222568 Oct 26 11:42 ndis.ko -r-xr-xr-x 1 root wheel 21544 Oct 26 11:42 nfsmb.ko -r-xr-xr-x 1 root wheel 20040 Oct 26 11:42 nmdm.ko -r-xr-xr-x 1 root wheel 23440 Oct 26 11:42 opensolaris.ko -r-xr-xr-x 1 root wheel 11864 Oct 26 11:42 pcf.ko -r-xr-xr-x 1 root wheel 1589176 Oct 26 11:42 sfxge.ko -r-xr-xr-x 1 root wheel 15584 Oct 26 11:42 smb.ko -r-xr-xr-x 1 root wheel 11888 Oct 26 11:42 smbus.ko -r-xr-xr-x 1 root wheel 55672 Oct 26 11:42 udf.ko -r-xr-xr-x 1 root wheel 32512 Oct 26 11:42 viapm.ko -r-xr-xr-x 1 root wheel 325512 Oct 26 11:42 vmm.ko -r-xr-xr-x 1 root wheel 2544056 Oct 26 11:42 zfs.ko
And lastly see what the kernel package looks like. This is from a 2.4.2 box but 2.4.1 should be similar
: pkg info pfSense-kernel-pfSense pfSense-kernel-pfSense-2.4.2.a.20171026.1037 Name : pfSense-kernel-pfSense Version : 2.4.2.a.20171026.1037 Installed on : Thu Oct 26 14:11:49 2017 EDT Origin : security/pfSense-kernel Architecture : FreeBSD:11:amd64 Prefix : / Categories : security Licenses : APACHE20 Maintainer : firstname.lastname@example.org WWW : https://www.pfsense.org/ Comment : pfSense kernel (pfSense) Annotations : repo_type : binary repository : pfSense-core Flat size : 24.1MiB Description : pfSense kernel (pfSense) WWW: https://www.pfsense.org/
She boots just fine. My hardware is an APU1D with an mSATA SSD if that helps.
I have the same filesystems.
: mount zroot/ROOT/default on / (zfs, local, noatime, nfsv4acls) devfs on /dev (devfs, local) zroot/tmp on /tmp (zfs, local, noatime, nosuid, nfsv4acls) zroot/var on /var (zfs, local, noatime, nfsv4acls) zroot on /zroot (zfs, local, noatime, nfsv4acls) /dev/md0 on /var/run (ufs, local) devfs on /var/dhcpd/dev (devfs, local) : zfs list NAME USED AVAIL REFER MOUNTPOINT zroot 480M 4.71G 88K /zroot zroot/ROOT 397M 4.71G 88K none zroot/ROOT/default 397M 4.71G 397M / zroot/tmp 264K 4.71G 264K /tmp zroot/var 80.8M 4.71G 80.8M /var
Well this is different. Why would it be like this? I did a normal 2.4.0 install.
: ls -ld /boot lrwxr-xr-x 1 root wheel 13 Oct 10 05:04 /boot -> bootpool/boot : ls -ld /boot/kernel ls: /boot/kernel: No such file or directory ls -l /boot/kernel ls: /boot/kernel: No such file or directory
: pkg info pfSense-kernel-pfSense pfSense-kernel-pfSense-2.4.0 Name : pfSense-kernel-pfSense Version : 2.4.0 Installed on : Tue Oct 10 05:04:47 2017 PDT Origin : security/pfSense-kernel Architecture : FreeBSD:11:amd64 Prefix : / Categories : security Licenses : APACHE20 Maintainer : email@example.com WWW : https://www.pfsense.org/ Comment : pfSense kernel (pfSense) Annotations : Flat size : 23.9MiB Description : pfSense kernel (pfSense) WWW: https://www.pfsense.org/
Do you happen to remember which ZFS partition scheme you selected (e.g. GPT, BIOS, etc)?
Yes, GPT and BIOS. Should I have chosen a different partition scheme? As for BIOS vs UEFI, I just assumed my hardware didn't support UEFI.
No, that's the same one I used on that box, I'm fairly certain. I spot checked a few systems here running ZFS and I don't see that on any of them. One of them is a single disk the other is a mirror.
What other ZFS options did you choose? Do you remember?
I don't have any setup for it, but it looks like maybe that can end up that way with GELI encryption for the disk
You might have to refresh my memory on what options there were. I deleted the swap partition if I remember correctly. I didn't enable encryption.
Looks like MBR can also result in a bootpool (looking at the source, haven't tested it, no time today)
What does "zpool list" show? Do you see bootpool there?
: zpool list NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT zroot 5.34G 481M 4.87G - 8% 8% 1.00x ONLINE -
I finally had some time to look into this today and it turns out that in those cases (Using MBR or geli), the zfs pool called "bootpool" isn't getting imported due to a fun chicken-and-egg scenario with the zfs cache file. The zfs pool cache tells the OS what pools to mount, but that cache file is in /boot/, so it doesn't get read at boot time because the file isn't there.
I just pushed a fix. Once that is in snapshots you can upgrade to a 2.4.2 snapshot, you will need to run "zpool import bootpool" first and then it should proceed from there.
Am I running with install options that are untested and/or in beta? I just want to be able to click the update button and have it update without issues every time. What do you recommend? This isn't the first time I have had updating issues.
ZFS support as a whole is new and still considered experimental. People are excited about it, but it's not something we recommend yet. That said, it works fine for the majority of those using it.
Even more rare are those that need MBR support in ZFS, most people that can run 2.4 can run GPT which does not have this problem.
ZFS Encryption is also new and rarely used, and not practical to test since it requires a lot of manual intervention and direct console access.
If you install using the default ZFS options (which is GPT, no encryption) then you'll be OK.
Like I said before, the options I used were GPT and no encryption.
If you ended up with /bootpool, that cannot be true. It only gets activated for MBR or encrypted drives in the installer code.
Is there a way to verify without reinstalling?
gpart list | grep scheme
If it says MBR/BSD then it's MBR, if it's says GPT/GPT then it's GPT
Either way though, once the bootpool fix is in snapshots it will be fine no matter what you chose.
Ok, you are right, it's MBR. I had installed it twice and the first go-around I had chosen GPT. I thought I had the second time too but I guess not.