---
name: "vold"
section: "1"
platform: "linux"
package: "vold"
version: "1.1-10"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/vold"
---

# vold(1)

Volume daemon for mounting cdroms etc.

## NAME

vold - Volume daemon for mounting cdroms etc.

## SYNOPSIS

**vold \[-d** *debug-level***\] \[-fh\] \[-p** *period***\] \[-s\_\]**

## DESCRIPTION

**Vold** is a daemon that attempts to mount removable media (such as CDROM) automatically upon insertion. It does this by opening these devices at regular time intervals (default 5 seconds), trying to read data. If this succeeds the *volume name* of the medium is scanned for. A directory typically called **/cdrom/***volume-name* is created, and the cdrom is mounted at that point.

**vold** opens a pipe at the location  */var/run/vold.pipe* waiting for commands. This pipe is written to typically by the program **volq**. Commands may involve unmounting and ejecting a cdrom specified by the volume name.

## OPTIONS

- \-d debug-level

  Set debug level. Level 1 prints basic progress to stderr, higher debug levels are for development.

- \-f

  Don't fork to background, but stay in the foreground. This may be useful for debugging purposes.

- \-h

  Print copyright information and terse help.

- \-p period

  Set the delay period between successive attempts to read from the devices. Default is 5 seconds, so it may take up to this period before a cdrom is mounted after you've inserted it.

- \-s

  Be strict about the volume names.  According to ISO 9660, a volume name may contain only characters from \[A-Z0-9\_\], i.e., no lowercase characters.  However, many implementations don't really care.  By setting this options, only characters matching \[A-Z0-9\_\]+ from the start of the volume name are accepted.

- \-\_

  Use underscores for volume names containing spaces.  If a volume name contains blanks, e.g.,  **Debian 1.3.1 Binary**, translate the blanks into underscore characters  **\_**. Note that in the mounttab, this conversion will always take place, because otherwise  **mount***(2)* gets confused.

## CONFIGURATION FILE

In a file  */etc/voltab* the locations of the devices that are scanned for removable media are tabulated. The format of this file is similar to that of */etc/fstab*. A typical voltab file looks like

/dev/cm206cd  /cdrom iso9660  ro        0 0\
 /dev/hdb      /cdrom iso9660  ro,nosuid 0 0

This example shows a configuration of 2 drives, the cheap and obsolete Philips/LMS cm206 drive, and a nowadays even cheaper IDE ATAPI cdrom drive. If you have a CD labeled *GNU* it will be mounted under */cdrom/gnu* independently of which drive you put the CD in.

## REASON FOR EXISTENCE

The  **vold** daemon was conceived after SUN's principle of mounting cdroms under the location indicated above. The author believed that SUN's original meaning must have been to mount all cdroms on the local network under the same root */cdrom*. The idea is that cdroms tend to move around from one machine to another as soon as you have more cdroms than cdrom drives on your network, and more than one cdrom drive in total. One generally replaces the least needed cdrom by one not currently in one of the drives on the network, that happens to be needed at that time. A user doesn't want to be concerned with where the cdrom is located, he or she just wants a uniform way to specify a file on the cdrom.

At this moment, a network-wide implementation has not been written, yet. The idea is that the pipe could be replaced by a socket receiving commands across the network. However, it is possible to have a uniform cdrom file access by the above method, if you are lucky enough to have more than one cdrom drive on your machine. Then, you need not be concerned with which drive you put your CD in.

## SEE ALSO

[**volq**(1)](/volq/1.md), **mount**(1), [**fstab**(5)](/fstab/5.md).

## DIAGNOSTICS

The program forks itself into the background. There are several reasons why things may go wrong. For instance, the device may already be mounted at some place before  **vold** is started. Errors are reported to stderr, instead of trying to use the syslog service.

## BUGS

The author has only one cdrom, so multiple cdroms aren't tested, but should work in principle.

Floppy support has not been written, yet. Implementation very much depends on the fact if we can detect the existence of a floppy in the drive without having to read data (this would be too ugly).

## AVAILABILITY

## PORTABILITY

**Vold** is written specifically for Linux as the author is much obliged to the project and strongly believes in supporting it, but maybe it is easy to port to other systems. The program depends heavily an the availability of Linux-specific ioctls for CDROM, which are implemented only for a number of cdrom devices (among which IDE and SCSI) in the later 2.1 kernels. In fact, the author of  **vold** has written a generic interface for Linux cdroms because when he started to write vold, cdrom ioctlling was a mess.

It might be possible to detect the existence of a cdrom in a drive on other systems, as well as whether or not a media change has occurred.

## FILES

*/etc/voltab*

The table containing a list of devices that  **vold** operates on.

*/var/run/vold.pipe*

The pipe receiving commands

*/var/run/vold.pid*

The pid of the daemon

## AUTHOR

**Vold** is writen and copyrighted by David A. van Leeuwen (david@ElseWare.cistron.nl). **Vold** is available under the conditions of the Gnu Public Licence, version 2.
