rmt(8) on Solnix vs Linux and the BSDs

On a default Solnix system, rmt is the illumos /usr/sbin/rmt, the BSD-style remote magtape protocol module used by ufsdump and ufsrestore. The Solnix page published with pkgs.solnix.gtar is the GNU rmt page, which matches the Linux page word for word. The protocol detail that bites is the argument order of the L (lseek) request.

What Solnix runs

The command on PATH is the illumos rmt at /usr/sbin/rmt; no other variants are shipped. The published Solnix page (pkgs.solnix.gtar) describes the GNU rmt for use with tar(1) and cpio(1). That text is trimmed and does not list the individual commands. The bundle does not say where the GNU rmt is installed. The illumos page documents the full command set.

Differences

Compared withTopicWhat differs
Linuxsame program as the published pageThe published Solnix rmt(8) page and the Linux rmt(8) page (cpio-2.15) are identical text: GNU rmt, written from scratch to the BSD specification. The Linux page does not describe the illumos binary that is first on a Solnix PATH.
Source: Solnix rmt(8) [gtar] HISTORY; Linux rmt(8) HISTORY; Solnix default on PATH header
FreeBSDL (lseek) argument orderillumos rmt takes L offset\nwhence\n. FreeBSD documents Lwhence\noffset\n, with the two arguments swapped. A client written for FreeBSD's order sends the wrong values to the illumos rmt.
Source: Solnix illumos rmt(8) Loffset\nwhence\n; FreeBSD rmt(8) Lwhence\noffset\n
OpenBSD, NetBSDL (lseek) argument orderOpenBSD and NetBSD document Loffset\nwhence\n, the same order as the illumos rmt.
Source: OpenBSD rmt(8) Loffset\nwhence\n; NetBSD rmt(8) Loffset\nwhence\n; Solnix illumos rmt(8) Loffset\nwhence\n
FreeBSD, OpenBSD, NetBSDread size limitThe FreeBSD, OpenBSD and NetBSD pages say an R count larger than the 10 kilobyte data buffer is truncated to that size. The illumos page does not document any limit.
Source: FreeBSD rmt(8) Rcount\n; OpenBSD rmt(8) Rcount\n; NetBSD rmt(8) Rcount\n; Solnix illumos rmt(8) Rcount\n
OpenBSDoptionsOpenBSD rmt takes -r (read-only), -w (write regular files; creates missing files, refuses to open existing ones) and -d directory (confine access to a directory, no slashes in names, symlinks not followed). The illumos rmt synopsis is bare /usr/sbin/rmt with no options.
Source: OpenBSD rmt(8) SYNOPSIS, -d, -r, -w; Solnix illumos rmt(8) SYNOPSIS
OpenBSDregular-file useOpenBSD says rmt may be used for regular file access as well as tape. The illumos page describes only magnetic tape manipulation and says not to use it as a remote file access protocol.
Source: OpenBSD rmt(8) DESCRIPTION; Solnix illumos rmt(8) DESCRIPTION, BUGS
Linuxintended callersThe GNU page says rmt serves tar(1), cpio(1) and similar tools, reached through rsh(1) or ssh(1). The illumos page says it serves the remote dump and restore programs (ufsdump(8) and ufsrestore(8) in SEE ALSO) and is started by rexec(3SOCKET) or rcmd(3SOCKET).
Source: Linux rmt(8) DESCRIPTION; Solnix illumos rmt(8) DESCRIPTION, SEE ALSO
FreeBSD, OpenBSD, NetBSDintended callers and start-up callThe BSD pages name the remote dump and restore programs (rdump(8), rrestore(8)) as callers. FreeBSD starts rmt with rcmd(3). OpenBSD uses rcmd(3) or rcmdsh(3). NetBSD uses rexec(3) or rcmd(3).
Source: FreeBSD rmt(8) DESCRIPTION, SEE ALSO; OpenBSD rmt(8) DESCRIPTION; NetBSD rmt(8) DESCRIPTION
Linuxerror number referenceGNU rmt reports an errno from errno(3) followed by a perror(3)-style message. The illumos page refers to error numbers in Intro(3) and to perror(3C). The E response layout is the same: Eerrno\nmessage\n.
Source: Linux rmt(8) DESCRIPTION; Solnix illumos rmt(8) DESCRIPTION
Linuxprotocol command list not in the GNU page textThe GNU page refers to a following section describing the commands, but the trimmed text in the bundle does not include it. The manual text given here does not show whether GNU rmt's command letters and argument order match illumos.
Source: Solnix rmt(8) [gtar] DESCRIPTION; Linux rmt(8) DESCRIPTION

Standards

  • POSIX: rmt is not a POSIX.1-2024 utility.
  • Solnix: The published GNU page HISTORY says the rmt command appeared in 4.2BSD. The illumos page in the bundle has no ATTRIBUTES or standards section.
  • FreeBSD: HISTORY: the rmt utility appeared in 4.2BSD. No STANDARDS section.
  • OpenBSD: HISTORY: the rmt command appeared in 4.2BSD. No STANDARDS section.
  • NetBSD: HISTORY: the rmt command appeared in 4.2BSD. No STANDARDS section.

Writing portable scripts

  • Do not rely on the L request across systems: FreeBSD documents whence first, while illumos, OpenBSD and NetBSD document offset first.
  • Do not send R counts above 10 kilobytes. The BSD pages document truncation to that size; the illumos page does not document the limit.

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.