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 superblocco 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 dischetti montati dagli utenti. Attenzione: l’analisi sfrutta una tecnica euristica (la presenza di un ’numero magico’ 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 blocco root.
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 predefinito) è di sottrarre i blocchi in sovrappiù 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 le bitmap di blocco sono verificati mentre si fa un mount (ciò può prendere anche mezzo minuto su dischi grandi). Con la verifica strict, la deallocazione dei blocchi 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 in sola lettura, oppure va in panico e blocca il sistema). Il default è impostato nel superblocco 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 superblocco. Ciò può essere utile quando il filesystem è danneggiato. Di solito, copie del superblocco si trovano ogni 8192 blocchi: nei blocchi 1, 8193, 16385, ... (quindi, uno ha centinaia e persino migliaia di copie del superblocco 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, ovviamente, è di sola lettura).
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 in sola lettura. 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.