Provided by: manpages-it_2.80-3_all bug

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/