fsck_ufs(8) on Solnix vs Linux and the BSDs

On Solnix, fsck_ufs is the illumos UFS checker, run as `fsck -F ufs` on a raw device. FreeBSD runs fsck_ffs (also named fsck_ufs) directly. UFS-specific options such as preen, force and alternate superblock go through `-o` on Solnix and are plain flags on FreeBSD. `-F` and `-m` mean different things on the two systems.

What Solnix runs

A default Solnix system runs the illumos fsck_ufs. The header says it is not in /usr/bin, /usr/sbin or /sbin, and the page's SYNOPSIS invokes it as `fsck -F ufs [generic-options] [-o specific-options] [special]...`. No other variants are shipped. The bundle does not say where the binary lives.

Differences

Compared withTopicWhat differs
FreeBSDhow it is invokedSolnix uses the generic front end: `fsck -F ufs ... [special]`. FreeBSD documents `fsck_ffs [-BCdEFfnpRrSyZz] [-b block] [-c level] [-m mode] filesystem ...`. The FreeBSD page is titled fsck_ffs, fsck_ufs.
Source: Solnix fsck_ufs(8) SYNOPSIS; FreeBSD fsck_ufs(8) NAME, SYNOPSIS
FreeBSD-F meaningOn Solnix, `-F ufs` selects the file system type for the generic fsck. On FreeBSD, `-F` only decides whether a foreground or background check is needed and exits zero or non-zero. It does no cleanup and exits non-zero if the file system is clean.
Source: Solnix fsck_ufs(8) SYNOPSIS; FreeBSD fsck_ufs(8) -F
FreeBSD-m meaningOn Solnix, `-m` checks without repairing, to see whether the file system is fit to mount, and reports it through the exit status. On FreeBSD, `-m` takes an octal mode argument. The visible FreeBSD text is cut off after 'as the permission'.
Source: Solnix fsck_ufs(8) -m; FreeBSD fsck_ufs(8) -m
FreeBSDpreen modeOn Solnix, preen is `-o p`. It exits at once on any problem needing intervention and is required for parallel checking. On FreeBSD, preen is `-p`, and it corrects only a short list of innocuous inconsistencies. Other problems give an abnormal exit status.
Source: Solnix fsck_ufs(8) -o p; FreeBSD fsck_ufs(8) DESCRIPTION, -p
FreeBSDforce and alternate superblockSolnix uses `-o f` to force a check and `-o b=n` for an alternate superblock, noting block 32 is always one. FreeBSD uses `-f` and `-b block`, and says block 32 for UFS1 and block 192 for UFS2. Both point to newfs -N to find them.
Source: Solnix fsck_ufs(8) -o b=n, -o f; FreeBSD fsck_ufs(8) -b, -f
FreeBSDflags only on SolnixSolnix documents `-V` (echo the expanded command line without running it), `-v` (verbose, which may not be supported by every file-system fsck) and `-o w` (check writable file systems only). The FreeBSD synopsis has none of these.
Source: Solnix fsck_ufs(8) -V, -v, -o w; FreeBSD fsck_ufs(8) SYNOPSIS
FreeBSDflags only on FreeBSDFreeBSD documents -B (preen-limited check of an active file system), -C (skip if cleanly dismounted), -c level (convert the format, raise only), -d (debug) and -E (clear unallocated blocks). The Solnix page documents none of these.
Source: FreeBSD fsck_ufs(8) -B, -C, -c, -d, -E; Solnix fsck_ufs(8) OPTIONS
FreeBSDbackground checking and signalsFreeBSD -F relies on soft updates for deferred background cleaning. It also documents QUIT (finish checks, then exit abnormally so the automatic reboot fails) and SIGINFO (print progress). The Solnix page documents no background mode or signal behaviour.
Source: FreeBSD fsck_ufs(8) -F, DESCRIPTION; Solnix fsck_ufs(8) DESCRIPTION
FreeBSDdevice to nameSolnix tells you to give the character (raw) device, such as /dev/rdsk/c1t0d0s7, or a mount point listed in /etc/vfstab. It will not work on a mounted block device unless the file system is error-locked. Using the block device on file systems over 2 Gb fails. The FreeBSD text in the bundle does not discuss this.
Source: Solnix fsck_ufs(8) DESCRIPTION, NOTES; FreeBSD fsck_ufs(8) DESCRIPTION
FreeBSDdefault file system selectionWith no special argument, Solnix checks all ufs file systems that have a fsckdev entry in vfstab. With -p it checks those with fsckpass greater than 1 in parallel. The visible FreeBSD text does not say what happens with no file system argument.
Source: Solnix fsck_ufs(8) DESCRIPTION; FreeBSD fsck_ufs(8) SYNOPSIS
FreeBSDnolargefiles state resetOn Solnix, running fsck resets the file system state used by `mount -o nolargefiles` when no large file (2 Gbyte or more) exists. A later successful mount shows there are none. The FreeBSD text in the bundle has no equivalent.
Source: Solnix fsck_ufs(8) DESCRIPTION; FreeBSD fsck_ufs(8) DESCRIPTION

Standards

  • POSIX: fsck_ufs is not a POSIX.1-2024 utility.

Writing portable scripts

  • Wrap the check in a per-OS branch: `fsck -F ufs -o p /dev/rdsk/...` on Solnix, `fsck_ffs -p` on FreeBSD. Do not assume `-F`, `-m`, `-b` or `-p` mean the same thing.
  • Only `-n` and `-y` are documented on both pages with the same meaning of answering questions for you. Even then, give the raw device on Solnix.

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.