|
| vold.conf - Volume Management configuration file |
SYNOPSIS
|
The vold.conf file contains the Volume Management configuration information used by vold(1M). This information includes the database to use,
labels that are supported, devices to use, actions to take when certain media events occur, and the list of file systems that are unsafe to eject without unmounting.
Modify vold.conf to specify which program should be called when media events happen (actions) or when you need to add another device to your system. See the example section for more information on adding devices.
If you modify vold.conf, you must tell vold to reread vold.conf by sending a HUP signal. Use
# kill -HUP vold_pid
File Format
|
The syntax for the vold.conf file is shown here.
|
# Database to use
db database
# Labels supported
label label_type shared_object device
# Devices to use
use device type special shared_object symname [ options ]
# Actions
insert regex [ options ] program program args
eject regex [ options ] program program args
notify regex [ options ] program program args
# List of file system types unsafe to eject
unsafe fs_type fs_type
|
Of these syntax fields, you can safely modify Devices to use and Actions.
|
Devices to Use Field
|
All use device statements must be grouped together by device type. (For
example, all use cdrom statements must be grouped together; and all use floppy statements must be grouped together.) Here are the explanations of the syntax for the Devices to use field.
-
device
- The type of removable media device to be used. Legal values are cdrom, floppy, pcmem and rmdisk.
-
type
- The specific capabilities of the device. Legal value is drive.
-
special
- This sh(1) expression specifies the device or devices to be used. Path usually begins with /dev.
-
shared_object
- The name of the program that manages this device. vold(1M) expects to find this
program in /usr/lib/vold.
-
symname
- The symbolic name that refers to this device. The symname is placed in the device directory.
-
options
- The user, group, and mode permissions for the media inserted (optional).
The special and symname parameters are related. If special contains any shell wildcard characters (i.e., has one or more asterisks or question marks in it), then the syname
must have a "%d" at its end. In this case, the devices that are found to match the regular expression are sorted, then numbered. The first device will have a zero filled in for the "%d", the second device found will have a one, and so on.
If the special specification does not have any shell wildcard characters then the symname parameter must explicitly specify a number at its end (see EXAMPLES below).
|
Actions Field
|
Here are the explanations of the syntax for the Actions field.
-
insert|eject|notify
- The media event prompting the event
-
regex
- This sh(1) regular expression is matched against each entry in the /vol
file system that is being affected by this event.
-
options
- You can specify what user or group name that this event is to run as (optional).
-
program
- The full path name of an executable program to be run when regex is matched.
-
program args
- Arguments to the program.
|
Default Values
|
The default vold.conf file is shown here.
|
#
# Volume Daemon Configuration file
#
# Database to use (must be first)
db db_mem.so
# Labels supported
label dos label_dos.so floppy
label cdrom label_cdrom.so cdrom
label sun label_sun.so floppy
# Devices to use
use cdrom drive /dev/dsk/c*s2 dev_cdrom.so cdrom%d
use floppy drive /dev/diskette[0-9] dev_floppy.so floppy%d
# Actions
insert /vol*/dev/fd[0-9]/* user=root /usr/sbin/rmmount
insert /vol*/dev/dsk/* user=root /usr/sbin/rmmount
eject /vol*/dev/fd[0-9]/* user=root /usr/sbin/rmmount
eject /vol*/dev/dsk/* user=root /usr/sbin/rmmount
notify /vol*/rdsk/* group=tty user=root /usr/lib/vold/volmissing -p
# List of file system types unsafe to eject
unsafe ufs hsfs pcfs
|
|
|
| Example 1. A sample vold.conf file.
|
To add a CD-ROM drive to the vold.conf file that does not match the default regular expression (/dev/rdsk/c*s2), you must explicitly list its device path and what symbolic name (with %d) you want the device
path to have. For example, to add a CD-ROM drive that has the path /dev/rdsk/my/cdroms? (where s? are the different slices), add the following line to vold.conf (all on one line):
use cdrom drive /dev/rdsk/my/cdroms2 dev_cdrom.so cdrom%d
Then, when a volume is inserted in this CD-ROM drive. volume management will assign it the next symbolic name. For example, if two CD-ROMs match the default regular expression, they would be named cdrom0 and cdrom1; and any that match the added regular expression
would be named starting with cdrom2.
For a diskette that does not match the vold.conf default regular expression (/dev/floppy[0-9]), a similar line would have to be added for the diskette. For example, to add a diskette whose path was /dev/my/fd0, you would add the following
to vold.conf:
use floppy drive /dev/my/fd0 dev_floppy.so floppy%d
|
|
|
Volume Management manages both the block and character device for CD-ROMs and floppy disks; but, to make the configuration file easier to set up and scan, only one of these devices needs to be specified. If you follow the conventions specified below, Volume Management figures out both device names
if only one of them is specified. For example, if you specify the block device, it figures out the pathname to the character device; if you specify the pathname to the character device, it figures out the block device.
CD-ROM Naming Conventions
|
The CD-ROM pathname must have a directory component of rdsk (for the character device) and dsk for the block device. For example, if you specify the character device using the line:
use cdrom drive /dev/rdsk/my/cdroms2 dev_cdrom.so cdrom%d
then it is assumed that the block device is at
/dev/dsk/my/cdroms2
|
Floppy Disk Naming Conventions
|
For floppy disks, Volume Management requires that the device pathnames end in either rfd[0-9]
or rdiskette[0-9] for the character device, and fd[0-9] or diskette[0-9] for the block device. As with the other removable disks, it generates either the block name given the character name, or the character name given the block name.
|
|
| |