VND(4) BSD Programmer's Manual VND(4)NAME
vnd - vnode disk interface
SYNOPSIS
pseudo-device vnd [count]
DESCRIPTION
The vnd driver provides block and raw disk interfaces to a regular file.
A vnode disk special file is associated with a regular file with the vnd-
config(8) utility. Once configured, the regular file can be accessed via
the appropriate block and raw special files in ``/dev'' allowing tradi-
tional disk operations such as disksetup(8), newfs(8), mount(8),
fsck(8), and swapon(8).
The vnd interface is useful for providing additional swap space within a
local filesystem or even remotely via NFS. It can also be used to create
bootstrap or ``mini-root'' filesystems without the need for a reserved
disk partition.
The vnd interface uses the virtual filesystem BMAP and STRATEGY opera-
tions which operate ``below'' the filesystem buffer cache. Hence, data
for a file referenced via a vnode disk special file won't be cached under
that file's vnode. If a vnode disk contains a filesystem which is then
mounted, this will prevent double caching of data for files within that
filesystem. It also prevents any caching of data for files being used as
swap partitions.
Only users with access to /dev/vnd can configure vnode disks.
SEE ALSOmount(8), newfs(8), swapon(8), umount(8), vndconfig(8)FILES
/dev/vnd vnd(4) configuration device
/dev/vnd?[a-h] block disk interfaces
/dev/rvnd?[a-h] raw disk interfaces
BUGS
The use of the BMAP/STRATEGY interface instead of READ/WRITE also ex-
cludes any read-ahead, write-behind, or clustering operations the
filesystem might implement.
The size of the vnode disk is constrained by the size of the file at the
time it is configured; i.e., extending the file does not increase the
size of the vnode disk.
The vnd driver returns an error if it encounters a hole in the associated
file.
In the case where the backing store is provided by a file in a ufs or mfs
file system the file system can be corrupted if the disk blocks used by
the file are freed by truncating the file. The user immutable bit is set
on files to provide protection against this.
If disksetup(8) is not used to label the disk an error will be reported
when newfs(8) is used to create a file system on the disk. This error is
benign.
When using Disksetup(8) to partition/label a vnd disk disksetup(8) will
complain that it can not determine the type of disk. For the time being
tell disksetup(8) that the disk is type SCSI when asked. When given the
choice of how to determine geometry choose ``Internal label used by ker-
nel''.