raidctl(8) on Solnix vs Linux and the BSDs

On Solnix, raidctl is the illumos /usr/sbin/raidctl, a configuration tool for hardware RAID controllers (the mpt driver plug-in). NetBSD raidctl drives the RAIDframe software RAID driver raid(4). The same letters mean different things: -C, -c, -F, -a and -g are not interchangeable, and NetBSD -F fails a disk, while Solnix -F flashes firmware.

What Solnix runs

A default Solnix system runs the illumos raidctl at /usr/sbin/raidctl, and no other variants are shipped. The page says the shipped plug-in covers the mpt driver (LSI1020, LSI1030, LSI1064, LSI1068 HBAs), and that support for each option depends on the driver and the controller firmware. The bundle has counterpart pages only for NetBSD, none for Linux, FreeBSD or OpenBSD.

Differences

Compared withTopicWhat differs
NetBSDwhat is being managedSolnix raidctl configures volumes on hardware RAID controllers through driver plug-ins. NetBSD raidctl is the control program for the RAIDframe software disk driver raid(4) and addresses a raid device such as raid0.
Source: Solnix raidctl(8) DESCRIPTION; NetBSD raidctl(8) NAME, DESCRIPTION, SYNOPSIS
NetBSD-F meaning (dangerous)Solnix -F filename controller updates controller firmware, after a prompt unless -f is given. NetBSD -F component dev fails that component and starts reconstruction onto a hot spare. Running a NetBSD-style -F on Solnix, or the reverse, does something unrelated.
Source: Solnix raidctl(8) OPTIONS -F; NetBSD raidctl(8) -F
NetBSD-f meaningOn Solnix, -f is a modifier that skips confirmation prompts for -C, -d, -F, -p and -c. On NetBSD, -f component dev marks a component as failed without starting reconstruction.
Source: Solnix raidctl(8) OPTIONS -C, -d, -F, -p; NetBSD raidctl(8) -f
NetBSD-C and -c meaningSolnix -C "disks" creates a volume from disks given as C.ID.L, and -c is an older create form taking c0t0d0-style disk names. On NetBSD, -c config_file dev configures a set from a file, and -C forces that configuration.
Source: Solnix raidctl(8) OPTIONS -C, -c; NetBSD raidctl(8) -C, -c
NetBSDhot spares and -gSolnix uses -a set|unset -g disk with a volume (local spare) or controller (global spare). NetBSD -a component dev adds a hot spare to a device, and -g component dev reads a component label.
Source: Solnix raidctl(8) OPTIONS -a; NetBSD raidctl(8) -a, -g
NetBSDdelete, list and stripe optionsSolnix has -d to delete a volume, -l to list controllers, volumes or disks, and -s for stripe size at creation. The NetBSD synopsis has no -d or -l, and -s there takes only dev. The NetBSD text visible in the bundle does not say what -s does.
Source: Solnix raidctl(8) SYNOPSIS, OPTIONS -d, -s; NetBSD raidctl(8) SYNOPSIS
NetBSDRAID levelsSolnix -r accepts 0, 1, 1E, 5, 10 and 50, and creates RAID 1 if -r is omitted. NetBSD's simplified create command accepts levels 0, 1 (or mirror) and 5.
Source: Solnix raidctl(8) OPTIONS -C, -r; NetBSD raidctl(8) DESCRIPTION create
NetBSDargument syntaxSolnix takes a controller ID and disks as C.ID.L (for example 0.1.2) or canonical names (c0t0d0). NetBSD takes the raid device last (raidctl -A yes dev) or first (raidctl dev create level components).
Source: Solnix raidctl(8) OPTIONS -C, -d, -c; NetBSD raidctl(8) SYNOPSIS
NetBSDautoconfiguration and bootNetBSD has -A yes|no|forceroot|softroot to autoconfigure a set at boot or make it the root device, and -L to rescan. The Solnix synopsis has no equivalent option.
Source: NetBSD raidctl(8) -A, -L; Solnix raidctl(8) SYNOPSIS
NetBSDprivilege failureOn Solnix, an unprivileged user running raidctl gets exit status 1, because access is controlled by file-system permissions. The NetBSD text in the bundle does not describe this.
Source: Solnix raidctl(8) DESCRIPTION; NetBSD raidctl(8) DESCRIPTION

Everyday tasks

TaskSolnixNetBSD
create a RAID volumeraidctl -C "disks" [-r raid_level] controllerraidctl dev create level component1 component2 ...
add a hot spareraidctl -a set -g disk volume|controllerraidctl -a component dev
list RAID controllers and volumesraidctl -l—
delete a volumeraidctl -d volume—
fail a component and rebuild onto a spare—raidctl -F component dev
update controller firmwareraidctl -F filename controller—

Standards

  • POSIX: raidctl is not a POSIX.1-2024 utility.

Writing portable scripts

  • Do not share raidctl scripts between Solnix and NetBSD. -C, -c, -F, -f, -a and -g mean different things, and a wrong -F on NetBSD fails a disk.

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.