bionic (2) umount2.2.gz

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)