Open main menu

Aram's Wiki β

Changes

Upgrading FreeBSD 12.2 to 13.0

2,338 bytes added, 14:09, 15 April 2021
Created page with "Category:FreeBSD == Introduction == We assume root on ZFS. Everything on this page needs to be done as root, unless specified, so su to root. su - == Upgrade base sy..."
[[Category:FreeBSD]]

== Introduction ==

We assume root on ZFS.

Everything on this page needs to be done as root, unless specified, so su to root.

su -

== Upgrade base system ==

We will do the upgrade offline, in a new BE, so first, create the BE and mount it.

bectl create 13.0-RELEASE
bectl mount 13.0-RELEASE /mnt

Then run <code>freebsd-update(8)</code>:

freebsd-update -b /mnt -d /mnt/var/db/freebsd-update -r 13.0-RELEASE upgrade
freebsd-update -b /mnt -d /mnt/var/db/freebsd-update install
freebsd-update -b /mnt -d /mnt/var/db/freebsd-update install
freebsd-update -b /mnt -d /mnt/var/db/freebsd-update install

Yes, you really need to run it that many times.

=== Upgrade the bootloader ===

==== BIOS ====

First, determine your boot devices.

z800:aram$ zpool status zroot
pool: zroot
state: ONLINE
scan: scrub repaired 0B in 00:01:46 with 0 errors on Mon Feb 5 17:48:15 2018
config:

NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/zfs0 ONLINE 0 0 0
gpt/zfs1 ONLINE 0 0 0

errors: No known data errors

Look for the devices in the GEOM output.

z800:aram$ geom -t
...
da0 PART da0p3
da0p3 DEV
da0p3 LABEL gpt/zfs0
gpt/zfs0 DEV
zfs::vdev ZFS::VDEV
...
da2 PART da2p3
da2p3 DEV
da2p3 LABEL gpt/zfs1
gpt/zfs1 DEV
zfs::vdev ZFS::VDEV
...

In our case, we need to install the new bootloader on <code>da0</code> and <code>da2</code>.

gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 da0
gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 da2

==== EFI ====

TODO.

== Upgrade the packages ==

It is unclear why we need devfs, but we need it:

mount -t devfs devfs /mnt/dev/
pkg -c /mnt update
pkg -c /mnt upgrade
unmount /mnt/dev/

== Activate the new BE ==

bectl umount 13.0-RELEASE
bectl activate 13.0-RELEASE

And reboot. If it doesn't work, you can revert to another BE in the bootloader.