Automount mini-Howto Rahul Sundaram, rahulsundaram@yahoo.co.in v1.6, 27 Dicembre 2002 Questo file descrive l'automounter autofs, come configurarlo, ed evi­ denzia alcuni problemi da evitare. Traduzione di Zaxa Zaxu bez­ zolone@yahoo.it. Aggiornamento a cura di Tito Rizzo, tito.rizzo@tis­ cali.it. ______________________________________________________________________ Indice Generale 1. Introduzione 1.1 Storia delle Revisioni 1.2 Automount - come e perché 1.3 Tipi di automount 2. Amministrazione 2.1 Informazioni sul Copyright 2.2 Liberatoria 3. Installazione 4. Configurazione 5. La lunga attesa per l'unmount 6. Domande 6.1 Non riesco a vedere /auto/floppy, o altri mount point che sto cercando. 6.2 Come faccio a vedere che cosa è in stato di mount? 6.3 Ho inserito un disco win95 ("vfat") che è stato riconosciuto automaticamente come un semplice disco FAT. 6.4 Il mio filesystem /auto/cicciopippo è in stato di mount e non riesco a fare l'unmount con kill -SIGUSR1. 6.5 Cosa succede se scelgo / come directory per l'automounter? 6.6 Posso avere due "map file" nella stessa directory? 6.7 Utilizzo SuSE 6.0 e ho dovuto usare ---timeout al posto di --timeout 6.8 Come devo impostare i permessi per il filesystem FAT(per es.)? 6.9 Come sfogliare il contenuto di una directory autofs, se le sottodirectory non sono correntemente montate? 6.10 Chi devo ringraziare per autofs? 6.11 Dove posso saperne di più, sull'automount? 6.12 Come contattare gli sviluppatori? Esiste una mailing-list per autofs ? 7. Ringraziamenti, feedback e dediche. ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee 11..11.. SSttoorriiaa ddeellllee RReevviissiioonnii 1. Versioni anteriori alla 1.5 - Scritte da Don. 2. Versione 1.5 - Aggiunta del copyright e altri dettagli minori. Raul Sundaram si prende carico del mantenimento. 3. Versione 1.5.1 - Aggiunta di alcuni dettagli riguardanti VFAT. 4. Versione 1.5.2 - Storia delle revisioni e altri dettagli minori. 5. Versione 1.6 - Aggiunta di alcune domande e risposte. 11..22.. AAuuttoommoouunntt -- ccoommee ee ppeerrcchhéé L'automount è il processo con cui il montaggio e lo smontaggio di certi filesystem è effettuato automaticamente da un demone. Se un utente tenta di accedere a un filesystem smontato, quest'ultimo sarà montato automaticamente. Ciò è 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). Inoltre, può essere molto utile per i dispositivi removibili, o per qualche altro uso, tipo un agevole passaggio tra un mount in modalità conversione ascii attivata e uno in modalità conversione ascii disattivata dello stesso filesystem dos. Se siete dei novellini di Linux e non comprendete cosa siano il mount e i demoni, fate allora riferimento a qualche documento che ne tratti. 11..33.. TTiippii ddii aauuttoommoouunntt Ci sono due diversi tipi di automounter in linux; _A_M_D e _a_u_t_o_f_s. 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 è 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. 22.. AAmmmmiinniissttrraazziioonnee 22..11.. IInnffoorrmmaazziioonnii ssuull CCooppyyrriigghhtt This mini-HOWTO is Copyright Rahul Sundaram Sundaram.All rights reserved.This document is licensed under the Linux Documentation Project license .I welcome any kind of commercial distrubution but I would like to receive information regarding this.I would also help anyone willing to translate this document.If you require any exceptions to the licensing terms please contact me Rahul Sundaram . The latest version of this document is always available at the Linux Documentation website at . Questo mini-HOWTO è Copyright di Rahul Sundaram. Tutti i diritti riservati. L'uso è consentito entro i termini della Linux Documentation Project license . Ogni forma di distribuzione commerciale sarà ben accetta, ma l'autore gradirebbe esserne informato. L'autore si dichiara disponibile ad aiutare chiunque nella traduzione di questo documento. Per richiedere qualsivoglia eccezione ai termini della licenza si può contattare l'autore Rahul Sundaram . La versione più recente di questo documento si può trovare sul sito web del Linux Documentation Project: . 22..22.. LLiibbeerraattoorriiaa Per quanto l'autore abbia fatto del suo meglio nel curare la forma di questo howto, non si ritiene responsabile per i danni derivanti dalla messa in pratica delle informazioni contenute in questo documento. È impossibile verificare che le cose funzionino con ogni configurazione, per cui è probabile che alcuni dei suggerimenti dati in questo documento possano essere non corretti o possano non funzionare su un determinato sistema. Nel caso si riscontri qualche malfunzionamento, si avvisi l'autore, che provvederà appena possibile ad apportare le correzioni necessarie. Questo documento è fornito ``così com'è''. L'autore ha posto il massimo impegno nella sua stesura, ma l'uso delle informazioni che vi sono contenute è a proprio rischio e pericolo. In nessun caso l'autore potrà essere ritenuto responsabile per danni derivanti dall'uso del suo lavoro. 33.. IInnssttaallllaazziioonnee Autofs si basa su funzionalità del kernel, perciò il kernel deve essere compilato abilitandone il supporto. Tutte le versioni del kernel a partire dalla 2.2.xx supportano autofs. Per il corretto funzionamento sono necessari anche il programma automount e i file di configurazione; usando gli rpm. La distribuzione RedHat rende questo pacchetto disponibile come parte dell'installazione. 44.. CCoonnffiigguurraazziioonnee 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. Un auto.master di esempio appare così: /auto /etc/auto.misc --timeout 60 Il primo parametro non è il mount point, ma il percorso base del set di mount point (indicati dal secondo parametro). Il terzo parametro indica che i filesystem montati possono cominciare a tentare l'unmount 60 secondi dopo l'utilizzo. Si dovrà interoompere l'utilizzo del disco prima di smontarlo. Auto.misc è un "map file". Il "map file" può avere qualsiasi nome; questo si chiama auto.misc perché originariamente controllava /misc. All'interno di auto.master possono essere definiti più "map file". Il mio auto.misc appare così: 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 questo caso potrebbe essere /auto/floppy o qualunque altro. La colonna centrale indica le opzioni; leggete la pagina man di mount per dettagli al riguardo. L'ultima colonna specifica la provenienza del filesystem. La voce "kernel" è un ipotetico mount NFS. Il simbolo : sulle altre righe indica un dispositivo locale. 55.. LLaa lluunnggaa aatttteessaa ppeerr ll''uunnmmoouunntt Alcuni di voi avranno dato un'occhiata ai 60 secondi di timeout, pensando: _c_'_è _t_r_o_p_p_o _d_a _a_s_p_e_t_t_a_r_e _p_e_r _p_o_t_e_r _e_s_p_e_l_l_e_r_e _u_n _d_i_s_c_h_e_t_t_o_. _M_a_g_a_r_i _b_a_s_t_e_r_e_b_b_e _f_a_r_e _i_l _s_y_n_c _d_e_l _d_i_s_c_o _e_d _e_s_t_r_a_r_l_o _m_o_n_t_a_t_o_, _s_e_n_z_a _c_h_e _n_e_s_s_u_n_o _s_e _n_e _a_c_c_o_r_g_a_. Vorrei suggerire una strategia più sicura. Innanzitutto è possibile modificare il timeout. Ma istruire il sistema perché esegua l'unmount dopo solo 15 secondi, o qualsiasi altra impostazione, potrebbe risultare poco efficace. In base alla vostra configurazione, potreste essere in grado di lanciare semplicemente il comando umount come normale utente. Ma, in realtà, esiste un modo per ordinare al programma automount di eseguire l'unmount. Se inviate (tramite il programma kill) il segnale SIGUSR1 al processo automount, questo smonterà tutto ciò che potrà. Ma prima che si inizino a creare pulsanti per l'unmount sul desktop , c'è un piccolo problema. Il processo automount è lanciato dall'utente root e accetta segnali solamente da root. Una delle ragioni per cui probabilmente si utilizza l'automunt è al contrario la possibilità di eseguire il mount e l'unmount senza essere root. Sarebbe semplice creare un programma C che esegua 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 i sottocomandi di processo, che sarebbe necessario usare per individuare il PID corrente. Si dovrebbe invece disporre del programma killall, che permette di eseguire quanto segue: 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: costringere il riciclo di alcuni win­ dow manager e forzare la chiusura di xemacs. È perciò sperabile che non ci siano buffer overrun in killall... 66.. DDoommaannddee 66..11.. NNoonn rriieessccoo aa vveeddeerree //aauuttoo//ffllooppppyy,, oo aallttrrii mmoouunntt ppooiinntt cchhee ssttoo cceerrccaannddoo.. Se automount è configurato correttamente, qualunque mount point che si stia 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; la maggior parte dei programmi proverà ciò che gli trasmettete, e il dispositivo verrà montato prima che sia rilevato. Sfortunatamente, l'impossibilità di scegliere tra i punti di mount disponibili, ma invisibili, è probabilmente uno dei maggiori inconvenienti di autofs. Se ciò risulta inaccettabile, modificate la configurazione del sistema (per inciso i file che terminano in .c come "configurazione"). Una soluzione che svariate persone hanno provato, è quella di creare link simbolici a ciò che automount crea una volta che sia montato. Ciò impedirà probabilmente, che il programma lamenti l'inesistenza di una directory (se il mount funziona, ovvio) ma un'elencazione disattenta di directory provocherebbe il montaggio dei filesystem. 66..22.. CCoommee ffaacccciioo aa vveeddeerree cchhee ccoossaa èè iinn ssttaattoo ddii mmoouunntt?? Con il comando df. Lo stesso si ottiene con un semplice mount, ottenendo in più anche le opzioni utilizzate per eseguire il mount. 66..33.. HHoo iinnsseerriittoo uunn ddiissccoo wwiinn9955 ((""vvffaatt"")) cchhee èè ssttaattoo rriiccoonnoosscciiuuttoo aauuttoommaattiiccaammeennttee ccoommee uunn sseemmpplliiccee ddiissccoo FFAATT.. Questo non è un problema di automount. Il tipo di filesystem "auto" non prova a montare un filesystem come vfat se prima non è riuscito a montarlo come filesystem MS-DOS. VFAT è una estensione del filesystem FAT/MS-DOS, 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 specificare il tipo di filesystem. Si sta valutando di far sì che mount segua una lista di filesystem da provare in un ordine ben preciso al posto dell'attuale metodo "euristico". Alcuni utenti non hanno semplicemente compilato il supporto per msdos nel kernel; questo impedisce che venga testato prima di vfat. Per la maggioranza potrebbe andare bene anche così, visto che solo pochi hanno realmente bisogno di msdos e esiste in effetti una soluzione: bisogna copiare /proc/filesystems come /etc/filesystems e editarlo per cambiare l'ordine in modo che vfat appaia prima di msdos.(Grazie Mark) Ariel (aslinux@dsgml.com) scrive " per far sì che mount provi vfat prima di fat, si crei o si editi il file /etc/filesystems Si elenchi, in ordine di priorità, quale filesystem si voglia provare come 'auto'. Si crei il file con cp /proc/filesystems /etc/filesystems. Si editi la lista per cambiarne l'ordine. Si mettano per primi i tipi di filesystem che siano identificabili con grande sicurezza, come ext2 (che saranno quindi controllati molto rapidamente), e quindi quelli di uso più comune. Si metta vfat prima di msdos ed ecco fatto. Ci si assicuri di inserirli entrambi, nel caso si monti qualcosa che non sia vfat. Il mio appare così: ext2 vfat msdos iso9660 **** Io uso un timeout di 1 secondo per i dispositivi removibili. Create file map separati, in base ai timeout che vi servono. State pensando che 1 secondo sia un grande spreco di risorse? - ma non non è così. Ricordate che il sistema smonta i dispositivi solo quando non sono più in uso. 1 secondo significa che il dispositivo sarà smontato appena non sarà più in uso.. Quindi, assicuratevi di mettere 'sync' come opzione per il floppy! cioè: floppy -fstype=auto,sync,user,umask=002,gid=floppy :/dev/fd0" Questo dovrebbe rendere chiara la risposta. 66..44.. IIll mmiioo ffiilleessyysstteemm //aauuttoo//cciicccciiooppiippppoo èè iinn ssttaattoo ddii mmoouunntt ee nnoonn rriieessccoo aa ffaarree ll''uunnmmoouunntt ccoonn kkiillll --SSIIGGUUSSRR11 .. È sicuramente in uso da parte di qualcuno o qualcosa. Probabilmente neppure root è in grado di smontarlo manualmente. Se siete voi che ne avete causato il montaggio (non può essere cioè che qualcun altro lo stia usando) controllate che qualche sheell non sia posizionata sulla directory, oppure che qualche applicazione (in particolare qualcosa che possa essere entrato in quella directory, come un browser di directory) non abbia messo per così dire un piede in mezzo alla porta. Se non si riesce ad individuare chi o cosa stia effettuando il blocco, provare a utilizzare il programma fuser. 66..55.. CCoossaa ssuucccceeddee ssee sscceellggoo // ccoommee ddiirreeccttoorryy ppeerr ll''aauuttoommoouunntteerr?? Non te lo consiglio. Se vuoi proprio usare /cicciopippo ti suggerisco piuttosto un link simbolico. Sarebbe più sicuro. 66..66.. PPoossssoo aavveerree dduuee ""mmaapp ffiillee"" nneellllaa sstteessssaa ddiirreeccttoorryy?? Per quanto ne sappia io, no. Prova a usare un "map file", con opzioni specifiche per le singole voci. 66..77.. UUttiilliizzzzoo SSuuSSEE 66..00 ee hhoo ddoovvuuttoo uussaarree ------ttiimmeeoouutt aall ppoossttoo ddii ----ttiimmeeoouutt Un'altra soluzione a problemi di "timeout non funzionante" potrebbe essere aggiungere un'opzione -t time allo script autofs. 66..88.. CCoommee ddeevvoo iimmppoossttaarree ii ppeerrmmeessssii ppeerr iill ffiilleessyysstteemm FFAATT((ppeerr eess..))?? Controlla la pagina man di mount per alcune possibili opzioni, come le impostazioni di uid=valore o umask=valore. Un'opzione che sembra essere scomparsa per il filesystem FAT è mode=valore. Spiacente. Verifica presso le persone che si occupano di mount. 66..99.. CCoommee ssffoogglliiaarree iill ccoonntteennuuttoo ddii uunnaa ddiirreeccttoorryy aauuttooffss,, ssee llee ssoott­­ ttooddiirreeccttoorryy nnoonn ssoonnoo ccoorrrreenntteemmeennttee mmoonnttaattee?? Philippe Froidevaux scrive " L'autore di autofs afferma che "non c'è modo" un possibile hack è (ripreso dal newsgroup): "non montate sotto /home/blauser ma sotto /mount/.auto/blauser quindi aggiungete un link /home/blauser -> /mount/.auto/blauser ora potete entrare in /home e vedere la home degli utenti, che verrà montata non appena ci si entra; problema: non è una soluzione così pulita e comporta un po' di lavoro per ogni utente; un'altra soluzione sarebbe usare 'amd' al posto di 'autofs', ma amd è meno performante. 66..1100.. CChhii ddeevvoo rriinnggrraazziiaarree ppeerr aauuttooffss?? Questa è solo documentazione che vi viene offerta per attirare l'attenzione di tutti sul grande lavoro che è stato fatto con autofs, e quanto sia facile da usare. Confrontato con il precursore AMD, 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, per quanto Peter Anvin ne sia probabilmente il maggiore responsabile. Peter tenne anche una sessione su autofs al linuxworldexpo il 3 marzo 1999. 66..1111.. DDoovvee ppoossssoo ssaappeerrnnee ddii ppiiùù,, ssuullll''aauuttoommoouunntt?? È possibile trovare un tutorial su autofs qui . Provare inoltre le am-utils qui . 66..1122.. CCoommee ccoonnttaattttaarree ggllii ssvviilluuppppaattoorrii?? EEssiissttee uunnaa mmaaiilliinngg--lliisstt ppeerr aauuttooffss ?? Non sono stato in grado di reperire informazioni al riguardo. Fatemi sapere se per caso trovate qualcosa. 77.. RRiinnggrraazziiaammeennttii,, ffeeeeddbbaacckk ee ddeeddiicchhee.. Desidero ringraziare Don (l'indirizzo email non sembra più valido), autore della prima stesura di questo mini- Howto.Ringrazio Ariel per la sua risposta in merito alla questione "win95 vfat".Ringrazio i miei amici per il loro appoggio e chiunque si sia dimostrato abbastanza paziente mentre completavo questo lavoro. Vi prego di scrivermi qui Rahul Sundaram per ogni suggerimento, miglioramento o nel caso abbiate qualche idea brillante. Scrivetemi se disponete di qualche buon tutorial o di materiale che io possa inserire in questo documento. Grazie fin d'ora. Dedico questo lavoro ai miei defunti genitori Mr.V.Sundaram e Mrs.S.Soundara Sundaram.