FreeBSD & OPNsense: grow the root partition

October 3, 2020
opnsense freebsd ufs filesystem

I was playing with a small OPNsense VM when, during a major upgrade, the disk was suddenly full. If you ever create a OPNsense VM, here are the spec you should set :

  • 2 vCPU
  • 1GB RAM
  • 5GB disk

Boot is BIOS/MBR, in my case the disk was emulated SCSI. The network interface can use virtio.

Commands brief

Resize the disk on the hypervisor side, then reboot the VM or use camcontrol rescan all to refresh the SCSI bus (untested).

Now we’re ready for the resize dance:

# let's look at the partition layout
gpart show
# fix GPT partition table after disk extend
gpart recover da0
# now extend the partition to all available space
gpart resize -i 3 da0
# and grow the UFS filesystem
growfs /dev/gpt/rootfs

UFS is a bit confused if you specify the partition path, so be careful to use the mountpoint so it can detect the mounted partition and do an online grow.

growfs /dev/da0p3 # error
growfs /dev/gpt/rootfs # ok

More information on the FreeBSD doc: https://www.freebsd.org/doc/handbook/disks-growing.html