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/