Provided by:
manpages-it_2.80-3_all 
NOME
mount, umount, umount2 - monta e smonta i file system
SINTASSI
#include <sys/mount.h>
int mount(const char *source, const char *target,
const char *filesystemtype, unsigned long mountflags,
const void *data);
int umount(const char *target);
int umount2(const char *target, int flags);
DESCRIZIONE
mount() attacca il file system specificato da source (che è spesso un
nome di dispositivo, ma può anche essere un nome di directory o un
dummy) alla directory specificata da target.
umount() e umount2() rimuove l’attaccamento del (più alto) file system
montato su target.
Sono necessari privilegi appropriati (Linux: capacità CAP_SYS_ADMIN)
per montare e smontare i file system.
A partire da Linux 2.4 un singolo file system può essere visibile su
punti di mount multipli, e sullo stesso punto di mount possono essere
impilati mount multipli.
I valori dell’argomento filesystemtype supportato dal kernel sono
elencati in /proc/filesystems (come "minix", "ext2", "msdos", "proc",
"nfs", "iso9660" etc.). Ulteriori tipi possono divenire disponibili
quando vengono caricati moduli appropriati.
L’argomento mountflags può avere il magic number 0xC0ED (MS_MGC_VAL)
nei 16 bit più alti (questo era necessario nelle versioni di kernel
precedenti a 2.4, ma non è più necessario ed è ignorato se
specificato), e vari flag di mount (come definito in <linux/fs.h> per
libc4 e libc5 e in <sys/mount.h> per glibc2) nei 16 bit di ordine
basso:
MS_BIND (da Linux 2.4 in poi)
Esegue un mount bind, rendendo un file o un sottoalbero di
directory visibile a un altro punto dentro un file system. I
mount bind possono attraversare i file system e oltrepassare le
gabbie chroot(2) Gli argomenti filesystemtype, mountflags, e
data sono ignorati.
MS_DIRSYNC (a partire da Linux 2.5.19)
sincronizza i cambiamenti di directory in questo file system.
(Questa proprietà può essere ottenuta per directory individuali
o sottoalberi usando chattr(1).)
MS_MANDLOCK
Permette il blocco obbligatorio aui file in questo file system.
(Il blocco obbligatorio deve ancora essere abilitato su una base
per file, come descritto in fcntl(2).)
MS_MOVE
Sposta un sottoalbero. source specifica un punto di mount
esistente e target specifica la nuova locazione. Lo spostamento
è atomico: il sottoalbero non viene smontato in nessun momento.
Gli argomenti filesystemtype, mountflags, e data sono ignorati.
MS_NOATIME
Non aggiorna l’ora di accesso per (tutti i tipi di) file su
questo file system.
MS_NODEV
Non permette l’accesso a dispositivi (file speciali) in questo
file system.
MS_NODIRATIME
Non aggiorna l’ora di accesso per directory su questo file
system. Questo flag fornisce un sottoinsieme di funzioni messe
a disposizione da MS_NOATIME; vale a dire che MS_NOATIME
suggerisce MS_NODIRATIME.
MS_NOEXEC
Non permette ai programmi di essere eseguiti da questo file
system.
MS_NOSUID
Non onora i bit set-user-ID e set-group-ID quando si eseguono
programmi da questo file system.
MS_RDONLY
Monta file system in sola lettura.
MS_RELATIME (A partire da Linux 2.6.20)
Quando si accede a un file in questo file system, aggiorna solo
l’ora dell’ultimo accesso al file (atime) se il valore corrente
di atime è minore o uguale a quello dell’ultima modifica del
file (mtime) o all’ora dell’ultimo cambiamento di stato (ctime).
Questa opzione è utile per programmi, come mutt(1), che hanno
bisogno di sapere quando un file è stato letto dall’ultima
modifica.
MS_REMOUNT
Monta di nuovo un mount esistente. Questo permette di cambiare
i mountflag e dati di un mount esistente senza dover smontare e
rimontare il file system. source e target devono essere gli
stessi valori specificati nella chiamata mount() iniziale;
filesystemtype è ignorato.
I seguenti mountflag possono venire cambiati: MS_RDONLY,
MS_SYNCHRONOUS, MS_MANDLOCK; prima del kernel 2.6.16, potevano
essere cambiati anche i seguenti: MS_NOATIME e MS_NODIRATIME; e,
in aggiunta, prima del kernel 2.4.10, potevano essere cambiati
anche questi: MS_NOSUID, MS_NODEV, MS_NOEXEC.
MS_SYNCHRONOUS
Rende sincrone le scritture su questo file system (come se il
flag O_SYNC a open(2) fosse specificato per tutti i file aperti
a questo file system).
Da Linux 2.4 in poi, i flag MS_NODEV, MS_NOEXEC, e MS_NOSUID sono
impostabili per l’intero punto di mount. Dal kernel 2.6.16 in poi,
MS_NOATIME e MS_NODIRATIME possono essere impostati basandosi sui punti
di mount. Anche il flag MS_RELATIME può essere impostato basandosi sui
punti di mount.
L’argomento data è interpretato da differenti file system. Tipicamente
esso è una stringa di opzioni separate da virgole capita da questo file
system. Vedere mount(8) per dettagli delle opzioni disponibili per
ciascun tipo di filesystem.
Linux 2.1.116 ha aggiunto la chiamata di sistema umount2(), la quale,
come umount(), smonta un target, ma permette flag aggiuntivi che
controllano il comportamento dell’operazione:
MNT_FORCE (a partire da Linux 2.1.116)
Forza l’unmount anche se occupato. Questo può causare una
perdita di dati. (solo per i mount NFS).
MNT_DETACH (a partire da Linux 2.4.11)
Esegue un unmount lento: rende il punto di mount non disponibile
per i nuovi accessi, e attualmente esegue l’unmount quando il
punto di mount smette di essere occupato.
MNT_EXPIRE (a partire da Linux 2.6.8)
Marca il punto di mount come scaduto. Se un punto di mount non
è attualmente in uso, allora una chiamata iniziale a umount2()
con questo flag fallisce con l’errore EAGAIN, ma marca il punto
di mount come scaduto. Il punto di mount rimane scaduto fino a
quando non vi accede nessun processo. Una seconda chiamata
umount2() che specifica MNT_EXPIRE somnta un punto di mount
scaduto. Questo flag non può essere specificato con MNT_FORCE o
MNT_DETACH.
VALORE RESTITUITO
In caso di successo viene restituito zero. In caso di errore viene
restituito -1 , e errno viene impostato di conseguenza.
ERRORI
I valori di errore dati di seguito vengono da errori indipendenti dal
tipo di file system. Ciascun tipo di file system può avere i propri
errori speciali e il suo comportamento speciale. Vedere il codice
sorgente del kernel per dettagli.
EACCES Un componente di un non poteva essere cercato. (Vedere anche
path_resolution(2).) Oppure è stato tentato il mount di un
filesystem in sola lettura senza dare il flag MS_RDONLY .
Oppure il dispositivo a blocchi source si trova su un filesystem
montato con l’opzione MS_NODEV
EAGAIN Una chiamata a umount2() che specifica MNT_EXPIRE ha marcato con
successo un file system non occupato come scaduto.
EBUSY source è già montato. Oppure non può essere rimontato in sola
lettura, perché contiene ancora file aperti in scrittura.
Oppure non può essere montato sul target perché target è ancora
occupato (è la directory di lavoro di qualche task, il punto di
mount di un altro dispositivo, ha file aperti, ecc.). Oppure
non può essere smontato perché è occupato.
EFAULT Uno degli argomanti puntatori punta fuori dallo spazio di
indirizzamento dell’utente.
EINVAL source ha un superblock non valido. Oppure è stato tentato un
remount (MS_REMOUNT), ma source non era ancora montato su
target. Oppure è stato tentato uno spostamento (MS_MOVE), ma
source non era un mount point, o era ’/’. Oppure è stato
tentato un unmount, ma target non era un mount point. Oppure
umount2() è stato chiamato con MNT_EXPIRE e uno tra MNT_DETACH o
MNT_FORCE.
ELOOP Troppi link incontrati durante la risoluzione di un percorso.
Oppure è stato tentato uno spostamento, mentre target è
discendente di source.
EMFILE (Nel caso non sia necessario un dispositivo a blocchi): La
tabella dei dispositivi fasulli è piena.
ENAMETOOLONG
Un nome di percorso è più lungo di MAXPATHLEN.
ENODEV filesystemtype non configurato nel kernel.
ENOENT Un nome di percorso era vuoto o aveva un componente inesistente.
ENOMEM Il kernel non può allocare una pagina libera in cui copiare nomi
di file o dati.
ENOTBLK
source non è un dispositivo a blocchi (ed era necessario un
dispositivo).
ENOTDIR
Il secondo argomento, o un prefisso del primo argomento, non è
una directory.
ENXIO Il major number del dispositivo a blocchi source è fuori limite.
EPERM Il chiamante non ha i privilegi necessari.
CONFORME A
Queste funzioni sono specifiche di Linux e non devono essere usate in
programmi pensati per essere portabili.
NOTE
Note Linux
La funzione originale umount() era chiamata come umount(device) e
restituiva ENOTBLK quando non veniva chiamata con un dispositivo a
blocchi. In Linux 0.98p4 fu aggiunta una chiamata umount(dir), per
poter supportate dispositivi anonimi. In Linux 2.3.99-pre7 la chiamata
umount(device) fu rimossa, lasciando solo umount(dir) (poiché ora i
dispositivi possono essere montati in più di un posto, così specificare
il dispositivo non è sufficiente).
Il flag originale MS_SYNC fu rinominato MS_SYNCHRONOUS in 1.1.69 quando
fu aggiunto un diverso MS_SYNC a <mman.h>.
Prima di Linux 2.4 un tentativo di eseguire un programma set-user-ID o
set-group-ID su un file system montato con MS_NOSUID falliva con EPERM.
A partire da Linux 2.4 i bit set-user-ID e set-group-ID in questo caso
sono igonrati silenziosamente.
VEDERE ANCHE
path_resolution(7), mount(8), umount(8)
COLOPHON
Questa pagina fa parte del rilascio 2.80 del progetto man-pages di
Linux. Si può trovare una descrizione del progetto, e informazioni su
come riportare bachi, presso http://www.kernel.org/doc/man-pages/. Per
la traduzione in italiano si può fare riferimento a
http://www.pluto.it/ildp/collaborare/