MOUNT(8)

NOME
mount - monta un file system

SINTASSI
mount [-hV]

mount -a [-fnrvw] [-t tipo_fs]
mount [-fnrvw] [-o opzioni [,...]] device | dir
mount [-fnrvw] [-t tipo_fs] [-o opzioni] device dir

DESCRIZIONE
Tutti i file accessibili in un sistema Unix sono raggruppati in un unico grande albero, la gerarchia dei file (file hierarchy), con radice in /. Questi file possono essere disseminati in diversi dispositivi (device). Il comando mount serve per attaccare il file system che si trova su di un qualche device all'albero dei file principale. Viceversa, il comando umount(8) li staccherà. La forma standard del comando mount è
    mount -t tipo device dir
Ciò dice al kernel di attaccare il file system situato su device (il cui tipo è tipo) alla directory dir. Il contenuto precedente (se c'era), il proprietario e il mode di dir diventano invisibili, e fin tanto che il file system rimane montato, il percorso dir riferirà alla radice del filesystem su device. Le seguenti tre forme di chiamata non montano niente:
    mount -h
mostra un messaggio d'aiuto;
    mount -V
mostra la versione; e
    mount [-t tipo]
da solo elenca tutti i file system montati (di tipo tipo) - si veda sotto. Il file system proc non è associato con uno special device, e quando lo si monta una parola chiave arbitraria, come ad esempio proc, può essere usata invece del percorso o della specifica del device (la scelta abituale none è la meno fortunata: il messaggio d'errore `none busy', restituito da umount, potrebbe essere confuso). Molti device sono identificati da un nome di file (di un device speciale a blocchi), come /dev/sda1, ma ci sono anche altre possibilità. Per esempio, nel caso di un mount di un NFS, il device potrebbe essere del tipo knuth.cwi.nl:/dir. Il file /etc/fstab (si veda fstab(5)), può contenere delle righe che descrivono quali device sono montati di solito, dove e usando quali opzioni. Questo file è usato in tre modi:

(i) Il comando
    mount -a [-t tipo]
(usualmente dato nello script di boot) fa sì che tutti i file system menzionati in fstab (del tipo specificato) siano montati come indicato, ad eccezione di quelli la cui riga contiene la parola chiave noauto.

(ii) Quando si monta un file system menzionato in fstab, è sufficiente dare solo il device, o solo in mount point.

(iii) Normalmente, solo il superuser può montare file system. Comunque, quando fstab contiene l'opzione user su di una riga, allora ognuno può montare il file system corrispondente.

Quindi, mettendo una riga
    /dev/cdrom /cd iso9660 ro,user,noauto,unhide
qualsiasi utente può montare il file system iso9660 che si trova sul suo CDROM usando il comando
    mount /dev/cdrom
oppure
    mount /cd
Per maggiori dettagli, si veda fstab(5). I programmi mount e umount mantengono una lista dei file system attualmente montati nel file /etc/mtab. Se a mount non è dato nessun argomento, è mostrata questa lista. Quando è montato il file system proc (diciamo in /proc), i file /etc/mtab e /proc/mounts hanno contenuto molto simile. Il primo ha qualche informazione in più, come le opzioni di mount usate, ma non è necessariamente aggiornato (Cfr. con l'opzione -n più avanti).

OPZIONI
L'intero insieme delle opzioni usate da una chiamata di mount è determinato per prima cosa estraendo le opzioni per il file system della tabella fstab, poi applicando qualsiasi opzione specificata dall'argomento di -o, e alla fine applicando un'opzione -r o -w, quando presente. Opzioni disponibili per il comando mount:

-v  Verbose mode.

-f  Viene fatto tutto tranne l'effettiva system call, cioè fa solo finta di montare il file system. Questa opzione è utile assieme all'opzione -v per determinare stia provando a fare il comando mount.

-n  Monta senza scrivere in /etc/mtab. Ciò è necessario ad esempio quando /etc è un file system a sola lettura.

-r  Monta il file system per la sola lettura (read-only). Un sinonimo è -o ro.

-w  Monta il file system per la lettura e la scrittura (read/write). Un sinonimo è -o rw.

-t tipo_fs
    L'argomento che segue il -t è usato per indicare il tipo di file system. I file system che sono attualmente supportati sono elencati in linux/fs/filesystems.c: minix, ext, ext2, xiafs, hpfs, fat, msdos, umsdos, vfat, proc, nfs, iso9660, smb, ncp, affs, ufs, sysv, xenix, coherent. Si noti che gli ultimi tre sono equivalenti e che xenix e coherent saranno rimossi in un prossimo futuro — si consiglia di usare "sysv". Il tipo iso9660 è quello di default. Se non è data l'opzione -t, o se è specificato il tipo auto, viene analizzato il superblock per determinare il tipo del file system (sono supportati minix, ext, ext2, xia, iso9660). Se quest'analisi fallisce ed esiste /proc/filesystems, allora saranno provati tutti i file system lì elencati, ad eccezione di quelli che sono etichettati "nodev" (p.es., proc e nfs). Si noti che il tipo auto potrebbe essere utile per i floppy montati dagli utenti. Attenzione: l'analisi sfrutta una tecnica euristica (la presenza di un `magic' appropriato) e potrebbe riconoscere il tipo di file system sbagliato. Più di un tipo di file system può essere specificato con una lista di tipi separati da virgole. La lista di file system può essere preceduta da no per specificare i tipi di file system sui quali non deve essere intrapresa alcuna azione (ciò può tornare utile con l'opzione -a). Per esempio, il comando:
        mount -a -t nomsdos,ext
    monta tutti i file system ad eccezioni di quelli di tipo msdos e ext.

-o  Le opzioni sono specificate con un flag -o seguito da una stringa di opzioni separate da virgole. Alcune di queste opzioni sono utili solo quando compaiono nel file /etc/fstab. Le seguenti opzioni sono applicabili a qualsiasi file system che stia per essere montato:

    async
        Tutte le operazioni di I/O del file system devono essere fatte in modo asincrono.

    auto
        Può essere montato con l'opzione -a.

    defaults
        Usa le opzioni di default: rw, suid, dev, exec, auto, nouser, e async.

    dev Interpreta i device speciali a caratteri o a blocchi del file system.

    exec
        Permette l'esecuzione dei file binari.

    noauto
        Può essere montato solo esplicitamente (cioè l'opzione -a non causa il mount del file file system).

    nodev
        Non interpreta i device speciali a caratteri o a blocchi del file system. Questa opzione è utile per un server che abbia file system contenenti device speciali per architetture diverse dalla sua.

    noexec
        Non permette l'esecuzione di nessun file binario sul file system montato. Questa opzione è utile per un server che abbia file system contenenti file binari per architetture diverse dalla sua.

    nosuid
        Disabilita gli effetti dei bit set-user-identifier o set-group-identifier.

    nouser
        Proibisce ad un utente normale (cioè, non root) di montare il file system.

    remount
        Prova a rimontare un file system già montato. È comunemente usata per cambiare i mount flag di un file system, soprattutto per rendere un file system a sola lettura scrivibile.

    ro  Monta il file system per la sola lettura (read-only).

    rw  Monta in file system con permessi di lettura e scrittura (read-write).

    suid
        Abilita le funzionalità dei bit set-user-identifier o set-group-identifier.

    sync
        Tutte le operazioni di I/O del file system devono essere fatte in modo sincrono.

    user
        Permette ad un utente normale di montare il file system. Questa opzione implica anche le opzioni noexec, nosuid, e nodev (finché ciò non sia cambiato dal superuser usando, ad esempio, la seguente riga di opzioni: user,exec,dev,suid).

OPZIONI PER IL MOUNT DI SPECIFICI FILESYSTEM
Le seguenti opzioni si applicano solo a certi file system. Sono ordinate per file system. Seguono tutte il flag -o.

Opzioni di mount per affs

uid=valore e gid=valore
    Imposta il proprietario e il gruppo della radice del file system (default: uid=gid=0, ma con l'opzione uid o gid senza specificare un valore, sono presi l'uid e il gid del processo corrente).

setuid=valore e setgid=valore
    Imposta il proprietario e il gruppo per tutti i file.

mode=valore
    Imposta il mode di tutti i file pari valore & 0777 non considerando i permessi originali. Aggiunge il permesso di ricerca alle directory che hanno il permesso di lettura. Valore va dato in ottale.

protect
    Non permette nessun cambiamento ai bit di protezione sul file system.

usemp
    Imposta uid e gid della radice del file system all'uid e al gid del mount point fino al primo sync o umount, o poi toglie questa opzione. Strana...

verbose
    Mostra un messaggio informativo per ogni mount che ha successo.

prefix=stringa
    Prefisso usato prima del nome del volume, quando si segue un link.

volume=stringa
    Prefisso (lungo al più 30) usato prima di '/' quando si segue un link simbolico.

reserved=valore
    (predefinito: 2). Numero di blocchi non usati all'inizio del dispositivo.

root=valore
    Imposta esplicitamente la posizione del root block.

bs=valore
    Imposta la dimensione dei blocchi. I valori permessi sono 512, 1024, 2048, 4096.

grpquota / noquota / quota / usrquota
    Queste opzioni sono accettate ma ignorate.

Opzioni di mount per coherent
Nessuna.

Opzioni di mount per ext
Nessuna. Si noti che il file system `ext' è obsoleto. Non usarlo.

Opzioni di mount per ext2
Il file system `ext2' è il file system standard di Linux. A causa di un kernel bug, può essere montato con opzioni di mount a caso (Linux 2.0).

bsddf / minixdf
    Imposta il comportamento della system call statfs. Il comportamento minixdf è di ritornare nel campo f_blocks il numero totale dei blocchi del file system, mentre il comportamento bsddf (quello di default) è di sottrarre gli overhead block usati dal file system ext2 e non disponibili per il salvataggio dei file. Quindi
% mount /k -o minixdf; df /k; umount /k
Filesystem   1024-blocks  Used Available Capacity Mounted on
/dev/sda6      2630655   86954  2412169      3%   /k
% mount /k -o bsddf; df /k; umount /k
Filesystem   1024-blocks  Used Available Capacity Mounted on
/dev/sda6      2543714      13  2412169      0%   /k
Si noti che questo esempio mostra che uno può aggiungere opzioni sulla riga di comando alle opzioni date in /etc/fstab.

check / check=normal / check=strict
    Imposta il livello di verifica. Quando almeno una di queste opzioni è impostata (check=normal è impostata di default) gli inode e i block bitmap sono verificati mentre si fa un mount (ciò può prendere anche mezzo minuto su dischi grandi). Con la verifica strict, la block deallocation verifica che il blocco da liberare sia nella zona dati.

check=none / nocheck
    Non è fatta alcuna verifica.

debug
    Mostra informazioni diagnostiche durante ogni (re)mount.

errors=continue / errors=remount-ro / errors=panic
    Definisce il comportamento quando è incontrato un errore (o ignora l'errore e marca solo il file system erroneo e continua, o rimonta il file system read-only, oppure va in panic e blocca il sistema). Il default è impostato nel superblock del file system, e può essere cambiato usando tune2fs(8).

grpid o bsdgroups / nogrpid o sysvgroups
    Queste opzioni definiscono quale group id dare a un nuovo file creato. Quando è impostato grpid, prende il group id della directory nella quale è creato; altrimenti (il default) è preso il fsgid del processo corrente, fino a che la directory non abbia il bit setgid impostato nel qual caso è preso il gid della parent directory, e ottiene anche il bit setgid impostato se pure lui è una directory.

resgid=n e resuid=n
    Il file system ext2 riserva una certa percentuale dello spazio disponibile (di default il 5%, vedere mke2fs(8) e tune2fs(8)). Queste opzioni determinano chi può usare i blocchi riservati (praticamente chiunque abbia l'uid specificato, o appartenga al gruppo specificato).

sb=n
    Invece del blocco 1, usa il blocco n come superblock. Ciò può essere utile quando il filesystem è danneggiato. Di solito, copie del superblock si trovano ogni 8192 blocchi: nei blocchi 1, 8193, 16385, ... (quindi, uno ha centinaia e persino migliaia di copie del superblock su un grande filesystem. Non conosco le opzioni di mke2fs che possono causare la scrittura di meno copie).

grpquota / noquota / quota / usrquota
    Queste opzioni sono accettate ma ignorate.

Opzioni di mount per fat

blocksize=512 / blocksize=1024
    Imposta la dimensione dei blocchi (il valore di default è 512).

uid=valore e gid=valore
    Imposta il proprietario e il gruppo per tutti i file (default: l'uid e il gid del processo corrente).

umask=valore
    Imposta l'umask (la bitmask dei permessi che non sono presenti). Il default è l'umask del processo corrente. Il valore va dato in ottale.

check=valore
    Possono essere scelti tre diversi livelli:

    r[elaxed]
        Maiuscole e minuscole sono considerate equivalenti, le parti lunghe dei nomi sono troncate (p.es. verylongname.foobar diventa verylong.foo), spazi iniziali e interni sono accettati in ognuna delle parti del nome (nome e estensione).

    n[ormal]
        Come "relaxed", ma sono rifiutati molti caratteri speciali (*, ?, <, spazi, ecc.). È il default.

    s[trict]
        Come "normal", ma i nomi non possono contenere parti lunghe e sono rifiutati i caratteri speciali che sono usati talvolta in Linux, ma che non sono accettati da MS-DOS (+, =, spazi, ecc.).

conv=b[inary] / conv=t[ext] / conv=a[uto]
    Il file system fat può effettuare la conversione CRLF<-->NL (formato testo MS-DOS in formato testo UNIX) nel kernel. Sono disponibili i seguenti modi di conversione:

    binary
        non è fatta alcuna conversione. Questo è il default.

    text
        la conversione CRLF<-->NL è effettuata su tutti i file.

    auto
        la conversione CRLF<-->NL è effettuata su tutti i file che non hanno una estensione binaria "nota". La lista delle estensioni note può essere trovata all'inizio di fs/fat/misc.c (per il 2.0, la lista è: exe, com, bin, app, sys, drv, ovl, ovr, obj, lib, dll, pif, arc, zip, lha, lzh, zoo, tar, z, arj, tz, taz, tzp, tpz, gz, tgz, deb, gif, bmp, tif, gl, jpg, pcx, tfm, vf, gf, pk, pxl, dvi).

    Ai programmi che fanno calcoli con lseek può non piacere la conversione del testo nel kernel. Molte persone hanno avuto i loro dati rovinati da questa trasformazione. Attenzione! Per i file system montati in modo binary, è disponibile un tool di conversione (fromdos/todos).

debug
    Abilita il flag debug. Saranno stampate le versione e una lista dei parametri del file system (questi dati sono stampati anche se i parametri sembrano essere inconsistenti).

fat=12 / fat=16
    Specifica una fat a 12 bit oppure a 16 bit. Ciò prevale sulla routine di rilevazione automatica del tipo di FAT. Usare con cautela!

quiet
    Abilita il flag quiet. Tentativi di chown o chmod su file non restituiscono errori, sebbene falliscano. Usare con cautela!

sys_immutable, showexec, dots, nodots, dotsOK=[yes|no]
    Vari tentativi malcondotti di forzare convenzioni Unix o DOS su un file system FAT.

Opzioni di mount per hpfs

uid=valore e gid=valore
    Imposta il proprietario e il gruppo per tutti i file (default: l'uid e il gid del processo corrente).

umask=valore
    Imposta l'umask (la bitmask dei permessi che non sono presenti). Il default è l'umask del processo corrente. Il valore va dato in ottale.

case=lower / case=asis
    Converte tutti i nomi di file in minuscolo, o li lascia inalterati (default: case=lower).

conv=binary / conv=text / conv=auto
    Con conv=text, quando legge un file cancella alcuni CR (in particolare, tutti quelli seguiti da NL). Con conv=auto, ha un comportamento più o meno intermedio tra conv=binary e conv=text. Con conv=binary, legge solo quello che c'è nel file. Questo è il default.

nocheck
    Non ferma il mount quando falliscono certe verifiche sulla consistenza.

Opzioni di mount per iso9660
Normalmente i nomi di file iso9660 appaiono nel formato 8.3 (cioè, restrizioni sulla lunghezza dei nomi di file come il DOS), e inoltre tutti i caratteri sono maiuscoli. Non c'è inoltre alcun campo per il proprietario del file, la protezione, il numero di link, supporto per device a blocchi o a carattere, ecc. Rock Ridge è un estensione a iso9660 che fornisce tutte queste caratteristiche Unix-like. In pratica ci sono estensioni ad ogni record di directory che forniscono le informazioni addizionali, e quando è in uso il Rock Ridge il filesystem è indistinguibile da un normale file system Unix (a parte il fatto che, naturalmente, è read-only).

norock
    Disabilita l'uso delle estensioni Rock Ridge, anche se disponibili. Cfr. map.

check=r[elaxed] / check=s[trict]
    Con check=relaxed, un nome di file è convertito in minuscolo prima di essere cercato. Probabilmente questa ha senso solo assieme a norock e map=normal (default: check=strict).

uid=valore e gid=valore
    Assegna a tutti i file nel file system lo user e il group id indicati, trascurando le infomazioni trovate nelle estensioni Rock Ridge (default: uid=0,gid=0).

map=n[ormal] / map=o[ff]
    Per i volumi non-Rock Ridge, le normali mappe di traduzione dei nomi da caratteri ASCII maiuscoli in minuscoli, trascurano il `;1' finale, e convertono `;' in `.'. Con map=off non è fatta alcuna traduzione dei nomi. Si veda norock (default: map=normal).

mode=valore
    Per i volumi non-Rock Ridge, assegna a tutti i file il mode indicato (default: permesso di lettura per tutti).

unhide
    Mostra anche i file nascosti e associati.

block=[512|1024|2048]
    Imposta la dimensione dei blocchi al valore indicato (default: block=1024).

conv=a[uto] / conv=b[inary] / conv=m[text] / conv=t[ext]
    (default: conv=binary). A partire da Linux 1.3.54 questa opzione non ha più alcun effetto (impostare a qualcosa di diverso da binary può risultare molto pericoloso e spesso porta a corruzioni dei dati inaspettate).

cruft
    Se il byte alto della dimensione del file contiene altre "porcherie", si imposti questa opzione di mount per ignorare i bit di ordine più elevato della dimensione del file. Ciò implica che un file non può essere più grande di 16MB. L'opzione `cruft' è impostata automaticamente se l'intero CDROM ha una dimensione bizzarra (negativa, o maggiore di 800MB). È impostata anche quando sono trovati volume sequence number diversi da 0 o 1.

Opzioni di mount per minix
Nessuna.

Opzioni di mount per msdos
Si vedano le opzioni di mount per fat. Se il file system msdos rileva un inconsistenza, riporta un errore e imposta il file system read-only. Il file system può essere reso ancora scrivibile rimontandolo.

Opzioni di mount per ncp
Proprio come per l'nfs, l'implementazione di ncp si aspetta un argomento binario (di tipo struct ncp_mount_data) per la system call mount. Tale argomento è costruito da ncpmount(8) e la versione corrente di mount (2.5k) non sa niente di ncp.

Opzioni di mount per nfs
Invece di una stringa testo di opzioni, esaminata dal kernel, il file system nfs si aspetta un argomento binario di tipo struct nfs_mount_data. Il programma mount stesso esamina le seguenti opzioni di forma `tag=valore' e le mette nella struttura suddetta: rsize=n, wsize=n, timeo=n, retrans=n, acregmin=n, acregmax=n, acdirmin=n, acdirmax=n, actimeo=n, retry=n, port=n, mountport=n, mounthost=nome, mountprog=n, mountvers=n, nfsprog=n, nfsvers=n, namlen=n. L'opzione addr=n è accettata ma ignorata. Sono riconosciute anche le seguenti opzioni booleane, anche precedute da no: bg, fg, soft, hard, intr, posix, cto, ac, tcp, udp. Per i dettagli, si veda nfs(5). Opzioni molto utili sono

rsize=8192, wsize=8192
    Queste renderanno la propria connessione nfs molto più veloce che con la dimensione del buffer di default (1024).

soft
    Questa opzione permette al kernel di sconnettersi se il server nfs non sta rispondendo da un certo tempo, altrimenti proverebbe per sempre. Il tempo può essere specificato con timeo=tempo. Questa opzione è utile se il proprio server nfs qualche volta non risponde o sarà rebootato mentre alcuni processi provano a prendere dei file dal server.

Opzioni di mount per proc

uid=valore e gid=valore
    Queste opzioni sono riconosciute, ma da quello che ho potuto vedere non hanno alcun effetto.

Opzioni di mount per smb
Proprio come per l'nfs, l'implementazione di smb si aspetta un argomento binario (di tipo struct smb_mount_data) per la system call mount. Questo argomento è costruito da smbmount(8) e la versione corrente di mount (2.5k) non sa niente di smb.

Opzioni di mount per sysv
Nessuna.

Opzioni di mount per ufs
Nessuna.

Opzioni di mount per umsdos
Si vedano le opzioni di mount per msdos.

Opzioni di mount per vfat
Prima di tutto, sono riconosciute le opzioni di mount per fat. Inoltre, ci sono

uni_xlate
    Traduce i caratteri Unicode non trattabili in speciali sequenze di escape. Ciò permette di salvare e ripristinare i nomi di file che sono creati con caratteri Unicode qualsiasi. Senza questa opzione, è usato un '?' quando non sia possibile la traduzione. Il carattere di escape usato è ':' perché è illegale nel file system vfat. La sequenza di escape usata è: ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12), dove u è il carattere Unicode.

posix
    Permette di avere due file i cui nomi differiscano solo nel case.

nonumtail
    Prova a fare un nome corto senza il numero, prima di provare name~num.ext.

Opzioni di mount per xenix
Nessuna.

Opzioni di mount per xiafs
Nessuna. Sebbene non ci sia niente di sbagliato in xiafs, non è molto usato e non è mantenuto. Probabilmente non si dovrebbe usare.

IL LOOP DEVICE
Un altro tipo possibile di mount è tramite il loop device. Per esempio, il comando
  mount /tmp/fdimage /mnt -t msdos -o loop=/dev/loop3,blocksize=1024
imposterà il loop device /dev/loop3 a corrispondere al file /tmp/fdimage, e poi monta questo device in /mnt. Questo tipo di mount riconosce tre opzioni, chiamate loop, offset e encryption, che in realtà sono opzioni di losetup(8). Se non è menzionato esplicitamente un loop device (ma è data solo l'opzione `-o loop'), allora mount proverà a trovare un loop device libero e lo userà.

FILE
/etc/fstab tabella dei file system
/etc/mtab tabella dei file system montati
/etc/mtab~ file di lock
/etc/mtab.tmp file temporaneo

VEDERE ANCHE
mount(2), umount(2), fstab(5), umount(8), swapon(8), nfs(5), mountd(8), nfsd(8), mke2fs(8), tune2fs(8), losetup(8)

BACHI
È possibile che un file system corrotto provochi un crash.

Alcuni file system di Linux non supportano -o sync (l'ext2fs supporta gli aggiornamenti sincroni (a la BSD) quando è montato con l'opzione sync).

L'opzione -o remount può non essere in grado di cambiare i parametri di mount (per esempio tutti i parametri di ext2fs, ad eccezione di sb, sono modificabili con un remount, ma non si può cambiare gid o umask per il fatfs).

STORIA
Un comando mount apparve nell'AT&T UNIX Versione 6.