VNDCONFIG(8)

NAME
vndconfig - configure vnode disks

SYNOPSIS
vndconfig [-cirvz] [-f disktab] [-t typename] vnode_disk regular_file [geomspec]
vndconfig -u [-Fv] vnode_disk
vndconfig -l [-m min] [vnode_disk ...]

DESCRIPTION
The vndconfig command configures vnode pseudo disk devices. It will associate the vnode disk vnode_disk with the regular file 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. The vnode_disk is a special file of raw partition or name of vnode disk like vnd0.

By default, accesses to the file bypass normal mechanisms and thus do not read from or fill the filesystem cache. Because the typical approach is to access the file only via vnd(4), or at least to have regular accesses and vnd(4) accesses separated in time, this is generally not problematic. This bypassing behavior results in not updating the modification timestamp of the file. Also, file contents read through the filesystem (and thus the filesystem's caching layer) may not be the contents written via this interface, so caution is in order for backups. The -i option may be useful if it is necessary to avoid inconsistent caching.

Options indicate an action to be performed:

-c  Configures the device. If successful, references to vnode_disk will access the contents of regular_file.

    If geomspec is specified, the vnode device will emulate the specified disk geometry. The format of the geomspec argument is:

    secsize/nsectors/ ntracks/ncylinders

    If geometry is not specified, the kernel will choose a default based on 1MB cylinders. secsize is the number of bytes per sector. It must be a power of two, and at least 512. nsectors is the number of sectors per track. ntracks is the number of tracks per cylinder. ncylinders is the number of cylinders in the device.

-F  Force unconfiguration if the device is in use. Does not imply -u.

-f disktab
    Specifies that the -t option should look up in disktab instead of in /etc/disktab.

-i  Configure the device to use regular file I/O even when direct I/O using bmap/strategy would be possible.

-l  List the vnd devices and indicate which ones are in use. If one or more specific vnode_disks are given, then only those will be described.

-m min
    Together with -l and if no specific devices are given, causes at least min devices to be listed. The default for min is 4, but all vnd devices up to (and sometimes just beyond) the highest numbered vnd device configured since the system last booted will be listed. If min is set to 0, then only vnd devices currently in use will be shown.

-r  Configure the device as read-only.

-t typename
    If configuring the device, look up typename in /etc/disktab and use the geometry specified in the entry. This option and the geomspec argument are mutually exclusive.

-u  Unconfigures the device.

-v  Print messages to stdout describing actions taken.

-z  Assume that regular_file is a compressed disk image in cloop2 format, and configure it read-only. See the vndcompress(1) manpage on how to create such an image.

If no action option [-clu] is given, -c is assumed.

FILES
/dev/rvnd??
/dev/vnd??
/etc/disktab

EXIT STATUS
vndconfig will exit with status 0 if the operation requested completed successfully, or 1 otherwise. Unsuccessful completion can be caused by unknown or incorrectly used options; attempting to configure a vnd that is already configured; or unconfigure one that is not, or without -F, one which is still in use; or if devices are specified that do not exist or are not vnd(4) devices, giving an improper geometry, etc.

EXAMPLES
    vndconfig vnd0 /tmp/diskimage
or
    vndconfig /dev/rvnd0c /tmp/diskimage

Configures the vnode disk vnd0. Please note that use of the second form of the command is discouraged because it requires knowledge of the raw partition which varies between architectures. For the first form, be aware that there must not be a file vnd0 in the current directory, or it will be assumed to be the vnd device to be configured (which will usually fail).

    vndconfig vnd0 /tmp/floppy.img 512/18/2/80

Configures the vnode disk vnd0 emulating the geometry of 512 bytes per sector, 18 sectors per track, 2 tracks per cylinder, and 80 cylinders total.

    vndconfig vnd0 /tmp/image.udf 2048/1/1/0

Configures the vnode disk vnd0 for an UDF image to be used with mount_udf(8).

    vndconfig -t floppy vnd0 /tmp/floppy.img

Configures the vnode disk vnd0 using the geometry specified in the floppy entry in /etc/disktab.

    vndconfig -u vnd0

Unconfigures the vnd0 device.

To obtain status on all vnd devices listed in /dev (assuming a system where the ‘d’ partition is the whole device (RAW_PART)), use:

    vndconfig -l /dev/vnd*d

Using
    vndconfig -m0 -l /dev/vnd*d
will omit those devices that are not in use, whereas
    vndconfig -l
will list all devices known to the kernel (at least 4 without -m) regardless of what might appear in /dev (or elsewhere.)

SEE ALSO
vndcompress(1), opendisk(3), vnd(4), mount(8), swapctl(8), umount(8)

HISTORY
The vnconfig command appeared in NetBSD 1.0. It was renamed to vndconfig in NetBSD 7.0 for consistency with other similar commands. (The original name was also retained as an alternative for backwards compatibility.)