Provided by: manpages-it_3.73-2_all bug

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