261 lines
8.4 KiB
Groff
261 lines
8.4 KiB
Groff
.\" Copyright (c) 1993 University of Utah.
|
|
.\" Copyright (c) 1980, 1989, 1991, 1993
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
.\"
|
|
.\" This code is derived from software contributed to Berkeley by
|
|
.\" the Systems Programming Group of the University of Utah Computer
|
|
.\" Science Department.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
.\" may be used to endorse or promote products derived from this software
|
|
.\" without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" @(#)vnconfig.8 8.1 (Berkeley) 6/5/93
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd July 8, 1993
|
|
.Dt VNCONFIG 8
|
|
.Os BSD 4
|
|
.Sh NAME
|
|
.Nm vnconfig
|
|
.Nd configure and enable vnode disks
|
|
.Sh SYNOPSIS
|
|
.Nm vnconfig
|
|
.Op Fl cdeguv
|
|
.Op Fl s Ar option[,option...]
|
|
.Op Fl r Ar option[,option...]
|
|
.Op Fl S Ar value
|
|
.Ar special_file Ar [regular_file]
|
|
.Op Ar feature
|
|
.Nm vnconfig
|
|
.Fl a
|
|
.Op Fl cdeguv
|
|
.Op Fl s Ar option
|
|
.Op Fl r Ar option
|
|
.Op Fl f Ar config_file
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
command configures and enables vnode pseudo disk devices.
|
|
The first form of the command will associate the special file
|
|
.Ar special_file
|
|
with the regular file
|
|
.Ar regular_file
|
|
allowing the latter to be accessed as though it were a disk.
|
|
Hence a regular file within the filesystem can be used for swapping
|
|
or can contain a filesystem that is mounted in the name space. If you
|
|
want to use swap backing store for your device instead of a file, you
|
|
can leave regular_file out and specify the size of the block device
|
|
with the -S option.
|
|
.Pp
|
|
Options indicate an action to be performed:
|
|
.Bl -tag -width indent
|
|
.It Fl a
|
|
Read a command file and performs the
|
|
specified actions for each device/file pair.
|
|
.It Fl c
|
|
Configure the device.
|
|
If successful, references to
|
|
.Ar special_file
|
|
will access the contents of
|
|
.Ar regular_file .
|
|
.It Fl d
|
|
Disable (if possible) the specified feature.
|
|
.It Fl e
|
|
Configure the device and enables any
|
|
.Ar feature
|
|
that was specified.
|
|
If no feature was specified,
|
|
.Fl e
|
|
is the same as
|
|
.Fl c .
|
|
.It Fl f Ar config_file
|
|
Use
|
|
.Ar config_file
|
|
as an alternate config file.
|
|
.It Fl g
|
|
Fiddle global options.
|
|
.It Fl r Ar flag
|
|
Reset
|
|
.Ar flag .
|
|
The list of allowed flags and their meanings are:
|
|
.Bl -tag -width "follow"
|
|
.It Ar labels
|
|
use disk/slice labels.
|
|
.It Ar reserve
|
|
Pre-reserve the blocks underlying the file or swap backing store. Currently only
|
|
works for swap backing store. This option also disables on-the-fly freeing of
|
|
the underlying backing store (for example, when you remove a large file).
|
|
Use this option if you wish to avoid long-term fragmentation of the backing
|
|
store. Also note that when this option is used, the initial contents of the
|
|
backing store may contain garbage rather then zeros. It may even be possible to
|
|
recover the prior contents of a swap-backed VN across a reboot if the VN device
|
|
is configured before any swap is allocated by the system.
|
|
.It Ar follow
|
|
debug flow in the
|
|
.Xr vn 4
|
|
driver.
|
|
.It Ar debug
|
|
debug data in the
|
|
.Xr vn 4
|
|
driver.
|
|
.It Ar io
|
|
debug I/O in the
|
|
.Xr vn 4
|
|
driver.
|
|
.It Ar all
|
|
turn on all flags.
|
|
.It Ar none
|
|
turn off all flags.
|
|
.El
|
|
.It Fl s Ar flag
|
|
Set
|
|
.Ar flag .
|
|
The list of allowed flags and their meanings are the same as for the
|
|
.Fl r
|
|
option.
|
|
.It Fl S Ar value{k,m,g,t}
|
|
If no regular file is specified, VN will use swap for backing store.
|
|
This option specifies the size of the device. For example, '23m' for
|
|
23 megabytes. The VN device will round the size up to a machine page boundry.
|
|
Filesystems up to 7.9 terrabytes are supported. When specified along with
|
|
a regular file, this option overrides the regular file's size insofar as
|
|
VN is concerned.
|
|
.It Fl T
|
|
When a regular file is specified, VN will ftruncate() the file to 0 first.
|
|
Normally you should also specify the -S option to set the size of the file.
|
|
This option also creates the file if it did not previously exist.
|
|
This option is only meaningful if the -S option has been specified.
|
|
.It Fl Z
|
|
When a regular file is specified, VN will zero the contents of the file to
|
|
ensure that all blocks have been allocated by the filesystem. This option is
|
|
only meaningful if the -S option has been specified.
|
|
.It Fl u
|
|
Disable and ``unconfigure'' the device.
|
|
.It Fl v
|
|
Print messages to stdout describing actions taken.
|
|
.El
|
|
.Pp
|
|
If no action option is given,
|
|
.Fl c
|
|
is assumed.
|
|
.Pp
|
|
The
|
|
.Ar feature
|
|
argument specifies a feature that can be enabled via the
|
|
.Fl e
|
|
option:
|
|
.Bl -tag -width indent
|
|
.It Dv swap
|
|
Swapping is enabled on the special file.
|
|
See
|
|
.Xr swapon 2 .
|
|
.It Dv Pf mountro= Pa mount_point
|
|
The special file is mounted read-only on
|
|
.Ar mount_point .
|
|
See
|
|
.Xr mount 2 .
|
|
.It Dv Pf mountrw= Pa mount_point
|
|
The special file is mounted read-write on
|
|
.Ar mount_point .
|
|
See
|
|
.Xr mount 2 .
|
|
.It Dv Pf mount= Pa mount_point
|
|
Same as ``mountrw=''.
|
|
.El
|
|
.Pp
|
|
A configuration file contains one line per device/file pair in the form:
|
|
.Bd -literal
|
|
special_file regular_file [ feature ]
|
|
.Ed
|
|
.Pp
|
|
where fields are seperated by white space.
|
|
The previously described action options serve to configure, enable,
|
|
disable or unconfigure all devices in the configuration file.
|
|
.Sh FILES
|
|
.Bl -tag -width /etc/vntab -compact
|
|
.It Pa /etc/vntab
|
|
default configuration file for
|
|
.Fl a
|
|
option
|
|
.El
|
|
.Sh EXAMPLES
|
|
.Pp
|
|
.Dl vnconfig vn0c /tmp/diskimage
|
|
.Pp
|
|
Configures the vnode disk
|
|
.Pa vn0c .
|
|
.Pp
|
|
.Dl vnconfig -e vn0c /var/swapfile swap
|
|
.Pp
|
|
Configures
|
|
.Pa vn0c
|
|
and enables swapping on it.
|
|
.Pp
|
|
.Dl vnconfig -d vn0c myfilesystem mount=/mnt
|
|
.Pp
|
|
Unmounts (disables)
|
|
.Pa vn0c .
|
|
.Pp
|
|
.Dl vnconfig -ae
|
|
.Pp
|
|
Configures and enables all devices specified in
|
|
.Pa /etc/vntab .
|
|
.Pp
|
|
.Dl vnconfig -s labels -c vn0 somebackingfile
|
|
.Dl disklabel -r -w vn0 auto
|
|
.Dl disklabel -e vn0
|
|
.Pp
|
|
Is an example of how to configure a file-backed VN disk with a disk label
|
|
and to initialize and then edit the label. Once you create the label, you
|
|
can partition your VN disk and, for example, create a filesystem on one of
|
|
the partitions. If you are using a file as backing store, it may be possible
|
|
to recover your VN disk after a crash by vnconfig'ing the same file again
|
|
and using the VN configuration already stored in the file rather then
|
|
relabeling and recreating the filesystem. It is even possible to fsck the
|
|
VN partitions that previously contained filesystems.
|
|
.Pp
|
|
.Dl vnconfig -e -s labels,reserve -S 400m vn0
|
|
.Dl disklabel -r -w vn1 auto
|
|
.Dl newfs /dev/rvn1c
|
|
.Dl mount /dev/vn1c /usr/obj
|
|
.Pp
|
|
Is an example of a swap-backed VN disk configuration. This example assumes
|
|
that you have at least 400 megabytes of swap free (and hopefully much more).
|
|
The swap space is pre-reserved in order to maintain maximum performance.
|
|
We then label the disk, newfs it, and mount it as /usr/obj. Swap-backed VN
|
|
devices are recoverable after a crash if you (A) use the reserve flag, and if
|
|
(B) the same swap is reserved as was the last time, meaning that such
|
|
vnconfig's would have to be run in your rc.local. In general, though, you
|
|
only use swap-backed VN devices to hold information you don't mind losing
|
|
on every reboot.
|
|
.Sh SEE ALSO
|
|
.Xr mount 2 ,
|
|
.Xr swapon 2 ,
|
|
.Xr unmount 2 ,
|
|
.Xr vn 4
|