/dev/{,r}vnd*
vnd device special files
Vnode disk driver
pseudo-device vnd [count]
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.
The following ioctl(2) calls are defined in ⟨dev/vndioctl.h⟩:
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;
};
Disassociate a vnd device.
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).
/dev/{,r}vnd*
vnd device special files
61 releases since OpenBSD 2.1; the text changed 15 times.