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.
The manual pages
- Solnix: fsck_ufs(8) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: fsck_ufs(8) 15.1-RELEASE
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 with | Topic | What differs |
|---|---|---|
| FreeBSD | how it is invoked | Solnix 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 meaning | On 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 meaning | On 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 |
| FreeBSD | preen mode | On 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 |
| FreeBSD | force and alternate superblock | Solnix 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 |
| FreeBSD | flags only on Solnix | Solnix 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 |
| FreeBSD | flags only on FreeBSD | FreeBSD 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 |
| FreeBSD | background checking and signals | FreeBSD -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 |
| FreeBSD | device to name | Solnix 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 |
| FreeBSD | default file system selection | With 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 |
| FreeBSD | nolargefiles state reset | On 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
-Fufs-op /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.