Newsgroup: it.comp.os.linux.iniziare
Titolo: BOLLETTINO RISOLTO n. 3: montare dischi esterni USB in posizioni fisse predeterminate

Disclaimer: quanto segue può contenere un sacco di inesattezze, però a me
funziona quindi lo condivido
Magari ho scoperto l'acqua calda... ma da quanto ho letto in giro su
internet, io come molti altre ci siamo scontrati con questo problema,
relativo a Ubuntu.
Ho dei dischi esterni collegati tramite USB. Non li stacco mai, stanno
sempre lì dove li ho lasciati, magari neanche li sposto... vorrei che ad
ogni boot gli stessi dischi venissero montati nelle stesse directory.
"montati" significa che se da shell faccio "ls
<directory_del_disco_montato>" vedo i files presenti sul disco e non la
directory vuota.
Da quanto ho capito, di default, Ubuntu ha il vizio di montare i dischi dopo
averci cliccato sopra e, dopo il primo mount, ai successivi boot li monta
sempre nella stessa posizione... però sempre dopo averci cliccato sopra.
Nel mio caso questo non è pratico: i dischi sono attaccati a un laptop che
fa da server, quindi se fa un reboot e non c'è qualcuno a fare login e
click-click... sui vari dischi, l'altro PC client, che li monta tramite nfs,
non vede una favazza.
Inoltre, mi sembra che Ubuntu assegni a questi dischi dei device /dev/s...
il cui nome può cambiare a seconda dell'ordine in cui li ho montati.
Per cui lo stesso disco USB a volte è /dev/sdc a ltre invece /dev/sdd ecc.
Esistono però altri modi di identificare i dischi in questione, e sono
elencati sotto /dev/disk: by_uuid, by_label ecc...
Queste sono directory che contengono dei link ai device reali /dev/s...
Per usare il "by_label" bisogna assegnare una label al disco, ma se per caso
si decide di cambiare la label (nella vita tutto può succedere), bisogna
aggiornare i riferimenti al disco.
Questi sono contenuti nel file /etc/fstab che il sistema utilizza in fase di
startup per montare le varie partizioni.
Grosso modo, il formato è abbastanza semplice, ogni riga deve contenere
questi parametri:
- identificativo del device
- punto di mount
- tipo di filesystem (ext2, ext3, fat, nfs ecc.)
- opzioni generiche (di mount) e specifiche (di filesystem) -----> man
mount, man fstab
- numeretto, che di solito è 0 (non mi ricordo a che serve)
- altro numeretto che di solito è 0 (ha a che fare con il fsck - file system
check al boot)
Di solito i device interni sono indicati con /dev/sda o simili, ma se provo
a utilizzare lo stesso sistema coi device USB rischio che un disco che prima
era montato sotto /media/disk1, al boot successivo me lo ritrovo sotto
/media/disk2 (è successo, ahimè, con grande pianto e stridore di denti).
Se ho delle utility (es. crontab) che si aspettano che determinate directory
contengano sempre quei file, il cambio di nome del punto di mount potrebbe
essere fastidioso (eufemismo).
Alla fine, il sistema che ho trovato più affidabile è il seguente:
identificare i dischi tramite UUID (identificativo univoco del disco che non
cambia mai neanche se grandina). Il sistema continuava però pervicacemente a
NON montarmi i dischi da solo (cioè senza cliccarci sopra) finché ho
scoperto la magica opzione "auto".
Attenzione: esiste anche un /dev/disk/by_uid: non ho capito bene cosa sia
questo UID, ma mi è sembrato che cambiasse da un boot all'altro, per cui
l'ho scartato.
A questo punto, il problema è risolto.
Per identificare i dischi tramite UUID si deve prima capire quale device il
sistema ha assegnato alla partizione in questione (io uso gparted, ma forse
ci sono sistemi più semplici), e, con quel dato, andare sotto
/dev/disk/by_uuid, fare un "ls -la" e vedere quali UUID sono associati a
quali device.
Ottenute queste informazioni, si inseriscono nel file fstab (es "sudo vi
/etc/fstab").
L'identificativo del device sarà quindi del tipo "UUID=...sfilza di cifre
esadecimali..." seguito dagli altri parametri e con l'opzione "auto" (per
automount) e "user" affinché anche un utente che non ha privilegi di root
possa montare il disco (metti che il disco si spenga e si debba riavviare,
potrebbe essere utile: nel mio caso lo è, dato che non ho un UPS e ogni
tanto va via la corrente: il portatile ha la batteria e continua a lavorare,
ma il disco va rimontato).
A titolo esemplificativo, la porzione del mio /etc/fstab per i dischi USB
attualmente è la seguente:
#
#
UUID=bae36cd3-9cc5-4b5d-afbb-ff7cb21d1d9d /media/DISKA1 ext3
auto,rw,noexec,nosuid,nodev,defaults,errors=continue,user 0 0
UUID=2fd4006f-2a5e-41f7-a48a-68df509ac6fc /media/DISKA2 ext3
auto,rw,noexec,nosuid,nodev,defaults,errors=continue,user 0 0
UUID=c46ee8dd-3916-4c28-b511-a79f3d148075 /media/DISKB1 ext3
auto,rw,noexec,nosuid,nodev,defaults,errors=continue,user 0 0
UUID=1a765c53-79bf-4458-8934-3718092259ed /media/DISKB2 ext3
auto,rw,noexec,nosuid,nodev,defaults,errors=continue,user 0 0
Sono certo che esista una via più diretta, robusta e sicura, ma io non l'ho
trovata (e neanche molti altri, come dicevo); questo sistema sarà un po'
macchinoso ma a me funge egregiamente. Adesso, tutte le volte che il
laptop-server riparte, mi ritrovo i dischi belli pronti e montati.
Una nota: se questi dischi sono condivisi in rete locale tramite nfs (come
nel mio caso), e nel frattempo il server fa un reboot, il PC client potrebbe
non vedere più correttamente le partizioni. In tal caso un "sudo umount -a"
seguito da un "sudo mount -a" dovrebbe ripristinare la situazione
C.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 relativo a Ubuntu.
Questo è uno dei motivi per i quali Ubuntu non mi piace più di tanto...
Comunque, visto che stiamo parlando di periferiche di archiviazione, il
passo successivo è imparare ad utilizzare udev... vedrai che ti si
aprirà un mondo nuovo... :)
http://guide.debianizzati.org/index.php/Udev_e_Debian
http://reactivated.net/writing_udev_rules.html