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.

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 withTopicWhat differs
FreeBSD, OpenBSDoption setSolnix 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 sizeOn 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
OpenBSDgrowing a mounted file systemSolnix 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
FreeBSDmounted file system behaviourOn 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, OpenBSDnaming the targetSolnix 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, OpenBSDdry runFreeBSD 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, OpenBSDpreparing the partitionFreeBSD 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, OpenBSDconfirmation promptsOpenBSD 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
FreeBSDexit statusSolnix 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, OpenBSDrecovery after abortSolnix 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
OpenBSDenvironmentOpenBSD 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, -q or -y in scripts that must also run on Solnix: its page documents none of them, and -s differs in meaning and units.
  • Grow file systems with a per-OS branch: on Solnix, growfs with -M or 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.