FreeBSD Automount USB and CD-Rom
Search Website: Extended
Home

Certifications


Cisco


IP


PC


Protocols


RemoteAccess


Resources


Security


Telecommunications


Tools


Unix


Web


mindterm






FreeBSD Automount USB and CD-Rom

You can use default FreeBSD automount daemon (amd) to automatically mount and unmount external storage devices as USB or CD-ROM.
Add all necessary devices to /etc/fstab with noauto option (which will prevent automounting them at startup). This 2 entries are for single USB mass storage device and CD-ROM.
/dev/acd0       /mnt/cdrom  cd9660    ro,noauto   0   0
/dev/da0s1      /mnt/flash  msdosfs   rw,noauto   0   0
Create these directories
mkdir       /mnt/cdrom
mkdir /mnt/flash
Now we should tell amd that it should mount these devices automatically as we access their folders.
Put those options in /etc/amd.conf
[ global ]
restart_mounts = yes unmount_on_exit= yes
And those lines to /etc/amd.map
# $FreeBSD: src/etc/amd.map,v 1.9 2002/05/15 22:24:29 obrien Exp $
*               opts:=rw,grpid,resvport,vers=3,proto=tcp,nfs_retransmit_counter=10,nosuid,nodev

localhost            type:=auto;fs:=${map};pref:=${key}/

localhost/cdrom   type:=program;fs:=/mnt/cdrom;\
                        mount:="/sbin/mount mount /mnt/cdrom";\
                        unmount:="/sbin/umount umount /mnt/cdrom"

localhost/flash      type:=program;fs:=/mnt/flash;\
                        mount:="/sbin/mount mount /mnt/flash";\
unmount:="/sbin/umount umount /mnt/flash"
One more step -- enable amd startup at boot.

Add these lines to /etc/rc.conf
portmap_enable=YES
portmap_flags="-h 127.0.0.1"
amd_enable=YES
amd_flags="-a /.amd_mnt -c 10 -w 2 -l syslog /host /etc/amd.map"
Portmap will bind with localhost address - thus disallowing someone to connect from outside, which improves security.

amd_flags have interesting option -w, which specified how long keep device mounted after nobody access them. I prefer to keep this value very low (2 seconds) to avoid occasionally disconnecting device while it's mounted.

After restart you can check that amd is running -- run ps -ax | grep 'amd\|rpc' command. You should get a listing like this:

565  ??  Ss     0:00.01 /usr/sbin/rpcbind -h 127.0.0.1
607  ??  Ss     0:00.66 /usr/sbin/amd -p -a /.amd_mnt -c 10 -w 2 -l syslog /h
The PID's will probably be different, but this doesn't matter.
Now if you change to /host/localhost/cdrom, it will try to mount cdrom under /mnt/cdrom, and create symbolic link in /host/localhost directory.

To make things much more comfortable, just create symlinks in root directory

ln -s /host/localhost/flash /flash
ln -s /host/localhost/cdrom /autocdrom
That's it. You've got a working automounter for your pluggable devices.

Unmounting: it will unmount all devices as long as there is no program using it. So if you've changed to /cdrom and automounter mounted cdrom, please step out of directory (like cd .. or cd) to allow automounter unmount it.


This page was created in 0.00105 seconds
Comments and Questions
Last modified: March 08 2009.