bionic (2) mount.2.gz

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