FSCONFIG(8)FSCONFIG(8)NAMEfsconfig - configuring a file server
filsys name device
copydev from-dev to-dev
When an fs(4) file server's configuration has not been set, or by
explicit request early in the server's initialization (see fs(8)), the
server enters `config mode'. The commands described here apply only in
that mode. They establish configuration constants that are typically
valid for the life of the server, and therefore need be run only once.
If the non-volatile RAM on the server gets erased, it will be necessary
to recreate the configuration.
In these commands, ipaddr is an IP address in the form 22.214.171.124
and name is a text string without white space. The syntax of a device
is more complicated:
Defines a SCSI disk on target (unit) id n2, controller (host
adapter) n1, and LUN (logical unit number) n3. A single number
specifies a target, while two numbers specify target.lun, with
the missing numbers defaulting to zero. Any one of the numbers
may be replaced by <m-n> to represent the values m through n
inclusive. M may be greater than n. For example, (w<1-4>) is
the concatenation of SCSI targets 1 through 4.
H is similar to w, but for IDE or ATA disks, and the controllers
must be specified in plan9.ini. Lun is ignored. Target 0 is an
IDE master and 1 is a slave. Instead of specifying controller
and target separately, one may omit the controller and specify a
target of controller-number*2 + target-number, thus h2 is equiv‐
alent to h1.0.0 (second IDE controller, master drive).
M is similar to h, but for SATA drives connected to Marvell
88SX0 controllers. There is no need to specify the
controllers in plan9.ini as they are autodiscovered. Hot-swap‐
ping drives is not currently supported. Similar target naming
rules apply as for IDE controllers. However the controller-num‐
ber is multiplied by the number of drives the controller sup‐
ports rather than 2. Thus m9 is equivalent to m1.1.0 (second
controller, second drive), if the first controller supports 8
The same as w, but leaving a single block at the beginning for a
label (l), or not. Only n2 is really of interest, and refers to
a side of a WORM disc. These are only really relevant when used
as device3 in the j device (see below).
A pseudo-device formed from the concatenation of the devices in
the list. The devices are not blank- or comma-separated.
A pseudo-device formed from the block-wise interleaving of the
devices in the list. The size of the result is the number of
devices times the size of the smallest device.
A pseudo-device formed from the mirroring of the first device in
the list onto all the others. The size of the result is the
size of the smallest device. One might think of this as RAID 1,
and [ ] as RAID 0, though neither includes any fancy recovery
mechanisms. Each block is written to all the devices, starting
with the rightmost in the list and working leftward. A block is
read from the first device that provides it without error,
starting with the leftmost in the list and working rightward.
A partition starting at n1% from the beginning of device with a
length n2% of the size of the device. Parenthesize device if it
A pseudo-device that contains the byte-swapped contents of
device. Since the file server writes integers to disk in its
native byte order, it can be necessary to use this device to
read file systems written by processors of the other byte order.
Device1 is the SCSI juke box interface. The device2s are the
SCSI drives in the jukebox and device3 represents the demount‐
able platters in the juke box.
A pseudo-WORM disk: blocks on device can be written only once
and may not be read unless written.
A cached WORM. The first device is the cache, the second the
o (Letter o) The read-only (dump) file system of the most-recently
defined cached WORM file system.
The service command sets the textual name of the server as known in the
The configuration information is stored in block zero on a device whose
device string is written in non-volatile RAM. The config and nvram
commands identify the device on which the information is recorded. The
config command also erases any previous configuration.
The filsys command configures a file system on device and calls it
name. Name is used as the specifier in attach messages to connect to
that file system. (The file system main is the one attached to if the
specifier is null; see attach(5)).
The rest of the configuration commands record IP addresses: the file
server's address (ip), the local gateway's (ipgw), the local authenti‐
cation server's (ipauth), the local subnet mask (ipmask), and the
address of a system running an SNTP server (ipsntp). Ipauth is no
longer used. If the server has more than one network interface, a
digit may be appended to the keywords ip, ipgw and ipmask to indicate
the interface number; zero is the default.
The ream command initializes the named file system. It overwrites any
previous file system on the same device and creates an empty root
directory on the device. If name is main, the file server, until the
next reboot, will accept wstat messages (see stat(5)) that change the
owner and group of files, to enable initializing a fresh file system
from a mkfs(8) archive.
For the recover command, the named file system must be a cached WORM.
Recover clears the associated magnetic cache and initializes the file
system, effectively resetting its contents to the last dump.
Allow turns off all permission checking; use with caution.
Readonly disables all writing to all devices. This is useful for try‐
ing dangerous experiments.
Noauth disables authentication.
Noattach prevents attachs.
Copyworm will copy a file system named main to one named output, block
by block, and loop. It knows how to read a fake worm file system.
Copydev will copy the device from-dev to the device to-dev. block by
block, and panic.
Halt will cause the server to immediately exit and reboot.
The various configuration commands only record what to do; they write
no data to disk. The command end exits config mode and begins running
the file server proper. The server will then perform whatever I/O is
required to establish the configuration.
Initialize a file server kgbsun with a single file system interleaved
between SCSI targets 3 and 4.
filsys main [w<3-4>]
Initialize a file server kremvax with a single disk on target 0 parti‐
tioned as a cached pseudo-WORM file system with the cache on the third
quarter of the drive and the pseudo-WORM on the interleave of the
first, second, and fourth quarters.
filsys main cp(w0)50.25f[p(w0)0.25p(w0)25.25p(w0)75.25]
filsys dump o
A complete and complex example: initialize a file server fsb with a
single SCSI disk on target 0 for a scratch file system, a cached WORM
file system with cache disk on target 2 and an optical-disc jukebox on
targets 4 (robotics) and 5 (one optical drive), and another cached WORM
file system with cache disk on target 3 and another optical-disc juke‐
box on a second SCSI bus at targets 3 and 4. Both jukeboxes contain 16
slots of optical discs. It has two Ethernet interfaces and can reach
an SNTP server on the first one.
filsys main cw2j(w4w5)(l<0-31>)
filsys dump o
filsys hp40fx cw3j(w1.<3-4>.0)(l<0-31>)
filsys hp40fxdump o
filsys other w0
Ken Thompson, ``The Plan 9 File Server''.