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 0Create these directories
mkdir /mnt/cdromNow we should tell amd that it should mount these devices automatically as we access their folders.
mkdir /mnt/flash
Put those options in /etc/amd.conf
[ global ]And those lines to /etc/amd.map
restart_mounts = yes unmount_on_exit= yes
# $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";\One more step -- enable amd startup at boot.
unmount:="/sbin/umount umount /mnt/flash"
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 /hThe 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
That's it. You've got a working automounter for your pluggable devices.
ln -s /host/localhost/flash /flash
ln -s /host/localhost/cdrom /autocdrom
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. include "../footer.php"; ?>