|
MOUNT(8) manual page
Table of Contents
mount - monta un file system
mount [-hV]
mount -a [-fnrvw]
[-t tipo_fs]
mount [-fnrvw] [-o opzioni [,...]] device | dir
mount [-fnrvw]
[-t tipo_fs] [-o opzioni] device dir
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).
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).
Le seguenti opzioni si applicano solo
a certi file system. Sono ordinate per file system. Seguono tutte il flag
-o.
- uid= valore e gid= valore
- Setta 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
- Setta il proprietario e
il gruppo per tutti i file.
- mode=valore
- Setta 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
- Setta 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
- (Default:
2.) Numero di blocchi non usati all'inizio del dispositivo.
- root=valore
- Setta esplicitamente la posizione del root block.
- bs=valore
- Setta la dimensione
dei blocchi. I valori permessi sono 512, 1024, 2048, 4096.
- grpquota / noquota
/ quota / usrquota
- Queste opzioni sono accettate ma ignorate.
Nessuna.
Nessuna. Si noti
che il file system `ext' è obsoleto. Non usarlo.
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
- Setta 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
- Setta
il livello di verifica. Quando almeno una di queste opzioni è settata (check=normal
è settata 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 di debug 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 è settato 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 è settato 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 settato nel qual caso
è preso il gid della parent directory, e ottiene anche il bit setgid settato
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 so le opzioni di mke2fs che
possono causare la scrittura di meno copie.)
- grpquota / noquota / quota
/ usrquota
- Queste opzioni sono accettate ma ignorate.
- blocksize=512 / blocksize=1024
- Setta la dimensione dei blocchi
(il valore di default è 512).
- uid= valore e gid= valore
- Setta il proprietario
e il gruppo per tutti i file. (default: l'uid e il gid del processo corrente.)
- umask=valore
- Setta 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.
- uid= valore
e gid= valore
- Setta il proprietario e il gruppo per tutti i file. (default:
l'uid e il gid del processo corrente.)
- umask=valore
- Setta 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.
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]
- Setta 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. (Settare
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 setti 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' è settata automaticamente se l'intero CDROM ha una dimensione bizzarra
(negativa, o maggiore di 800MB). È settata anche quando sono trovati volume
sequence number diversi da 0 o 1.
Nessuna.
Si vedano le opzioni di mount per fat. Se
il file system msdos rileva un inconsistenza, riporta un errore e setta
il file system read-only. Il file system può essere reso ancora scrivibile
rimontandolo.
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.
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.
- uid= valore e gid= valore
- Queste opzioni sono riconosciute,
ma da quello che ho potuto vedere non hanno alcun effetto.
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.
Nessuna.
Nessuna.
Si vedano
le opzioni di mount per msdos.
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.
Nessuna.
Nessuna. Sebbene
non ci sia niente di sbagliato in xiafs, non è molto usato e non è mantenuto.
Probabilmente non si dovrebbe usare.
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
setterà 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à.
/etc/fstab
tabella dei file system
/etc/mtab tabella dei file system montati
/etc/mtab~
file di lock
/etc/mtab.tmp file temporaneo
mount(2)
, umount(2)
,
fstab(5)
, umount(8)
, swapon(8)
, nfs(5)
, mountd(8)
, nfsd(8)
, mke2fs(8)
,
tune2fs(8)
, losetup(8)
È 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).
Un comando mount apparve nell'AT&T UNIX Versione 6.
Table of Contents
|