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 e spesso un
       nome di dispositivo, ma puo anche essere un  nome  di  directory  o  un
       dummy) alla directory specificata da target.

       umount()  e umount2() rimuove l'attaccamento del (piu alto) file system
       montato su target.

       Sono necessari privilegi appropriati  (Linux:  capacita  CAP_SYS_ADMIN)
       per montare e smontare i file system.

       A  partire  da  Linux 2.4 un singolo file system puo 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 puo avere il magic  number  0xC0ED  (MS_MGC_VAL)
       nei  16  bit  piu  alti (questo era necessario nelle versioni di kernel
       precedenti  a  2.4,  ma  non  e  piu  necessario  ed  e   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 proprieta puo 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
              e  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  e  minore  o uguale a quello dell'ultima modifica del
              file (mtime) o all'ora dell'ultimo cambiamento di stato (ctime).
              Questa  opzione  e  utile per programmi, come mutt(1), che hanno
              bisogno di sapere quando  un  file  e  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 e 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 puo essere impostato basandosi sui
       punti di mount.

       L'argomento data e interpretato da differenti file system.  Tipicamente
       esso e 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  puo  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
              e 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 puo 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 puo  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  e  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  e  gia montato.  Oppure non puo essere rimontato in sola
              lettura,  perche  contiene  ancora  file  aperti  in  scrittura.
              Oppure  non puo essere montato sul target perche target e ancora
              occupato (e la directory di lavoro di qualche task, il punto  di
              mount  di  un  altro dispositivo, ha file aperti, ecc.).  Oppure
              non puo essere smontato perche e occupato.

       EFAULT Uno degli  argomanti  puntatori  punta  fuori  dallo  spazio  di
              indirizzamento dell'utente.

       EINVAL source  ha  un superblock non valido.  Oppure e stato tentato un
              remount (MS_REMOUNT),  ma  source  non  era  ancora  montato  su
              target.   Oppure  e  stato tentato uno spostamento (MS_MOVE), ma
              source non era un mount  point,  o  era  '/'.   Oppure  e  stato
              tentato  un  unmount,  ma target non era un mount point.  Oppure
              umount2() e stato chiamato con MNT_EXPIRE e uno tra MNT_DETACH o
              MNT_FORCE.

       ELOOP  Troppi  link  incontrati  durante la risoluzione di un percorso.
              Oppure  e  stato  tentato  uno  spostamento,  mentre  target   e
              discendente di source.

       EMFILE (Nel  caso  non  sia  necessario  un  dispositivo a blocchi): La
              tabella dei dispositivi fasulli e piena.

       ENAMETOOLONG
              Un nome di percorso e piu 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 puo allocare una pagina libera in cui copiare nomi
              di file o dati.

       ENOTBLK
              source  non  e  un  dispositivo  a blocchi (ed era necessario un
              dispositivo).

       ENOTDIR
              Il secondo argomento, o un prefisso del primo argomento,  non  e
              una directory.

       ENXIO  Il major number del dispositivo a blocchi source e 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)  (poiche  ora  i
       dispositivi possono essere montati in piu di un posto, cosi specificare
       il dispositivo non e 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 puo 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   puo   fare   riferimento   a
       http://www.pluto.it/ildp/collaborare/