| ![[Photo of the Author]](../../common/images/Guido-S.gif)  Guido Socher (homepage)
 
 L'autore:
 
 A Guido piace Linux perche' appartiene alla comunita'. Si tratta di
    un enorme progetto e in qualche modo tutte le diverse persone nel mondo
    stanno lavorando per raggiungere lo stesso scopo: renderlo migliore ogni
    giorno.Sfortunatamente Linux e' diventato cosi' importante che attrae anche le
    persone cattive che cercano solo di trarne profitto senza dare nulla in
    cambio. State attenti! Spesso dall'esterno sembra che si tratti di  piccole
    attivita' "pro-linux" ma sono solo degli opportunisti.
 
 Tradotto in Italiano da:
 Roberto Pauletto <neverquit/at/cwazy.co.uk>
 
 Contenuto:
 | 
 
| Il mistero dei punti di mount  Premessa:
 
    Questo articolo elabora il concetto di punti di montaggio del
    filesystem (mount), ma spero che
    l'articolo contenga informazioni di interesse anche per chi
    non e' nuovo di Linux.
    
_________________ _________________ _________________
 
 | 
     
Introduzione
    Spieghero' prima di tutto il concetto di montaggio dei filesystem,
    per poi illustrare ulteriori e piu' avanzate caratteristiche.
    Se pensate di essere degli esperti di Linux, allora potete iniziare a
    leggere un poco piu' sotto.
     
Come funziona
    Almeno fino ad oggi sotto windows si aveva l'inconveniente che,
    aggiungendo un nuovo drive al sistema, si sfalsavano tutte le lettere
    che rappresentavano i nomi dei drive fino a quel momento. Quello che
    prima era il drive D: improvvisamente diventava il drive E: e questo
    generava una certa confusione sia fra gli utenti che nei software stessi.
    
    Sotto Unix questo problema non esiste poiche' tutti i dischi fisici sono
    inseriti all'interno di una struttura (albero) di directory. Potete
    visualizzarla digitando "mount" o "df":
    
      
        | 
# df
Filesystem 1K-blocks    Used Available Use% Mounted on
/dev/hda1    9070728 4701180   3908768  55% /
/dev/hda3   24950428  683412  22999584   3% /home
none          257236       0    257236   0% /dev/shm
# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda3 on /home type ext3 (rw)
 | 
    
    Nell'esempio abbiamo due partizioni, una della quali contiene tutto
    tranne la directory /home. Questa e' la partizione di root "/" ed e'
    fisicamente connessa ad hda1. hda1 e' la prima partizione (1) del primo
    harddisk ide (hda). La terza partizione (hda3) sullo stesso disco è
    montata su /home. Quindi se vi spostate in /home avete accesso ai file
    su hda3. Non dovrete mai preoccuparvi se questo ora e' D: o E: o ???.
    Si tratta sempre e solo di una struttura di directory ad albero.
     
Il problema del  "file-system busy" (filesystem occupato) 
    Linux conserva temporaneamente in memoria le operazioni di lettura/scrittura che effettua.
    Lo potete notare quando avete dischi usb versione 1.1 e
    state accedendo ad un grosso file. La prima volta l'accesso è lento ma la
    seconda volta che aprite lo stesso file l'operazione è  talmente veloce che la
    luce del vostro dispositivo usb neanche lampeggia.
    
    Proprio per questa caratteristica non potete semplicemente rimuovere il disco che
    state usando. Dovete "smontarlo" (umount). Per i normali hard disk interni la
    cosa non costituisce un problema, ma lo può diventare per i cdrom ed i dischi
    USB.
    
    Se ad esempio montate uno stick-usb sotto /mnt/usb e digitate il
    comando "cd /mnt/usb" allora bash inizia ad usare questo filesystem.
    Se tentate di smontarlo da una differente finestra di shell riceverete
    il messaggio "file system busy" e l'operazione di smontaggio fallira'.
    E' sufficiente che voi eseguiate un "cd" nuovamente per uscire dalla directory
    /mnt/usb, quindi potete smontare il drive.
    Il problema risiede nel fatto che talvolta ci si dimentica di chi
    sta usando il filesystem e che potrebbero esserci cosi' tante applicazioni aperte che
    diventa difficile trovare chi sta facendo fallire lo smontaggio.
    
    
    Chiedetelo al vostro computer!
# fuser -m -u /mnt/usb
/mnt/usb:   1347c(root)  1348c(guido)  1349c(guido)
    Quello che ricevete dal comando fuser è una lista di processi che stanno
    ancora usando il filesystem in questione. Ora potete verificare con
    "ps auxw" di chi si tratta o potete semplicemente uccidere i processi.
    Fatto questo lo smontaggio con "umount" funzionera'.
     
Ma windows puo' farlo!?
    Perche' non estrarre semplicemente lo stick-usb?, Be', i vecchi computers
    basati su win 3.1 o dos potevano essere semplicemente spenti. A quei tempi
    alcuni dei miei amici si lamentavano del fatto che in Linux occorreva una
    operazione di chiusura del sistema (shutdown) prima di spegnere il PC.
    Ma dall'avvento di win95 tutti hanno dovuto abituarsi a chiudere il sistema prima
    di spegnere il computer.
     
Anche Linux puo' farlo!
    Ci sono comunque dei modi coi i quali anche con Linux si puo' semplicemente
    staccare il disco (ad esempio un disco usb). Mandrake Linux ha una funzione detta
    supermount e fornisce esattamente gli stessi risultati (o problemi) di windows.
    Ma non la raccomando perche' fonte di instabilita' e di file persi.
    
    
    E' meglio usare gli mtools (http://mtools.linux.lu/). Gli mtools sono
    un gruppo di comandi per accedere a floppy drive, stick-usb ..., in pratica
    qualsiasi media rimovibile con un filesystem FAT e non avete bisogno di montare
    il filesistem
    
    Ecco il trucco:
    
      - 
        Modificate /etc/mtools.conf ed aggiungete la seguente riga
 
drive u: file="/dev/sda1" # o sda4; alcuni stick-usb hanno una partizione
                          # 4 creata come predefinita dalla casa costruttrice.
 
 
- Ora NON montate /dev/sda1. Invece digitate
 mdir u:
 per vedere cosa c'e' nello stick-usb.
 
 mcopy * u:
 per copiare tutti i files dalla cartella corrente allo stick-usb.
 
 mcopy u:\* .
 per copiare tutti i files dallo usb-stick alla cartella corrente
      (notate la \ prima del carattere jolly).
 
 
Molto facile da usare.Consenti a chiunque di montare un filesystem
    In genere dovete essere root per montare un filesystem. Per
    dispositivi come cdrom o stick-usb potreste concedere a qualunque
    utente il diritto di montarli. Tutto quello che dovete fare in questo
    caso e' aggiungere una riga come la seguente in /etc/fstab:
# dev     mount point    fs type   flags
/dev/sda1  /mnt/usb      auto      noauto,user 0 0
    Questa riga fa si' che sda1 (la prima partizione sul primo disco
    scsi, le unita' di memoria usb sono mappate come dischi scsi) non
    debbano essere montate automaticamente in fase di avvio (noauto) e
    possono essere montate/smontate da chiunque (user). Il campo FS-Type è anche
    impostato ad auto cosi' che si possa montare una stick-usb formattata con vfat
    o ext2 ed il corretto filesystem sarà identificato automaticamente.
     
Portatili e  nfs
    Il filesystem di rete NFS (Network File System), e' veramente valido se volete avere dei
    backup centralizzati per le cartelle home di parecchi utenti.
    Tutto quello che dovete fare e' montare le cartelle home da un server
    centrale e tutti gli utenti avranno le loro cartelle individuali home
    disponibili su tutti i computer della rete. Le stesse impostazioni e
    preferenze e gli stessi dati ovunque. E' veramente ottimo.
    
    
    Ma come gestire utenti mobili con i portatili? (nessun backup?)
    
    
    Una volta che siete fuori dalla rete la vostra cartella home e' andata.
    Una soluzione r' sempre quella di copiare tutti i dati (rsync) ma la cosa
    puo' facilmente portare ad inconsistenze se non siete molto disciplinati,
    e spesso non serve tutto il contenuto della cartella home. Trovo che sia
    una buona soluzione quella di avere una seconda piccola cartella home con solo
    le impostazioni ed i dati di cui necessito mentre sono in viaggio.
    
    
    Quando montate un filesystem (qualsiasi filesystem o disco incluso nfs) su di
    una cartella non vuota, il contenuto di questa cartella diventa invisibile e
    voi potete vedere il filesystem montato.
     
    
    Ecco la soluzione: Create un punto di montaggio per le cartelle home (/home) ed
    automontate li' le diverse cartelle home quando il computer si trova in rete.
    Comunque prima di montare qualsiasi cosa create un link simbolico per l'utente
    che possiede il portatile verso una cartella home off-line.
/home/guido -> ../home_nonet/guido
    Quando l'utente guido e' in rete allora egli vedra' la sua normale cartella home perchè
    il link simbolico e' nascosto. Quando egli sara' in viaggio allora vedra'
    /home_nonet/guido come sua cartella home (/home/guido).
     
    
    Una soluzione molto elegante.
     
Conclusione
    Costruire uno strato di astrazione per l'hardware ha sempre costituito uno
    degli scopi di Unix. Montare/smontare filesystem/dischi e' stato uno dei
    modi di raggiungere lo scopo. Una idea veramente moderna ed avanzata, sebbene
    Unix sia molto piu' vecchio di altri sistemi operativi su PC.
  
 
Discussioni su quest'articolo
ogni articolo possiede una sua pagina di discussione, da questa pagina puoi inviare un commento o leggere quelli degli altri lettori:
    
2004-11-01, generated by lfparser version 2.50