1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
|
Automount mini-Howto
don@sabotage.org
v0.3, 22 ottobre 1998
Questo file descrive il programma autofs, una utility che esegue il
mount automaticamente. Viene descritto come configurare questa utility
e come risolvere i problemi pi comuni. Traduzione di Zaxa Zaxu <bez
zolone@yahoo.it>
1. Introduzione
1.1. Automount - come e perch
L'automount il processo che permette il mount e l'unmount di alcuni
filesystem in maniera automatica. Questa operazione viene eseguita da
un demone. Se il filesystem si trova in stato unmounted e l'utente
cerca di accedervi, viene automaticamente eseguito il mount. Questo
tipo di funzionalit utile in particolar modo in ambienti di rete
molto estesi, oppure quando si ha la necessit di avere numerosi mount
incrociati anche tra poche macchine (specialmente se alcune non sono
sempre attive). Altri casi in cui molto utile avere l'automount
sono:
la presenza di unit rimuovibili
la necessit di avere il mount di filesystem dos in modalit
conversione ascii attivata e disattivata contemporaneamente.
1.2. Tipi di automount
Ci sono due diversi tipi di automounter in linux; AMD e autofs. AMD
il demone automount che funziona in maniera analoga al demone AMD del
SunOS. implementato nello spazio utente e non fa parte del kernel.
Non necessario per il kernel avere la funzionalit di automount
integrata se viene eseguito il mount NFS utilizzando il demone AMD, in
quanto il traffico diretto ai filesystem automontati vengono passati
attraverso il sistema NFS. Autofs un sitema pi recente ed
innovativo ed assistito dal kernel. Questo significa che il codice
del kernel che gestisce i filesystem conosce quali sono i punti di
mount dei filesystem automontati. Il programma che esegue l'automount
si rivolge al kernel per conoscerli. In questo mini-howto verr
descritta solo l'utility autofs.
2. Installazione
L'utility autofs si basa su funzionalit del kernel, perci il kernel
deve essere compilato abilitandone il supporto. Nelle versioni del
kernel 2.0.xx questa opzione si presenta come sperimentale, anche se
si dimostrata sufficientemente stabile. Nelle versioni del kernel
2.1.xx (e 2.2.xx) non pi sperimentale.
Per il corretto funzionamento sono necessari anche il programma
automount e i file di configurazione. Utilizzando la distribuzione
RedHat (in cui il package RPM fa parte della installazione) non
dovrebbero sorgere problemi. Il programma automount dovrebbe essere
inizializzato da uno script rc che si trova in /etc/rc.d/init.d. La
corretta installazione del package RPM installa anche questo script,
ma bisognerebbe assicurarsi che questo script venga eseguito al boot,
creando un link in una delle directory rc?.d, utilizzando il pannello
di controllo fornito con RedHat, oppure, se si utilizzano altre
distribuzioni, utilizzando un qualunque altro metodo. Non comunque
necessario comprendere a fondo quali operazioni esegue lo script di
avvio. Se si sta leggendo questo howto, non dovrebbe comunque
interessare.
3. Configurazione
L'installazione del package RPM dovrebbe essere abbastanza agevole, ma
ci sono alcuni particolari che meglio controllare, soprattutto se
non lo si mai fatto prima.
Ci sono due file in /etc, che si chiamano auto.master e auto.misc. Il
contenuto del mio auto.master il seguente:
/auto /etc/auto.misc --timeout 60
Il primo parametro non il mount point, ma il percorso base del set
di mount point. Il secondo parametro indica dove trovare i mount
point. Il terzo parametro indica che i filesystem di cui si
eseguito l'automount possono cominciare a tentare l'unmount 60 secondi
dopo l'utilizzo. Non viene ovviamente effettuato l'unmount se i
filesystem sono in uso.
Auto.misc il "map file" predefinito. Possono essere definiti diversi
"map file" in auto.master. Questo il contenuto del mio auto.misc:
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
cd -fstype=iso9660,ro :/dev/cdrom
zip -fstype=auto :/dev/hdd4
floppy -fstype=vfat :/dev/fd0
La prima colonna ("chiave") indica il mount point. In base all'esempio
che stiamo considerando diventa /auto/kernel, /auto/cd, /auto/zip ecc.
La seconda colonna indica le opzioni di mount. Per l'elenco i opzioni
leggere la pagina di manuale relativa a mount (man mount). L'ultima
colonna indica la provenienza del filesystem. La prima voce ("kernel")
un mount NFS. Il simbolo : sulle altre righe indica un device
locale.
4. Aspettando l'unmount
Qualche lettore avr dato un'occhiata ai 60 secondi necessari per
l'unmount automatico e avr pensato: Forse un po' troppo per
attendere l'unmount di un dischetto... Forse sufficiente eseguire un
sync e tirar fuori il dischetto, cos nessuno se ne accorge! Vorrei
suggerire una strategia pi sicura. Innanzitutto possibile
modificare il timeout. Ma questo potrebbe non bastare, o diventare
poco efficiente in termini di prestazioni. Un'altra possibilit
quella di mandare il segnale SIGUSR1 al processo automount
(utilizzando kill). Ma prima che si inizi a creare bottoni sul desktop
per eseguire unmount, bene chiarire una serie di problemi che
potrebbero insorgere.
Il processo automount lanciato dall'utente root e accetta segnali
solamente da root. Una delle ragioni che potrebbero spingere l'utente
ad utilizzare automunt al contrario la possibilit di eseguire
queste operazioni SENZA essere root. Sarebbe semplice creare un
programma C che esegue il "lavoro brutale" come suid-root. Comunque
possibile utilizzare sudo per permettere agli utenti di mandare
l'opportuno segnale di kill. L'unico problema che sudo non permette
di utilizzare gli apici (') per processare le opzioni che permettono
di individuare il PID corretto del processo a cui mandare il segnale.
Si dovrebbe invece disporre del programma killall, che permette di
esegure questo (ringrazio per i suggerimenti ricevuti):
ALL ALL=NOPASSWD:/usr/bin/killall -USR1 automount
In alternativa si dovrebbe permettere agli utenti di mandare il seg
nale -SIGUSR1 a tutti i processi. Questo per potrebbe avere effetti
collaterali su altri programmi: costringe il riciclo di alcuni window
manager e forza la chiusura di xemacs.
5. Domande e risposte
5.1. Non riesco a vedere /auto/floppy, o altri mount point che sto
cercando.
Se automount configurato correttamente, qualunque mount point che si
sta ricercando sar disponibile al momento dell'utilizzo, anche se non
lo si vede nel momento in cui non viene utilizzato. Se si sta
eseguendo il browse delle directory con un programma grafico potrebbe
essere necessario digitare manualmente il percorso. Sicuramente il
peggior difetto di autofs appunto il fatto che non si possa scorrere
e scegliere tra i vari mount point (che al momento risultano non
utilizzati e quindi invisibili. Se questa particolarit risulta
inaccettabile, modificare la configurazione del sistema (per inciso i
file che terminano in .c come "configurazione").
5.2. Come faccio a vedere che cosa in stato di mount?
Usare il comando df. mount senza opzioni mostra anche le opzioni
utilizzate per eseguire il mount.
5.3. Ho inserito ("vfat") che stato riconosciuto automaticamente
come in semplice disco FAT.
Questo non un problema di automount. Se si specifica, al momento
corrente, il paramentro "auto" come tipo di filesystem, non viene
testato il mount del filesytem vfat, per cui viene eseguito il mount
come msdos. In effetti VFAT solamente una variante del filesystem
FAT/MSDOS, che permette l'utilizzo dei nomi di file lunghi.
Stando alle osservazioni di uno degli autori di mount (??) il
programma mount soltanto una interfaccia ad una chiamata di sistema,
ed comunque responsabilit dell'utente la specifica del tipo di
filesystem. Attualmente viene tentato il mount seguendo un ordine ben
preciso nell'elenco dei file system disponibili, piuttosto che un
metodo pi "euristico", attualmente in via di sviluppo. Nel frattempo
impossibile eseguire il mount di un filesystem vfat a meno che non
se ne specifichi esplicitamente il tipo. Molto probabilemnte questo
inconveniente verr risolto a breve.
5.4. Il mio filesystem /cicciopippo in stato di mount e non riesco
a fare l'unmount con kill -SIGUSR1 .
sicuramente in uso da parte di qualcuno o qualcosa. Probabilmente
impossibile eseguire anche l'unmount manuale. Controllare la presenza
di qualche shell posizionata sulla directory, oppure qualche
applicazione, directory browser o altro che ha lasciato per cos dire
la "porta aperta". Se non si riesce ad individuare chi o cosa sta
effettuando il blocco, provare ad utilizzare il programma fuser.
5.5. Chi devo ringraziare per la disponibilit di autofs?
Non ringraziatemi. Non ho niente a che fare con questa utility. Ho
soltanto voluto evidenziare il grande lavoro che stato fatto con
autofs, e mostrare la sua facilit di utilizzo. Confrontato con il
precorsore AMD (che viene tra l'altro venduto ad un prezzo maggiorato
perch corredato di una serie di utility a dir poco preistoriche),
autofs molto ben documentato e i suoi sviluppatori hanno tutti i
miei ringraziamenti. Il copyright indicato Transmeta, per cui non ho
a disposizione una lista di nomi.
5.6. Dove posso trovare maggiori informazioni sull'automount?
E possibile trovare un tutorial su autofs qui
<http://www.linuxhq.com/lg/issue24/nielsen.html>. Provare inoltre le
am-utils qui <http://www.cs.columbia.edu/~ezk/am-utils>.
(Ringrazio per questi URL)
|