VND(4) | Device Drivers Manual | VND(4)

# NAME

`vnd` — vnode disk driver

# SYNOPSIS

`pseudo-device vnd` [count]

# DESCRIPTION

The `vnd` driver provides a disk-like interface to a file. This is useful for a variety of applications, such as building miniroot or floppy disk images.

This document assumes familiarity with how to generate kernels and how to properly configure disks and pseudo-devices in a kernel configuration file.

In order to compile in support for `vnd` devices, a line similar to the following must be present in the kernel configuration file:

    pseudo-device	vnd	4	# vnode disk driver

The count argument is how many `vnds` memory is allocated for at boot time. In this example, no more than 4 `vnds` may be configured.

There is a run-time utility that is used for configuring `vnds`. See vnconfig(8) for more information.

# IOCTL INTERFACE

The following ioctl(2) calls are defined in `<dev/vndioctl.h>`:

`VNDIOCSET` struct vnd_ioctl *
  Associate the file vnd_file with a `vnd` pseudo device, optionally encrypted using the Blowfish cipher and the key specified in vnd_key of length vnd_keylen. The size of the configured device is returned in vnd_size.

      struct vnd_ioctl {
      	char	*vnd_file;
      	off_t	vnd_size;
      	u_char	*vnd_key;
      	int	vnd_keylen;
      };

`VNDIOCCLR` struct vnd_ioctl *
  Disassociate a `vnd` device.
`VNDIOCGET` struct vnd_user *
  Get the associated file name, device, inode number, and unit number of a `vnd` device. If vnu_unit is -1, information on the `vnd` device corresponding to the file descriptor passed to ioctl(2) will be returned. Otherwise, vnu_unit may contain the unit number of another `vnd` device. This allows for opening just `vnd0` and querying all available devices.

      struct vnd_user {
      	char	vnufile[VNDNLEN];
      	int	vnu_unit;
      	dev_t	vnu_dev;
      	ino_t	vnu_ino;
      };

Additionally, some disklabel(8) related ioctl(2) calls defined in `<sys/dkio.h>` are available: `DIOCGDINFO`, `DIOCSDINFO`, and `DIOCWDINFO`. They are documented in sd(4).

# FILES

/dev/{,r}vnd*
  `vnd` device special files

# SEE ALSO

ioctl(2), sd(4), disklabel(5), config(8), disklabel(8), fdisk(8), fsck(8), MAKEDEV(8), mount(8), newfs(8), vnconfig(8)

July 2, 2014 | Debian