Bug 250152 - free space on rootfs on VM image is zero
Summary: free space on rootfs on VM image is zero
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: 12.1-RELEASE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-doc (Nobody)
Depends on:
Reported: 2020-10-06 07:30 UTC by zebul666
Modified: 2020-10-29 07:00 UTC (History)
2 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description zebul666 2020-10-06 07:30:26 UTC
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:

    # df
    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 ?
Comment 1 Conrad Meyer freebsd_committer 2020-10-06 18:58:43 UTC
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.
Comment 2 zebul666 2020-10-06 19:39:41 UTC
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 ?
Comment 3 Conrad Meyer freebsd_committer 2020-10-07 15:56:53 UTC
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.
Comment 4 Ed Maste freebsd_committer 2020-10-08 00:19:36 UTC
This should get documented in the FreeBSD handbook.