monitor - usb disks automount

Viene installato un sistema di autmount, basato su udev, che
lavora in questo modo:

 * una regola di udev tiene monitorato l'inserimento e la rimozione
 di dischi (non solo usb), che contengano almeno una partizione valida
 e con ID_FS_TYPE="crypto_LUKS"

 * in base alle definizione del file /etc/crypttab lo script
 /usr/sbin/ku-handle-removable-luks tenta di aprire il device LUKS,
 oppure lo chiude in caso di rimozione; per fare questo e` necessario
 che la entry in /etc/crypptab abbia un keyfile specificato, in modo
 da poter aprire il device senza chiede passwords, altrimenti il
 device verra` ingnorato

 * dal file crypttab viene ricavato anche il nome del device mapped
 relativo al device dm aperto (esempio: /dev/mapper/nome); nel
 file /etc/fstab la entry per il mount deve puntare a questo device
 perche` sia presa in gestione dallo script

 * basandosi su entry in /etc/fstab il sistema non permette di
 montare arbitrariamente qualsiasi device; inoltre, come da
 specifiche Debian/Ubuntu, in caso di sessione Gnome attiva,
 le partizioni in questione vengono ignorate da Gnome (perche`
 descritte in /etc/fstab) e possono quindi essere gestite dal
 nostro script senza interferenze

Per avere quindi un disco rimovibile montato automaticamente occorre
inserire in /etc/fstab una entry basata sulla label della partizione,
ad esempio:

{{{
/dev/mapper/backup1  /mnt/backup auto defaults,user,ro,noauto,noatime,commit=20,data=writeback 0 0
}}}

Nell'esempio e` importante notare che:

 * il device e` montato readonly, questo e` ok nel caso sia gestito
 da procedure che lo rimontano rw al momento (esempio, kubackup); in
 questo modo e` possibile rimuovere il disco senza procurare danni,
 lo script si occupa di eseguire l'umount a posteriori

 * se decidete di montare il device "rw" sarebbe bene impostare
 anche l'opzione "sync", in questo modo tutte le writes saranno
 eseguito in tempo reale, pero` le prestazioni saranno pessime;
 inoltre non e` comunque garantito che il filesystem non sara`
 corrotto in caso di rimozione fisica del disco, se prima non
 fate, manualmente, l'umount

 * per ottimizzare bufferizzazione e ridurre i rischi di corruzione
 del filesystem in caso di disconnessione a caldo (montato rw) del
 disco, il data journal e` impostato a writeback e il commit a 20 sec


<!> occorre notare, inoltre, che udev ha un minimo di latenza nel
gestire la connessione e disconnessione, quindi se si disconnette un
disco, occorre aspettare una decina di secondi prima di riconnettere
un altro (o lo stesso) disco, in modo da lasciare a udev il tempo di
eseguire il comendo di umount
