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.

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 withTopicWhat differs
Linux, FreeBSDpage layoutThe 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, FreeBSDzpool version -jLinux 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, FreeBSDdevice namingSolnix 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
NetBSDdevice namingNetBSD 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
NetBSDvdev typesSolnix 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
NetBSDmissing subcommandsThe 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
NetBSDflag differencesSolnix 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
NetBSDclear and splitNetBSD 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)
NetBSDstatus and iostat flagsSolnix 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, FreeBSDenvironment variablesLinux 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, FreeBSDpools from illumosLinux 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, FreeBSDslot power and eventsLinux 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 -j in 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.