zdb(8) on Solnix vs Linux and the BSDs
On Solnix, zdb is the illumos zdb at /usr/sbin/zdb. Its option set is smaller than the Linux and FreeBSD (OpenZFS) zdb. The synopsis has no -B, -K, -N, -r, -T, -Y or -y and no long options, and -R takes vdev:offset:size, not vdev:offset:[lsize/]psize.
The manual pages
- Solnix: zdb(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: zdb(8) zfs-user-2.4.4
- FreeBSD: zdb(8) 15.1-RELEASE
- NetBSD: zdb(8) 11.0
What Solnix runs
A default Solnix system runs the illumos zdb at /usr/sbin/zdb. No other variants are shipped. The page is published by pkgs.solnix.illumos-world-man. The bundle text for Solnix is cut off partway through the options, so this comparison relies mainly on the synopsis and the options that are shown.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, FreeBSD | options missing on Solnix | The Linux and FreeBSD synopses add -B (backup stream), -K key, -N, -r (extract a file to a destination), -T, -Y and -y. The Solnix synopsis has none of them, so scripts using them fail on Solnix.Source: Linux zdb(8) SYNOPSIS, -B, -r, -K; FreeBSD zdb(8) SYNOPSIS, -B, -r, -K; Solnix zdb(8) SYNOPSIS |
| Linux, FreeBSD | long options | Linux and FreeBSD zdb accept long forms such as --block-stats, --datasets, --history, --config and --allocated-map. The Solnix page documents only single-letter options.Source: Linux zdb(8) OPTIONS (-b, --block-stats; -d, --datasets); FreeBSD zdb(8) OPTIONS; Solnix zdb(8) OPTIONS |
| Linux, FreeBSD | -R block size syntax | Solnix -R takes poolname vdev:offset:size[:flags]. Linux and FreeBSD take vdev:offset:[lsize/]psize[:flags], so they can give a logical size and a physical size. A Linux-style lsize/psize argument is not described for Solnix.Source: Solnix zdb(8) SYNOPSIS and -R; Linux zdb(8) SYNOPSIS -R; FreeBSD zdb(8) SYNOPSIS -R |
| Linux, FreeBSD | object ranges and objset IDs | Linux and FreeBSD -d accept object ID ranges (start:end[:flags], e.g. 0:-1:A-d) and a numeric objset-ID in place of a dataset name. The Solnix page only mentions object IDs and a dataset or pool name.Source: Linux zdb(8) -d and SYNOPSIS poolname[/dataset|objset-ID]; FreeBSD zdb(8) -d; Solnix zdb(8) SYNOPSIS and -d |
| Linux, FreeBSD | -b refinements | With -bb, Linux and FreeBSD offer --bin=(lsize|psize|asize) and --class=(normal|special|dedup|other). The Solnix page shows no equivalent for -b.Source: Linux zdb(8) --bin, --class; FreeBSD zdb(8) --bin, --class; Solnix zdb(8) -b |
| NetBSD | options missing on NetBSD | The NetBSD synopsis has no -E, -G, -k, -o, -O, -V or -q, all of which Solnix lists. NetBSD zdb cannot decode embedded block pointers, dump zfs_dbgmsg, examine a checkpoint, set libzpool variables or look up a path inside a dataset.Source: Solnix zdb(8) SYNOPSIS, -E, -G, -k, -o, -O; NetBSD zdb(8) SYNOPSIS |
| NetBSD | -l labels and exit status | Solnix -l reads vdev labels and the L2ARC header, and exits 0 for a valid label, 1 for an error, 2 for no valid label. It has -ll, -lll and -q. NetBSD -l only displays labels (with -u, uberblocks) and the page documents no exit codes.Source: Solnix zdb(8) -l, -ll, -lll; NetBSD zdb(8) SYNOPSIS and -l |
| NetBSD | -m output | Solnix -m also shows all the log spacemaps and their obsolete entry statistics. The NetBSD -m text lists only offset, spacemap, free space and the histogram levels.Source: Solnix zdb(8) -m; NetBSD zdb(8) -m |
| Linux, FreeBSD | offline-tool statement | The Linux and FreeBSD pages say zdb is an "offline" tool that reads the block devices directly and does not care whether the pool is imported. The Solnix page, as shown, only warns that zdb may behave erratically on an imported, active pool. Source: Linux zdb(8) DESCRIPTION; FreeBSD zdb(8) DESCRIPTION; Solnix zdb(8) DESCRIPTION |
| all four | output is unstable | All pages that document zdb say its output reflects the on-disk structure, is inherently unstable and is not precisely documented. Do not parse it. OpenBSD has no zdb page in the bundle. Source: Solnix, Linux, FreeBSD and NetBSD zdb(8) DESCRIPTION |
Standards
- POSIX: zdb is not a POSIX.1-2024 utility.
Writing portable scripts
- Use only single-letter options present in all pages (
-b,-c,-C,-d,-D,-h,-l,-m,-R,-S,-u,-e). Avoid-B,-K,-N,-r,-Y,-yand long options. - Do not parse zdb output in scripts. Every page calls it unstable and tied to on-disk structure.
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.