zpool(8) on Solnix vs Linux and the BSDs
On Solnix, zpool is the illumos zpool at /usr/sbin/zpool (also /sbin/zpool). Its one page documents every subcommand, while Linux and FreeBSD split them into zpool-*(8) pages. Disk names are illumos style (c0t0d0, /dev/dsk), and Solnix supports more subcommands and flags than NetBSD.
The manual pages
- Solnix: zpool(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: zpool(8) zfs-user-2.4.4
- FreeBSD: zpool(8) 15.1-RELEASE
- NetBSD: zpool(8) 11.0
What Solnix runs
A default Solnix system runs the illumos zpool at /usr/sbin/zpool and /sbin/zpool. No other variants are shipped. The Solnix text in the bundle is trimmed, so this note does not cover its ENVIRONMENT, EXIT STATUS or INTERFACE STABILITY sections.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, FreeBSD | page layout | The Linux and FreeBSD zpool(8) pages list only -?V, version and a generic 'subcommand'. Each subcommand has its own zpool-*(8) page, and concepts are in zpoolconcepts(7). The Solnix page lists every subcommand's flags in one SYNOPSIS.Source: Linux/FreeBSD zpool(8) SYNOPSIS, DESCRIPTION, SEE ALSO; Solnix zpool(8) SYNOPSIS |
| Linux, FreeBSD | zpool version -j | Linux and FreeBSD document zpool version [-j]. The Solnix synopsis shows zpool version with no options, and its flag list has no -j.Source: Linux/FreeBSD zpool(8) SYNOPSIS; Solnix zpool(8) SYNOPSIS |
| Linux, FreeBSD | device naming | Solnix disks are block devices under /dev/dsk. A shorthand like c0t0d0 means /dev/dsk/c0t0d0s2, and a whole disk is named by omitting the slice. Scripts that pass Linux or BSD device names will not work unchanged. Source: Solnix zpool(8) Virtual Devices, disk; Solnix zpool(8) example c0t0d0 |
| NetBSD | device naming | NetBSD documents disks as typically under /dev, given by full path or geom(4) provider name, with examples such as da0 and da1. Solnix uses /dev/dsk and cNtNdN names. Source: NetBSD zpool(8) Virtual Devices, disk and example; Solnix zpool(8) Virtual Devices, disk |
| NetBSD | vdev types | Solnix supports dedup and special vdevs, for dedup data and metadata. The NetBSD page lists only disk, file, mirror, raidz, spare, log and cache. Source: Solnix zpool(8) Virtual Devices (dedup, special); NetBSD zpool(8) Virtual Devices |
| NetBSD | missing subcommands | The NetBSD synopsis has no checkpoint, initialize, resilver, sync, trim, wait or version. Solnix lists all of them. Scripts using them on Solnix will fail on NetBSD. Source: Solnix zpool(8) SYNOPSIS; NetBSD zpool(8) SYNOPSIS |
| NetBSD | flag differences | Solnix remove takes -n, -p and -w and has remove -s. Solnix scrub takes -p and -w, and create takes -B and -t. NetBSD shows only scrub -s, a bare remove, and neither -B nor -t.Source: Solnix zpool(8) SYNOPSIS (remove, scrub, create); NetBSD zpool(8) SYNOPSIS |
| NetBSD | clear and split | NetBSD documents zpool clear -F [-n] and split with [device ...] and -o mntopts. Solnix clear takes only pool [device], and its split takes -gLlnP with no device list.Source: NetBSD zpool(8) SYNOPSIS (clear, split); Solnix zpool(8) SYNOPSIS (clear, split) |
| NetBSD | status and iostat flags | Solnix status takes -D, -i, -g, -L, -p, -P, -s and -t, and iostat takes -l, -q, -r, -w, -g, -H, -L, -n, -p, -P and -y. NetBSD shows only status -vx and iostat -T and -v.Source: Solnix zpool(8) SYNOPSIS (status, iostat); NetBSD zpool(8) SYNOPSIS |
| Linux, FreeBSD | environment variables | Linux and FreeBSD document variables such as ZPOOL_IMPORT_PATH, ZFS_COLOR, ZPOOL_VDEV_NAME_PATH and ZPOOL_SCRIPTS_PATH. The Solnix text in the bundle does not show an environment section, so the manual does not say if they apply. Source: Linux/FreeBSD zpool(8) ENVIRONMENT VARIABLES; Solnix zpool(8) (no such section in bundle) |
| Linux, FreeBSD | pools from illumos | Linux and FreeBSD note that older OpenZFS had problems showing config of pools that came from illumos (devid values), and that ZFS_VDEV_DEVID_OPT_OUT strips or avoids devids. Keep this in mind when moving a Solnix pool. Source: Linux/FreeBSD zpool(8) ENVIRONMENT VARIABLES, ZFS_VDEV_DEVID_OPT_OUT |
| Linux, FreeBSD | slot power and events | Linux and FreeBSD document a --power option for online and clear (via ZPOOL_AUTO_POWER_ON_SLOT) and list zpool-events(8) and zpool-ddtprune(8). The Solnix synopsis shows online [-e], clear without options, and no events or ddtprune subcommand.Source: Linux/FreeBSD zpool(8) ENVIRONMENT VARIABLES, SEE ALSO; Solnix zpool(8) SYNOPSIS |
Standards
- POSIX: zpool is not a POSIX.1-2024 utility.
- Linux: INTERFACE STABILITY: Evolving.
- FreeBSD: INTERFACE STABILITY: Evolving.
Writing portable scripts
- Do not hard-code device names: Solnix uses cNtNdN under /dev/dsk, NetBSD uses /dev names such as da0, and the Linux and FreeBSD pages in the bundle do not say.
- Check that a subcommand exists on each target (trim, initialize, checkpoint, wait). The NetBSD synopsis lacks them.
- Do not use zpool version
-jin portable scripts: it is documented only on Linux and FreeBSD.
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.