Volume Daemon
for GNU/Linux

What is it?

The Volume Daemon is a small program, that can automatically mount your CD-Roms, USB-Memory Sticks, iPods and other removable Media. The main goal is to provide an application that can take care of your storage devices so you don't need to edit fstab anymore. If you bought a new harddisk, the only thing to make it work is to plug it in. If there are partitions on it they will be mounted immediately. This program is in fact very similar to the volume daemon 'vold' found on Solaris or the 'autodiskmount' on Mac OS X.

But there already is an automounter in Linux! Why do we need this 'vold'?
Something I did never like about the automounter is that its auto mounting is somehow special. Devices are not mounted automatically when they are available but when they are accessed. Another point that really annoyed me was that when I plugged in my Memory Stick in Windows or in Mac OS X, I needn't do anything else - it just worked. I plugged it in on Linux and ... nothing happened (as usual..). I could live with the mount process but its not only that. The device names may change if you have more that one hotpluggable device depending on which device you plug in first.

But hey.. there already is a volume daemon for linux!
Yes I know. But that version does only support CD-Roms. And I just can't find it's homepage anymore.

That's why we now have a volume daemon. :-)

How it works

Vold maintains a list of devices which should be scanned. You can configure these devices in vold.conf (not yet implemented - devices are hardcoded now). On startup vold scans all devices for mountable partitions and mounts them. After that, devices marked as "periodic" are scanned every N seconds. You can however send a SIGUSR1 to force a rescan of all devices (this is especially useful if you want to integrate it with the current hotplug installation).
If a device is detected, vold uses the disktype library to find out the filesystem, volumelabel (if supported) and UUID. It then checks if there is a corresponding entry in /etc/fstab and mounts the device. If there is no entry in /etc/fstab the device is mounted under

/Volumes/[volumelabel] or /Volumes/[devicename]

if no volumelabel is available.
If you need to reidentify certain partitions (i.e. hotpluggable devices like USB-Flashsticks) and you don't like the volumelabel support (which is especially poor for fat partitions....) you can use UUID's. Instead of giving a device path in /etc/fstab you can use UUID=xxxxxx instead. The really cool thing about this is that your filesystem needn't support UUIDs by default. Vold will support a UUID file (.uuid_file) which you put in your UUID and move it to the partitions root directory. While scanning a new device vold will temporary mount the device and check for this file if you enable the corresponding option (disabled by default - and not yet implemented).

excerpt from vold.conf

#comments in vold.conf as usual...
volumeroot /Volumes #should be world writeable to allow a normal user to unmount the device!
default_mntopts rw #maybe in the future we will have per_fs_mnt_opts
uuid_filecheck on

#until we have partitiontable support you will need to specify every possible partition
#scan /dev/sda
scan /dev/sda1
scan /dev/sda2
scan /dev/sda3
scan /dev/sda4
scan /dev/sda5

Features

Working: Planned:
(in order of importance)

Download

Current stable release: vold-0.2.tar.gz

Older releases:
vold-0.1alpha.tar.gz

CVS

Standard Sourceforge CVS access. Just copy and paste this to your commandline.

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/vold login

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/vold co vold

Forum

Click here to go to the forum
BTW. I don't read the forum very often. If you have problems write me directly by mail.

Dependencies

Vold depends on
a modified version of disktype6 (with added library support) - http://disktype.sourceforge.net/
libuuid (part of the e2fsprogs package) - from http://e2fsprogs.sourceforge.net/

Contact

This program was written by Clemens Wacha. Feel free to tell me your opinion and write me an email.

Project hosted on Sourceforge.net
SourceForge.net Logo