Title : Resize live UFS filesystem on FreeBSD 11
Date : 17 May 2016
Tags : freebsd11
I am using FreeBSD in virtual machines and sometimes I need to
increase the disk capacity of the storage. From your VM Host, increase
the capacity of the storage backend, then on the FreeBSD system (10.3
when writing), you should see this in the last line of _dmesg_.
GEOM_PART: vtbd0 was automatically resized.
Use `gpart commit vtbd0` to save changes or `gpart undo vtbd0` to revert them.
Here is the `gpart show` output on the system:
> 34 335544253 vtbd0 GPT (160G)
34 1024 1 freebsd-boot (512K)
1058 159382528 2 freebsd-ufs (76G)
159383586 8388540 3 freebsd-swap (4.0G)
167772126 167772161 - free - (80G)
The process is a bit harder here because I have my partition swap at
the end of the storage, so if I want to increase the size of the ufs
partition, I will need to remove the swap partition, increase the data
partition and recreate the swap. This is not that hard but having the
freebsd-ufs partition at the end would have been easier.
1. swapoff the device : **`swapoff /dev/vtbd0p3`**
2. delete the swap partition : **`gpart delete -i 3 vtbd0`**
3. resize the freebsd-ufs partition : **`gpart resize -i 2 -a 4k -s 156G vtbd0`**
4. create the swap : **`gpart add -t freebsd-swap -a 4k vtbd0`**
5. swapon : **`swapon /dev/vtbd0p3`**
6. tell UFS to resize : **`growfs /`**
If freebsd-ufs was the latest in the gpart order, only steps 3 and 6
would have been necessary.
Sources: [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/disks-growing.html) and [gpart(8)](https://www.freebsd.org/cgi/man.cgi?gpart%288%29)