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:
- Mount hotpluggable devices
- Mount HD-Partitions
- Mount CD-Roms
- Mount Floppydisks
- Support for LABEL= and UUID= options in fstab
- Support for configuration file
- Support for commandline options
- Can be run as daemon
Planned:
(in order of importance)
- Partitiontable Support
- Complete library conversion for disktype (currently only fat and linux partitions are recognized)
- Additional tools like "eject"
- As little errormessages in syslog as possible
- Mount CD-Roms (without error messages in syslog)
- Mount Floppydisks (without error messages in syslog - if possible)
- Support for "special" fstab entries like usbdevfs/procfs etc. (untested)
- UUID Workaround for non-UUID capable filesystems
- Support for linux device file system "devfs"
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