# Mount

mount es un comando de sistemas basados en Unix que se utiliza para montar dispositivos y particiones para su uso por el sistema operativo. Montar es hacer que el sistema operativo proyecte el contenido de ese dispositivo o partición en un enlace lógico (un directorio). Cuando se desocupa se rompe el enlace y se sigue trabajando con los mismos archivos básicos.

## Descripción general

El comando mount (montar) indica al sistema operativo que un sistema de archivos está listo para ser usado, y lo asocia con un punto particular en la jerarquía general del sistema de archivos (su punto de montaje), y establece opciones relacionadas con su acceso.
El montaje hace que los sistemas de archivos, los archivos, los directorios, los dispositivos y los archivos especiales estén disponibles para su uso y para el usuario.
Su contrapartida umount (desmontar) le indica al sistema operativo que el sistema de archivos debe desasociarse de su punto de montaje, lo que hace que ya no sea accesible y que se pueda eliminar de la computadora.
Es importante desmontar un dispositivo antes de eliminarlo, ya que es posible que los cambios en los archivos solo se hayan escrito parcialmente y se completen como parte del desmontaje.
Los comandos mount y umount requieren privilegios de usuario raíz para efectuar cambios. Alternativamente, el usuario raíz puede haber otorgado previamente privilegios específicos para realizar la acción correspondiente. El usuario root puede definir un sistema de archivos como montable por el usuario en el archivo /etc/fstab.

## Uso
### Dispositivos

Los dispositivos en Unix se encuentran dentro de /dev. Así es como se designan los más comunes en GNU/Linux:
* fd0 Primera unidad de disquetes (a: en sistemas MS-DOS y Windows).
* fd1 Segunda unidad de disquetes (b: en sistemas MS-DOS y Windows).
* hda Primer disco duro IDE (Primary Master).
* hda0 Primera partición del primer disco duro IDE (Primary Master).
* hda1 Segunda partición del primer disco duro IDE (Primary Slave).
* hdb0 Primera partición del segundo disco duro IDE (Secondary Master).
* hdb1 Segunda partición del segundo disco duro IDE (Secondary Slave).
* sda Primer disco duro SCSI.
* sda1 Primera partición del primer disco duro SCSI.
* sdb Primera unidad de llave usb (Memoria USB).
* sdb4 Cuarta partición del segundo disco duro SCSI.
* scd0 Primera unidad de CD-ROM SCSI.
* scd1 Segunda unidad de CD-ROM SCSI.
* sga Primer dispositivo genérico SCSI (scanner, etc.).
* sgb Segundo dispositivo genérico SCSI.
* sg0 Primer dispositivo genérico SCSI en sistemas nuevos.
* sg1 Segundo dispositivo genérico SCSI en sistemas nuevos.
Desde la aparición de las unidades de almacenamiento USB (pendrives) y los discos duros SATA (serial ATA), estos han empezado a usar también la denominación propia de los dispositivos SCSI (sda1, sdb3, etc.). Aun así, algunas veces se pueden encontrar unidades IDE con nombres del tipo sda, sdb, etc. Esto se debe a que ciertas distribuciones utilizan emulación IDE-SCSI. De esta forma se utiliza una capa de software común para el manejo de todos los discos duros, CD-ROM, etc.

### Tipos de sistemas de archivos soportados

El tipo del sistema de archivos puede ser:
* auto (intenta descubrir automáticamente el sistema de archivos).
* iso9660 (sistema de archivos de los CD y DVD).
* ext2 (sistema de archivos muy extendido en máquinas Linux).
* ext3 (igual que ext2 pero además añade journaling).
* ext4 (introdujo significativas mejoras respecto a ext3)
* reiserfs (otro sistema muy utilizado en máquinas Linux).
* msdos (para dispositivos que usen FAT12 o FAT16).
* vfat (para dispositivos que usen FAT32).
* ntfs (sistema de archivos NTFS de Windows NT, XP, etc.).
* smbfs (sistema de archivos de Samba).
* nfs (sistema de archivos de red NFS).
* hfs y hfsplus (acceden a sistemas de archivos de Apple Macintosh).

### Opciones del comando mount
#### Opciones comunes para todos los sistemas de archivos

Como los sistemas de archivos de /etc/fstab serán ocasionalmente montados utilizando mount no es de extrañar que el campo de opciones contenga simplemente una lista de opciones separadas por comas que serán pasadas directamente al intentar montar un sistema de archivos.
Las opciones comunes a todos los sistemas de archivos son:

##### auto / noauto

    Con la opción auto, el dispositivo será montado automáticamente durante el inicio o en caso de que el comando mount -a sea ejecutado. auto es el valor por defecto. Si no se desea que el dispositivo se monte automáticamente, se deberá substituir por noauto.

##### dev / nodev

    Interpretar / no interpretar dispositivos especiales de bloques en el sistema de archivos. Los dispositivos especiales de bloques son similares a discos (donde se puede acceder a los datos dado un número de bloque, y p.ej. tiene sentido tener un caché de bloques). Todos los otros dispositivos son ficheros especiales de caracteres. Hace tiempo la distinción era diferente: la E/S a un fichero especial de caracteres sería sin búfer, y a un fichero especial de bloques, con búfer.

##### exec / noexec

    exec permite ejecutar binarios que están en la partición, mientras que noexec lo impide. noexec puede resultar útil en una partición que contenga binarios que se deseen ejecutar en el sistema, o que no deban ser ejecutados. Este podría ser el caso de la partición de Windows.

##### ro

    Montar para sólo lectura.

##### rw

    Montar el sistema de archivos para lectura/escritura. Utilizando esta opción, muchos nuevos usuarios confusos, por no poder escribir en sus discos o particiones de Windows, pueden solucionar el problema.

##### sync / async

    Esta opción indica la manera en que se debe realizar la entrada y salida del sistema de archivos. sync especifica que se realice de manera síncrona. Para verlo en un ejemplo de un fstab, nótese que esta opción aparece en la unidad de discos flexibles. En particular sirve, si se está escribiendo en una unidad con la opción activada, para que los cambios sean realizados físicamente en el dispositivo a la vez que se invoca el comando correspondiente.

##### suid / nosuid

    Permite / bloquea la operación sobre los bits suid y sgid.

##### user / nouser

    Permite a cualquier usuario montar el sistema de archivos. Implica directamente las opciones noexec, nosuid y nodev a menos que se especifiquen otras. Si se utiliza la opción nouser, solo el usuario root podrá montar el sistema de archivos.

##### defaults

    Utiliza las opciones por defecto: rw,suid,dev,exec,auto,nouser,async.

##### nofail

    No devuelve error si no se puede montar el dispositivo.

#### Opciones específicas para cada sistema de archivos

Hay multitud de opciones específicas para cada sistema de archivos soportado por mount. Las que se listan a continuación son las más habituales. Para una lista completa se puede acudir a la página del manual de Unix sobre mount.

##### ext2
###### check={none, normal, strict}

    Establece el nivel de comprobación de fsck.

###### debug

    Imprime información de depuración durante cada re-montaje.

###### sb=n

    n es el bloque que deber ser utilizado como superbloque para el sistema de archivos.

##### fat
###### check={r[elaxed], n[ormal], s[trict]}

    No es igual que en ext2, pero permite utilizar una sintaxis parecida.

###### conv={b[inary], t[ext], a[uto]}

    Efectúa automáticamente conversiones de archivos de texto entre DOS<->UNIX.

###### uid=n, gid=n

    Establece el identificador de usuario, uid, y el identificador de grupo, gid, para todos los archivos de la partición.

###### umask=nnn, dmask=nnn, fmask=nnn

    Establece máscara de usuario para la creación de archivos, umask, y lo mismo para sólo directorios, dmask y sólo archivos, fmask.

##### iso9660
###### norock

    Deshabilita las extensiones Rock Ridge.

## Ejemplos de uso

Algunos ejemplos de montaje de dispositivos son:
Para montar imágenes de disquetes, CD, etc. se utiliza la opción loop.