Provided by: manpages-it_3.73-2_all 

NOME
mount - monta i filesystem
SINTASSI
#include <sys/mount.h>
int mount(const char *source, const char *target,
const char *filesystemtype, unsigned long mountflags,
const void *data);
DESCRIZIONE
mount() collega il filesystem specificato da source (che è spesso un nome di dispositivo, ma può anche
essere un nome di directory o un nome fittizio) alla directory specificata da target.
Sono necessari privilegi appropriati (Linux: capacità CAP_SYS_ADMIN) per montare i filesystem.
A partire da Linux 2.4 un singolo filesystem può essere visibile su punti di mount multipli, e sullo
stesso punto di mount possono essere impilati montaggi multipli.
I valori dell'argomento filesystemtype supportati dal kernel sono elencati in /proc/filesystems (p.es,
"minix", "ext2", "ext3", "jfs", "xfs", "reiserfs", "msdos", "proc", "nfs", "iso9660"). Possono essere
disponibili altri tipi di filesystem caricando i moduli appropriati.
L'argomento mountflags può avere il magic number 0xC0ED (MS_MGC_VAL) nei 16 bit più alti (era necessario
nelle versioni di kernel precedenti a 2.4, ma non è più necessario ed è ignorato se specificato), e vare
opzioni di montaggio nei 16 bit di ordine basso:
MS_BIND (da Linux 2.4 in poi)
Esegue un montaggio bind, rendendo un file o un sottoalbero di directory visibile a un altro punto
dentro un filesystem. I montaggi bind possono attraversare i filesystem e oltrepassare le gabbie
chroot(2). Gli argomenti filesystemtype e data sono ignorati. A partire da Linux 2.6.26, è
ignorato anche mountflags (i montaggi bind hanno le stesse opzioni di montaggio del punto di mount
sottostante).
MS_DIRSYNC (a partire da Linux 2.5.19)
Sincronizza i cambiamenti di directory in questo filesystem. (Questa proprietà può essere ottenuta
per directory individuali o sottoalberi usando chattr(1).)
MS_MANDLOCK
Permette il blocco obbligatorio sui file in questo filesystem. (Il blocco obbligatorio deve sempre
essere abilitato in base ai file, come descritto in fcntl(2).)
MS_MOVE
Sposta un sottoalbero. source specifica un punto di mount esistente e target specifica la nuova
posizione. 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 filesystem.
MS_NODEV
Non permette l'accesso a dispositivi (file speciali) in questo filesystem.
MS_NODIRATIME
Non aggiorna l'ora di accesso per directory su questo filesystem. Questa opzione fornisce un
sottoinsieme di funzioni messe a disposizione da MS_NOATIME; vale a dire che MS_NOATIME implica
MS_NODIRATIME.
MS_NOEXEC
Non permette l'esecuzione di programmi su questo filesystem.
MS_NOSUID
Non onora i bit set-user-ID e set-group-ID quando si eseguono programmi da questo filesystem.
MS_RDONLY
Monta filesystem in sola lettura.
MS_RELATIME (A partire da Linux 2.6.20)
Quando si accede a un file in questo filesystem, aggiorna solo l'ora dell'ultimo accesso al file
(atime) se il valore attuale 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. A
partire da Linux 2.6.30, il kernel rende predefinito il comportamento fornito da questa opzione (a
meno che non sia stata specificato MS_NOATIME), e l'opzione MS_STRICTATIME è richiesta per
ottenere la tradizionale semantica. Inoltre, a partire da Linux 2.6.30, il tempo dell'ultimo
accesso al file viene sempre aggiornato se è trascorso più di 1 giorno.
MS_REMOUNT
Monta di nuovo un montaggio esistente. Questo permette di cambiare mountflag e dati di un
montaggio esistente senza dover smontare e rimontare il filesystem. source e target devono avere
gli stessi valori specificati nella chiamata mount() iniziale; source e filesystemtype sono
ignorati. Gli argomenti mountflags e data dovrebbero corrispondere ai valori nella chiamata
mount() originale, ad eccezione di quei parametri cambiati deliberatamente.
I seguenti mountflag possono essere 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_SILENT (a partire da Linux 2.6.17)
Sopprime la visualizzazione di alcuni messaggi di avvertimento (printk()) nelle registrazioni del
kernel. Questa opzione sostituisce l'opzione MS_VERBOSE, obsoleta e chiamata nel modo sbagliato
(disponibile da Linux 2.4.12), che ha lo stesso significato.
MS_STRICTATIME (a partire da Linux 2.6.30)
L'ultimo tempo di accesso è sempre aggiornato (atime) quando i file su questo filesystem sono
accessibili. (Questo era il comportamento predefinito prima di Linux 2.6.30.) Specificando questa
opzione l'effetto dell'impostazione delle opzioni MS_NOATIME e MS_RELATIME viene ignorato.
MS_SYNCHRONOUS
Rende sincrone le scritture su questo filesystem (come se l'opzione O_SYNC di open(2) fosse
specificata per tutti i file aperti su questo filesystem).
Da Linux 2.4 in poi, le opzioni MS_NODEV, MS_NOEXEC, e MS_NOSUID possono essere impostate basandosi sul
punto di mount. Dal kernel 2.6.16 in poi, MS_NOATIME e MS_NODIRATIME possono essere impostate basandosi
sui punti di mount. Anche l'opzione MS_RELATIME può essere impostata basandosi sui punti di mount.
L'argomento data è interpretato da differenti filesystem. Tipicamente è una stringa di opzioni separate
da virgole capita da questo filesystem. Vedere mount(8) per dettagli delle opzioni disponibili per
ciascun tipo di filesystem.
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 indicati di seguito sono causati da errori indipendenti dal tipo di filesystem.
Ciascun tipo di filesystem può avere i propri errori speciali e il suo comportamento speciale. Vedere il
codice sorgente del kernel per dettagli.
EACCES Un componente di un percorso non poteva essere cercato. (Vedere anche path_resolution(7).) Oppure
è stato tentato il montaggio di un filesystem in sola lettura senza dare l'opzione MS_RDONLY .
Oppure il dispositivo a blocchi source si trova su un filesystem montato con l'opzione MS_NODEV
EBUSY source è già montato. Oppure non può essere rimontato in sola lettura, perché contiene ancora file
aperti in scrittura. Oppure non può essere montato su target perché target è ancora occupato (è la
directory di lavoro di qualche task, il punto di mount di un altro dispositivo, ha file aperti,
ecc.).
EFAULT Uno degli argomenti puntatori punta fuori dallo spazio di indirizzamento dell'utente.
EINVAL source ha un superblocco non valido. Oppure è stato tentato un rimontaggio (MS_REMOUNT), ma source
non era ancora montato su target. Oppure è stato tentato uno spostamento (MS_MOVE), ma source non
era un punto di mount, o era '/'.
ELOOP Troppi collegamenti 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 fittizi è
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
target, o un prefisso di R souce, non è una directory.
ENXIO Il major number del dispositivo a blocchi source è fuori limite.
EPERM Il chiamante non ha i privilegi necessari.
VERSIONI
Le definizioni di MS_DIRSYNC, MS_MOVE, MS_REC, MS_RELATIME, e MS_STRICTATIME sono state aggiunte alle
intestazioni di glibc nella versione 2.12.
CONFORME A
Questa funzione è specifica di Linux e non deve essere usata in programmi pensati per essere portabili.
NOTE
L'opzione originale MS_SYNC fu rinominata 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 filesystem
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 ignorati silenziosamente.
Spazi dei nomi in base al processo
A partire dal kernel 2.4.19, Linux fornisce spazi dei nomi di montaggio in base al processo. Uno spazio
dei nomi di montaggio è l'insieme di montaggi di filesystem che un processo può vedere. Gli spazi dei
nomi dei punti di mount possono essere (e di solito lo sono) condivisi tra processi multipli, e i
cambiamenti provocati da un processo (cioé montaggi e smontaggi) sono visibili a tutti i processi che
condividano lo stesso spazio dei nomi. (La situazione prima di Linux pre-2.4.19 prevedeva che un singolo
spazio dei nomi venisse condiviso da tutti i processi nel sistema.)
Un processo figlio creato da fork(2) condivide lo spazio dei nomi di montaggio del suo genitore: lo
spazio dei nomi di montaggio viene preservato tramite un execve(2).
Un processo può ottenere uno spazio dei nomi di montaggio privato se: è stato creato usando l'opzione di
clone() CLONE_NEWNS, e in questo caso il suo nuovo spazio dei nomi viene inizializzato come copia degli
spazi dei nomi del processo che ha chiamato clone(): o se chiama unshare(2) con l'opzione CLONE_NEWNS,
che permette allo spazio dei nomi del chiamante di ottenere una copia privata dello spazio dei nomi che
in precedenza condivideva con altri processi, in modo che chiamate a montaggi e smontaggi futuri siano
invisibili agli altri processi (ad eccezione di processi figli creati successivamente dal chiamante), e
viceversa.
Il file specifico di Linux /proc/PID/mounts mostra l'elenco di punti di mount negli spazi dei nomi dei
processi con l'ID specificato. Vedere proc(5) per i dettagli.
VEDERE ANCHE
lsblk(1), umount(2), namespaces(7), path_resolution(7), mount(8), umount(8)
COLOPHON
Questa pagina fa parte del rilascio 3.73 del progetto Linux man-pages. Una descrizione del progetto, le
istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trova su
http://www.kernel.org/doc/man-pages/.
La versione italiana fa parte del pacchetto man-pages-it v. 3.73, a cura di: ILDP "Italian Linux
Documentation Project" http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a ildp@pluto.it
Linux 2014-09-21 MOUNT(2)