VND(4) | Device Drivers Manual | VND(4) |
vnd
— 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>
:
VNDIOCSET
struct vnd_ioctl *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 *vnd
device.VNDIOCGET
struct vnd_user *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).
vnd
device special filesioctl(2), sd(4), disklabel(5), config(8), disklabel(8), fdisk(8), fsck(8), MAKEDEV(8), mount(8), newfs(8), vnconfig(8)
July 2, 2014 | OpenBSD-6.2 |