Provided by: manpages-es_1.55-9_all bug

NOMBRE

       mount, umount - monta y desmonta sistemas de ficheros.

SINOPSIS

       #include <sys/mount.h>

       int mount(const char *fuente, const char *destino, const char *tipo_sf,
       unsigned long opciones, const void *datos);

       int umount(const char *destino);

       int umount2(const char *destino, int opciones);

DESCRIPCIÓN

       mount  une  el  sistema  de  ficheros  especificado  por  fuente   (que
       frecuentemente  es un nombre de dispositivo, pero que puede ser también
       un nombre  de  directorio  o  un  dispositivo  virtual)  al  directorio
       especificado por destino.

       umount   y   umount2  eliminan la unión del sistema de ficheros (el que
       hay arriba del todo) que se encuentra montado en destino.

       Sólo el super-usuario puede montar y desmontar sistemas de ficheros.  A
       partir  de  la versión 2.4 de Linux, un mismo sistema de ficheros puede
       ser visible en multiples puntos de montaje y se pueden realizar  varios
       montajes en el mismo punto de montaje, apilando unos sobre otros.

       Los  valores  para el argumento tipo_sf que soporta el núcleo se listan
       en el fichero /proc/filesystems (como "minix", "ext2", "msdos", "proc",
       "nfs",  "iso9660",  etc.).   Es posible que aparezcan tipos adicionales
       cuando se carguen los módulos apropiados.

       El argumento opciones puede tener el número mágico 0xC0ED  (MS_MGC_VAL)
       en  los 16 bits más significativos (esto era necesario en las versiones
       del núcleo anteriores a la 2.4, pero ya no se necesita y se  ignora  si
       se  especifica)  y  varias  opciones  de montaje (como las definidas en
       <linux/fs.h> para libc4 y libc5 y en <sys/mount.h> para glibc2) en  los
       16 bits menos significativos:

       MS_BIND
              (Linux  2.4  y  siguientes)  Realiza  un  montaje  «de ligadura»
              (bind), lo que hace que un subárbol de ficheros o de directorios
              sea  visible en otro punto dentro de un sistema de ficheros. Los
              montajes de ligadura pueden cruzar los límites de  los  sistemas
              de  ficheros  y  atravesar  «jaulas»  chroot(2).  Los argumentos
              tipo_sf, opciones y datos se ignoran.

       MS_DIRSYNC
              (Desde Linux 2.5.19.)  Hace que los cambios en  los  directorios
              de  este sistema de ficheros sean síncronos.  (Esta propiedad la
              pueden obtener los directorios o subárboles individuales  usando
              chattr(8).)

       MS_MANDLOCK
              Permite bloqueos obligatorios sobre los ficheros de este sistema
              de  ficheros.   (Los   bloqueos   obligatorios   todavía   deben
              habilitarse  fichero  a  fichero, de la forma que se describe en
              fcntl(2).)

       MS_MOVE
              Mueve un  subárbol.   fuente  especifica  un  punto  de  montaje
              existente y destino especifica la nueva posición.  El movimiento
              es atómico: en ningún momento  se  desmonta  el  subárbol.   Los
              argumentos tipo_sf, opciones y datos se ignoran.

       MS_NOATIME
              No actualiza el tiempo de acceso para los ficheros (de cualquier
              tipo) en este sistema de ficheros.

       MS_NODEV
              No permite el acceso a los dispositivos (ficheros especiales) en
              este sistema de ficheros.

       MS_NODIRATIME
              No  actualiza  el  tiempo de acceso para los directorios en este
              sistema de ficheros.

       MS_NOEXEC
              No permite que los programas se ejecuten desde este  sistema  de
              ficheros.

       MS_NOSUID
              No  hace  caso  a  los bits set-UID y set-GID cuando se ejecutan
              programas desde este sistema de ficheros.

       MS_RDONLY
              Monta el sistema de ficheros para sólo lectura.

       MS_REMOUNT
              Remonta un montaje existente. Esto le permite cambiar  el  valor
              de  opciones  y  datos  de  un  montaje  existente sin tener que
              desmontar y remontar el sistema de ficheros.  fuente  y  destino
              deben ser los mismos valores que los especificados en la llamada
              mount() inicial; tipo_sf se ignora.

       MS_SYNCHRONOUS
              Hace que  las  escrituras  en  este  sistema  de  ficheros  sean
              síncronos  (como  si se hubiera especificado la opción O_SYNC en
              open(2) para todos los ficheros  abiertos  en  este  sistema  de
              ficheros).

       A partir de la versión 2.4 de Linux, las opciones MS_NODEV, MS_NOEXEC y
       MS_NOSUID se pueden  configurar  individualmente  para  cada  punto  de
       montaje.

       El  argumento  datos  es  interpretado  por  los diferentes sistemas de
       ficheros. Normalmente es una cadena de opciones separadas por comas que
       entiende  este  sistema  de  ficheros.   Consulte mount(8) para ver más
       detalles de las opciones disponibles  para  cada  tipo  de  sistema  de
       ficheros.

       La versión 2.1.116 de Linux añadió la llamada al sistema umount2() que,
       como umount(), desmonta un destino pero  permite  especificar  opciones
       adicionales que controlen el comportamiento de la operación:

       MNT_FORCE
              Fuerza el desmontaje aunque el sistema de ficheros esté ocupado.
              (Desde 2.1.116. Sólo para montajes NFS.)

       MNT_DETACH
              Realiza un desmontaje «perezoso»: hace que el punto  de  montaje
              deje de estar disponible para nuevos accesos y realmente realiza
              el desmontaje cuando el punto de montaje deja de estar  ocupado.
              (Desde 2.4.11.)

VALOR DEVUELTO

       En  caso  de éxito se devuelve 0. En caso de error, -1, y se da a errno
       un valor apropiado.

ERRORES

       Los valores de error dados más abajo son  independientes  del  tipo  de
       sistema  de ficheros. Cada tipo de sistemas de ficheros puede tener sus
       propios errores especiales y comportamiento. Consulte los  fuentes  del
       núcleo para los detalles.

       EPERM  El usuario no es el super-usuario.

       ENODEV tipo_sf no configurado en el núcleo.

       ENOTBLK
              fuente  no  es  un  dispositivo  de  bloques (y se necesitaba un
              dispositivo).

       EBUSY  fuente ya está montado.  O  no  puede  remontarse  para  lectura
              exclusiva,  porque ya contiene ficheros abiertos para escritura.
              O no puede montarse en destino porque destino  ya  está  ocupado
              (es  el  directorio  de  trabajo  de  alguna  tarea, el punto de
              montaje de otro dispositivo, tiene ficheros abiertos, etc.).   O
              no puede desmontarse porque está ocupado.

       EINVAL fuente  tiene un superbloque inválido.  O se ha intentado volver
              a montar, pero fuente no estaba ya montado en destino.  O se  ha
              intentando  mover fuente cuando ésta no es un punto de montaje o
              es ’/’.  O se ha intentado desmontar, pero  destino  no  era  un
              punto de montaje.

       ENOTDIR
              El  segundo  argumento,  o  un  prefijo  del  primero,  no es un
              directorio.

       EFAULT Uno de los argumentos de tipo puntero apunta fuera  del  espacio
              de direcciones de usuario.

       ENOMEM El  núcleo  no pudo obtener una página libre para copiar en ella
              nombres de ficheros o datos.

       ENAMETOOLONG
              Un nombre de ruta era más largo que MAXPATHLEN.

       ENOENT Un  nombre  de  camino  estaba  vacío  o  tenía  un   componente
              inexistente.

       ELOOP  Se han encontrado demasiados enlaces durante la resolución de la
              ruta.  O se ha intentado un  movimiento  cuando  destino  es  un
              descendiente de fuente.

       EACCES No se pudo acceder a un componente de una ruta.
              O  se  intentó  montar  un  sistema  de  ficheros  para  lectura
              exclusiva sin dar la opción MS_RDONLY.
              O el dispositivo de bloques  fuente  estaba  en  un  sistema  de
              ficheros montado con la opción MS_NODEV.

       ENXIO  El  número mayor del dispositivo de bloques fuente está fuera de
              rango.

       EMFILE (En caso de que no se necesite un dispositivo  de  bloques:)  La
              tabla de dispositivos ficticios está llena.

CONFORME A

       Estas  funciones  son  específicas  de Linux y no deberían emplearse en
       programas pretendidamente transportables.

HISTORIA

       La función umount  original  se  invocaba  como  umount(dispositivo)  y
       devolvía  ENOTBLK cuando se invocaba con algo distinto a un dispositivo
       de bloques.  En la  versión  0.98p4  de  Linux  se  añadió  la  llamada
       umount(dir)  para  dar  soporte  a los dispositivos anónimos.  En Linux
       2.3.99-pre7 se eliminó la  llamada  umount(dispositivo),  dejando  sólo
       umount(dir)  (ya  que ahora los dispositivos se pueden montar en más de
       un lugar, por lo que especificar el dispositivo no es suficiente).

       La opción MS_SYNC original se renombró a MS_SYNCHRONOUS en  la  versión
       1.1.69 cuando se añadió un MS_SYNC diferente a <mman.h>.

       Antes  de  la  versión  2.4 de Linux, cualquier intento por ejecutar un
       programa set-UID o set-GID sobre un sistema  de  ficheros  montado  con
       MS_NOSUID fallaba dando el error EPERM.  Desde la versión 2.4, los bits
       set-UID y set-GID simplemente se ignoran de forma  silenciosa  en  este
       caso.

VÉASE TAMBIÉN

       mount(8), umount(8)