Provided by: manpages-es_1.55-10_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)