The available free space in the rootfs of the VM images found in https://download.freebsd.org/ftp/releases/VM-IMAGES/12.1-RELEASE/amd64/Latest/ are zero.
I tested the qcow2 image and the VMDK image and it's the same, so I except it to be true for the VHD image too.
Once the qcow2 VM image is booted in qemu/kvm on Linux, on gets:
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/gpt/rootfs 3044988 2933380 -131988 105% /
devfs 1 1 0 100% /dev
And the kernel is spitting in console message about no space in rootfs, like
freebsd kernel: pid 802 (dd), uid 2 inumber 162985 on /: filesystem full
These images are dynamically allocated, meaning that if you add +5Gb to the rootfs, the resulting growth size of the image is almost null.
So there is no trade-off to increase the rootfs size.
I except it to be a better experience to have a non null free space on rootfs when trying freeBSD or using it with a VM.
This is non trivial task to increase the VM image size, increase the rootfs partition, and finally grow the fs in rootfs. Unless this is meant as a test of your knowledge... This voids the ease of use of a VM image, though.
As a side note, isn't there a bug in `df` that reports a capacity of 105% with a negative number of available blocks ?
Generally the VM images are built with 'growfs_enable="YES"' in /etc/rc.conf. This means that as long as you resize the underlying disk image, the filesystem will automatically expand to fill it on boot.
To resize raw images, you can use truncate(1) with -s to increase the image size.
For qcow and vhd images, use 'qemu-img resize +123G' for example.
Capacity 105% is sort of expected. 5% of capacity is "reserved," so df reports 100% full when there is 5% remaining. In this case, the reserved space is also used.
OK. I found out about that parameter (growfs_enable) later on in /etc/rc.conf.
well, may be some doc in the handbook, or jsut a README in the directory where are the VM iamges ?
or I did not look enough for that doc that already exists ?
It got a brief mention in 11.0R notes, https://www.freebsd.org/releases/11.0R/relnotes.html#userland-rc , but isn't especially well documented.
This should get documented in the FreeBSD handbook.