growfs(8) on Solnix vs Linux and the BSDs
On Solnix, growfs is the illumos /usr/sbin/growfs. It grows a UFS file system, mounted or unmounted, to the size of its slice, and takes newfs options plus a raw device. FreeBSD and OpenBSD have a different synopsis with -N, -s and -y, and OpenBSD can only grow unmounted file systems.
The manual pages
- Solnix: growfs(8) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: growfs(8) 15.1-RELEASE
- OpenBSD: growfs(8) 8.0
What Solnix runs
A default Solnix system runs the illumos growfs at /usr/sbin/growfs. No other variants are shipped. The Solnix page lists only -M itself. Everything else is passed through as newfs options, and the page refers you to newfs(8) for them.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD | option set | Solnix growfs documents only -M mount-point and passes newfs-options through. FreeBSD and OpenBSD define -N, -s and -y directly, and OpenBSD also defines -q. The Solnix page does not list -N, -q or -y.Source: Solnix growfs(8) SYNOPSIS, OPTIONS; FreeBSD growfs(8) -N, -s, -y; OpenBSD growfs(8) -N, -q, -s, -y |
| FreeBSD, OpenBSD | -s size | On Solnix, -s is a newfs option giving the total new size in sectors, which must be a multiple of the cylinder size. FreeBSD and OpenBSD document -s as a growfs option whose size defaults to the whole partition. FreeBSD also accepts b, k, m, g and t suffixes.Source: Solnix growfs(8) DESCRIPTION (-s); FreeBSD growfs(8) -s; OpenBSD growfs(8) -s |
| OpenBSD | growing a mounted file system | Solnix growfs expands mounted or unmounted file systems and write-locks a mounted one using lockfs. OpenBSD growfs can only enlarge unmounted file systems; the page warns that trying a mounted one may panic the system. Source: Solnix growfs(8) DESCRIPTION, -M; OpenBSD growfs(8) DESCRIPTION |
| FreeBSD | mounted file system behaviour | On Solnix, a mounted file system is write-locked while it grows. Growing in stages with -s shortens the lock. FreeBSD CAVEATS say writes to a read-write mounted file system are suspended until the expansion is finished. The FreeBSD page describes no staged growth.Source: Solnix growfs(8) DESCRIPTION; FreeBSD growfs(8) CAVEATS |
| FreeBSD, OpenBSD | naming the target | Solnix takes an optional raw-device in /dev/rdsk or /dev/md/rdsk, or -M with a mount point. FreeBSD takes a special file or file system argument. OpenBSD takes a special file only.Source: Solnix growfs(8) SYNOPSIS, OPTIONS raw-device, -M; FreeBSD growfs(8) SYNOPSIS; OpenBSD growfs(8) SYNOPSIS |
| FreeBSD, OpenBSD | dry run | FreeBSD and OpenBSD growfs -N prints the new parameters without changing anything. The Solnix page documents no growfs test mode. Any such option would be a newfs option, which the bundle does not list.Source: FreeBSD growfs(8) -N; OpenBSD growfs(8) -N; Solnix growfs(8) OPTIONS |
| FreeBSD, OpenBSD | preparing the partition | FreeBSD requires you to extend the partition or slice with gpart(8) first. OpenBSD requires disklabel(8). The Solnix page says space is usually added by adding a slice to a metadevice, and names no partitioning tool. Source: FreeBSD growfs(8) DESCRIPTION; OpenBSD growfs(8) DESCRIPTION; Solnix growfs(8) DESCRIPTION |
| FreeBSD, OpenBSD | confirmation prompts | OpenBSD growfs normally asks whether you have taken a backup and checks whether the device is mounted. -y suppresses this. FreeBSD -y assumes yes to all questions. The Solnix page documents no prompt and no -y.Source: OpenBSD growfs(8) -y; FreeBSD growfs(8) -y; Solnix growfs(8) OPTIONS |
| FreeBSD | exit status | Solnix growfs returns 0 on success and >0 on error. FreeBSD distinguishes 2 (recoverable by user action) from 3 or greater (OS errors). The OpenBSD page has no exit status section. Source: Solnix growfs(8) EXIT STATUS; FreeBSD growfs(8) EXIT STATUS |
| FreeBSD, OpenBSD | recovery after abort | Solnix says if growfs is aborted, you should unmount and run fsck or rerun growfs. Using the file system before fsck can corrupt UFS metadata and require restoring from backup. OpenBSD says to run fsck(8) after enlarging. FreeBSD does not say. Source: Solnix growfs(8) DESCRIPTION; OpenBSD growfs(8) BUGS |
| OpenBSD | environment | OpenBSD growfs reads COLUMNS to format output width. The Solnix page documents no environment variables. Source: OpenBSD growfs(8) ENVIRONMENT; Solnix growfs(8) |
Standards
- POSIX: growfs is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not rely on
-N,-qor-yin scripts that must also run on Solnix: its page documents none of them, and-sdiffers in meaning and units. - Grow file systems with a per-OS branch: on Solnix, growfs with
-Mor a raw device; on FreeBSD or OpenBSD, growfs on the special file after resizing the partition.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.