Upgrade from outdated release

Hello!

I need to update a server currently running an outdated version:

Code:
# freebsd-version -urk
12.4-RELEASE-p9
12.4-RELEASE-p9
12.4-RELEASE-p9

I've never done that before... So, from what I have read, I understand I should first be running a major upgrade from 12.4 to 13.2 (since it's the last version that has been released before 12.4 EOL) ; then a minor upgrade from 13.2 to 13.5 and finally a second major upgrade from 13.5 to 14.3.

Would this be a correct way to proceed?
 
Do you have reasonable backup?

If so I would go to 14.3 in the first and only step. It should work and there's no reason to go through 3 upgrades, each of which might fail.
 
Well, no data loss can happen, the main problem would be configuration files, so maybe make a copy of the archive created by
tar -cvzf /backup/backup-full.tgz /etc /usr/local/etc /var would be enough?
 
There have been a few bugs with freebsd-update(8) but as far as I can tell 12.4-RELEASE-p9 should be good. Agree with cracauer@ just go for 14.3 straight away, freebsd-update(8) should support moving from any release to the latest version in one go.

Be careful merging though, if I remember correctly there have been a few changes to user accounts, so carefully check any merge requests for /etc/passwd and /etc/master.passwd.
 
Thank you so much for your very helpful answers!
Everything went smoothly, I jumped from 12.4 to 14.3 in one go, as you suggested.
I have kept one jail that I would like to upgrade too. (I will recreate the other ones, I have scripts to automate this)
Problem is, I used sysutils/ezjail, so far, to create and manage it.
So I ran ezjail-admin update -s 12.4-RELEASE -U but it ended up with lots of error messages, like:
To install the downloaded upgrades, run 'freebsd-update [options] install'.
src component not installed, skipped
Installing updates...
Kernel updates have been installed. Please reboot and run
'freebsd-update [options] install' again to finish installing updates.
src component not installed, skipped
Installing updates...install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/devd: No such file or directory
install: /srv/basejail//etc/periodic/daily: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//etc/rc.d: No such file or directory
install: /srv/basejail//root: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/devd: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/periodic/daily: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/etc/rc.d: No such file or directory
install: /srv/basejail//var/db/etcupdate/current/root: No such file or directory
ln: /srv/basejail//var/db/etcupdate/current/usr/share/nls/en_US.US_ASCII: No such file or directory
pwd_mkdb: /srv/basejail/etc/master.passwd: No such file or directory
cap_mkdb: file argument: No such file or directory

Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run
'freebsd-update [options] install' again to finish installing updates.
src component not installed, skipped
Installing updates... done.
src component not installed, skipped
No updates are available to install.
Run 'freebsd-update [options] fetch' first.
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 12.4-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic world/doc

The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg world/base world/base-dbg world/lib32 world/lib32-dbg

Does this look reasonable (y/n)? y

Fetching metadata signature for 14.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
The following files will be added as part of updating to
14.3-RELEASE-p1:
/boot/kernel/acpi_ged.ko
/boot/kernel/atopcase.ko
/boot/kernel/backlight.ko
/boot/kernel/bcm5974.ko
/boot/kernel/bnxt_re.ko
/boot/kernel/cc_newreno.ko
/boot/kernel/dpdk_lpm4.ko
/boot/kernel/dpdk_lpm6.ko
/boot/kernel/fib_dxr.ko
/boot/kernel/ftgpio.ko
/boot/kernel/ftwd.ko
/boot/kernel/geom_union.ko
/boot/kernel/gpioaei.ko
/boot/kernel/hconf.ko
/boot/kernel/hcons.ko
/boot/kernel/hgame.ko
/boot/kernel/hid.ko
/boot/kernel/hidbus.ko
/boot/kernel/hidmap.ko
/boot/kernel/hidquirk.ko
/boot/kernel/hidraw.ko
/boot/kernel/hkbd.ko
/boot/kernel/hms.ko
/boot/kernel/hmt.ko
/boot/kernel/hpen.ko
/boot/kernel/hsctrl.ko
/boot/kernel/htu21.ko
/boot/kernel/hv_hid.ko
/boot/kernel/hv_sock.ko
/boot/kernel/ietp.ko
/boot/kernel/if_axp.ko
/boot/kernel/if_enic.ko
/boot/kernel/if_gve.ko
/boot/kernel/if_iwlwifi.ko
/boot/kernel/if_mana.ko
/boot/kernel/if_mgb.ko
/boot/kernel/if_ovpn.ko
/boot/kernel/if_rtw88.ko
/boot/kernel/if_rtw89.ko
/boot/kernel/if_wg.ko
/boot/kernel/iichid.ko
/boot/kernel/ipsec.ko
/boot/kernel/irdma.ko
/boot/kernel/isp_2600.ko
/boot/kernel/isp_2700.ko
/boot/kernel/isp_2800.ko
/boot/kernel/itwd.ko
/boot/kernel/kinst.ko
/boot/kernel/ktest.ko
/boot/kernel/ktest_example.ko
/boot/kernel/ktest_netlink_message_writer.ko
/boot/kernel/lindebugfs.ko
/boot/kernel/linuxkpi_hdmi.ko
/boot/kernel/linuxkpi_video.ko
/boot/kernel/linuxkpi_wlan.ko
/boot/kernel/mac_do.ko
/boot/kernel/mac_ipacl.ko
/boot/kernel/mac_pimd.ko
/boot/kernel/mac_priority.ko
/boot/kernel/max44009.ko
/boot/kernel/mpi3mr.ko
/boot/kernel/ncthwm.ko
/boot/kernel/netlink.ko
/boot/kernel/ng_checksum.ko
/boot/kernel/ng_macfilter.ko
/boot/kernel/nlsysevent.ko
/boot/kernel/ntb_tool.ko
/boot/kernel/ossl.ko
/boot/kernel/p2sb.ko
/boot/kernel/pca954x.ko
/boot/kernel/pcf8574.ko
/boot/kernel/pcf8591.ko
/boot/kernel/pchtherm.ko
/boot/kernel/ps4dshock.ko
/boot/kernel/pvscsi.ko
/boot/kernel/qat_200xx_fw.ko
/boot/kernel/qat_4xxx_fw.ko
/boot/kernel/qat_api.ko
/boot/kernel/qat_c2xxx.ko
/boot/kernel/qat_c3xxx_fw.ko
/boot/kernel/qat_c4xxx_fw.ko
/boot/kernel/qat_c62x_fw.ko
/boot/kernel/qat_common.ko
/boot/kernel/qat_dh895xcc_fw.ko
/boot/kernel/qat_hw.ko
/boot/kernel/qlnxr.ko
/boot/kernel/rtsx.ko
/boot/kernel/rtw8723d_fw.bin.ko
/boot/kernel/rtw8821c_fw.bin.ko
/boot/kernel/rtw8822b_fw.bin.ko
/boot/kernel/rtw8822c_fw.bin.ko
/boot/kernel/rtw8822c_wow_fw.bin.ko
/boot/kernel/sdio.ko
/boot/kernel/snd_dummy.ko
/boot/kernel/tarfs.ko
/boot/kernel/tcp_bbr.ko
/boot/kernel/tcp_rack.ko
/boot/kernel/tcphpts.ko
/boot/kernel/uacpi.ko
/boot/kernel/usbhid.ko
/boot/kernel/vmd.ko
/boot/kernel/wdatwd.ko
/boot/kernel/xb360gp.ko
To install the downloaded upgrades, run 'freebsd-update [options] install'.
src component not installed, skipped
Installing updates...mkdir: /srv/newjail//boot: No such file or directory
mtree: /srv/newjail//boot/kernel: No such file or directory
mtree: /srv/newjail//boot/kernel.old: No such file or directory
touch: /srv/newjail//boot/kernel.old/.freebsd-update: No such file or directory
Could not create kernel backup directory

Nevertheless I stopped and restarted the jail. I had to console into it with jexec and when trying to upgrade pkg, then things went wrong.

Code:
# jexec 2 csh
root@sftp0:/ # pkg-static bootstrap -f
pkg-static: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
pkg(8) is already installed. Forcing reinstallation through pkg(7).
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:14:amd64/quarterly, please wait...
pkg: Attempted to fetch pkg+http://pkg.FreeBSD.org/FreeBSD:14:amd64/quarterly/Latest/pkg.pkg
pkg: Attempted to fetch pkg+http://pkg.FreeBSD.org/FreeBSD:14:amd64/quarterly/Latest/pkg.txz
pkg: Error: Address family for host not supported
Address resolution failed for http://pkg.FreeBSD.org/FreeBSD:14:amd64/quarterly.

So, I suppose creating this jail again from scratch may be for the best?
 
Back
Top