These are some notes on the design considerations for a script-based automounter for USB mass-storage devices, including FLASH drives, SD cards and 'real' hard drives. Multi-card readers are supported. I wanted something easy to use and easy to administrate by default that could work as easily as USB storage devices do under Windows or MAC OS. I started from scratch writing code in a linear fashion as I wasn't sure what was possible and not. I tried to put myself in the place of a typical inexperienced user and administrator and use a safe but easy default behaviour. A: Installation should be easy with little configuration required, but with the possibility to tighten things as needed. Xusb-hotmount installs as a Slackware package without overwriting any standard Slackware files and by default the program is unactivated. For Slackware, simply setting the execute bit on /etc/rc.d/rc.usbwatch makes the program active. B: Initialization and Program execution mode. Studying how other systems work, including autofs, usbmount and hotmnt shows a variety of modes of usage and interface: Daemon/Polling: Runs some sort of daemon or polling program intermittently in order to search for new devices or removed devices On-Demand/Event-triggered: Use hotplug or udev events to trigger actions On-Request/User-driven: Run actions only when a user(or root) runs a program C: Device Detection usbmount shows how either udev or hotplug can be used to trigger events. Obtaining a list of 'eligible' devices/partitions to process is handled several ways. With udev 'ls /dev/sd*' is very direct. Looping through arbitrary ranges is slower and needless if you have udev. This won't work with kernel-2.4 so I use blkid as the partition lister. usbmount uses an external program sg_utils (try) to uniquely identify device partitions. I've seen other code that usbmount requires you to manually edit /etc/udev/udev.rules and/or /etc/hotplug/usb.agent. (hotmnt requires editing ude.rules also???) I found that it was better with hotplug to create a unique 'hook' in /etc/hotplug.d/usb. This avoids editing/overwriting standard hotplug files and needs no further configuration. Executable files in /etc/hotplug.d/usb with the '.hotplug' extension are executed automatically. udev can apparently do the same -instead of editing udev-rules and executable script can be placed D: Mounting of devices Mount Options and Default behaviour: