Todos los ficheros y directorios disponibles en un sistema Unix están organizados en un único árbol cuya raíz es el directorio /. Los ficheros pueden estar distribuidos entre distintos dispositivos.
Mediante la orden mount podemos añadir un sistema de ficheros contenido en algún dispositivo, por ejemplo una partición de disco duro, disquete, etc., al árbol de directorios. Habitualmente nos referiremos a esta operación como "montar una partición disquete o cdrom".
El montaje se realiza en un directorio existente en el sistema de ficheros, en el cual apareceran los contenidos del sistema de ficheros que hay en el dispositivo. Este directorio se conoce como punto de montaje. Si el directorio punto de montaje tuviera algún contenido previo, este se oculta y sólo aparece lo que haya en el dispositivo montado.
Para desmontar un sistema de ficheros contenido en un dispositivo se utiliza la orden umount. Para desmontar el dispositivo es necesario que no esté en uso por ninguna aplicación.
Es importante tener en cuenta los buffers de disco. Cuando se escriben datos en el disco no se actualizan instantáneamente, sino que el sistema los guarda en un buffer que vuelca a disco transcurrido un cierto tiempo. La orden de desmontar un sistema de ficheros fuerza la actualización del disco. Por este motivo si extraemos un disquete de la unidad antes de desmontarlo es muy probable que obtengamos datos incoherentes.
Un caso particular es el sistema de ficheros virtual /proc. Este sistema de ficheros no está asociado a ningún dispositivo y en él aparecerá diversa información sobre el sistema. Tiene que existir el punto de montaje, el sistema se encarga del resto.
Los dispositivos de bloque disponen de un buffer sobre el que se realizan las operaciones de escritura. Este sistema agiliza bastante los accesos a disco, no hay más que comprobar la rapidez en la escritura en disquete y permite al sistema seguir trabajando normalmente cuando realiza una operación de ese tipo.
El sistema gestiona las actualizaciones de disco de una forma eficiente y además en cualquier momento la podemos forzar con lorden sync.
Ver la página de manual para más detalles.
La orden mount permite incorporar un sistema de ficheros existente en una partición al árbol de directorios Unix.
En general el uso de la orden mount tiene la siguiente forma:
mount -t tiposistemaficheros /dev/dispositivo /punto montaje
donde
puede ser ext2, vfat, msdos, ntfs, iso9660 o cualquier otro sistema de ficheros reconocido por el núcleo Linux.
indica el dispositivo que contiene el sistema de ficheros. Puede ser un disquete, partición de disco duro o cdrom.
será el directorio donde queremos que aparezcan los ficheros conenidos en el dispositivo montado.
El tipo de sistema de ficheros también puede ser smb o nfs, pero en este caso tendremos que sustituir el dispositivo por los datos de red necesarios para realizar el montaje. Ambos tipos de sistemas de ficheros son en red, almacenados físicamente en una máquina remota con conexión por red.
La orden umount desmonta un sistema de ficheros del árbol de directorios principal. Ninguno de los ficheros o directorios de su sistema de ficheros puede estar en uso para poderlo desmontar. Además esta orden fuerza el volcado de los buffer de disco y la actualización del superbloque del sistema de ficheros.
Si por alguna circuntancia, pérdida de alimentación eléctrica por ejemplo, la partición deja de usarse sin desmontar, la próxima vez que se monte el sistema lo detecta y le solicitará que la verifique con fsck.
Anteriormente hemos hablado de las particiones que el sistema monta automáicamente cuando arranca; este montaje automático de las particiones lo podemos encontrar en el fichero /etc/fstab. Pero en este fichero no sólo podemos indicar qué particiones se montan automáticamente en el proceso de arranque, sino que además podemos proporcionar configuraciones adicionales sobre el sistema de ficheros; por ejemplo se pueden habilitar las cuotas de usuario, se pueden establecer cómo sólo lectura y otas muchas más características.
Empezaremos viendo un ejemplo de fichero y más adelate describiremos los detalles principales.
Este sería el contenido de un fichero /etc/fstab
/dev/hda2 / ext2 defaults 1 1 none
/proc proc defaults 0 0
/dev/sda4 /mnt ext2 defaults,noauto 0 0
/dev/hda3 none swap defaults 0 0
Como podemos observar, el fichero consta de varios campos.
Es el dispositivo que contiene el sistema de fichros. En caso del directorio virtual /proc no existe dispositivo.
de montaje: Es el directorio donde aparecerán los ficheros y directorio existente en el dispositivo montado.
de ficheros: Es el tipo de sistema de ficheros que el sistema espera encontrar en el correspondiene dispositivo. Sistemas de ficheros válidos son ext2, iso9660 y vfat. También puede ser swap para una partición de intercambio. En general podremos poner cualquier sistema de ficheros admitido por el núcleo.
de montaje: En general indicamos como queremos que actúe ese sistama de ficheros. Podemos poner en este campo una lista de opciones separadas por comas. Opciones posibles son:
async Toda la E/S al sistema de ficheros debería hacerse asíncronamente.
auto: Puede montarse con la opción -a de la orden mount.
defaults: Emplear las opciones predeterminadas: rw, suid, dev, exec, auto, nouser y async.
dev: Interpretar dispositivos especiales de caracteres o bloques en el sistema de ficheros.
exec: Permitir la ejecución de binarios.
noatime: No actualizar los tiempos de acceso a i-nodo en este sistema de ficheros (p.ej., para un acceso más rápido).
noauto: No monta automáticamente, pero mantiene la información sobre las características del sistema de ficheros. Con esta opción basta poner el dispositivo o el punto de montaje en la orden mount para montar el sistema de ficheros con todas las opciones indicadas. Esta entrada es habitual con los cdrom.
nodev: No interpreta o reconocer dispositivos o ficheros especiales de bloques o caracteres en este sistema de ficheros. Esta opción nos asegura que nadie podrá crear dispositivos que pudieran poner en riesgo el sistema.
noexec: No permitir la ejecución de ningún binario en el sistema de ficheros montado. Esta opción puede ser útil para un servidor que tiene sistemas de ficheros que contienen binarios para otras arquitecturas distintas de la suya.
nosuid: No permite el efecto de los bits SUID ni SGID.
nouser: No permite a un usuario ordinario (esto es, distinto de root) montar el sistema de ficheros. Esto es lo predeterminado.
ro: Monta el sistema de ficheros de lectura exclusiva.
rw: Montar el sistema de ficheros de lectura y escritura.
suid: Permitir el efecto de los bits SUID y SGID.
sync: Toda la E/S al sistema de ficheros debería hacerse síncronamente.
user: Permitir a un usuario ordinario montar el sistema de ficheros. Esta opción implica las opciones noexec, nosuid y nodev (a menos que se sustituyan por otras subsiguientes, como en la línea de opciones user,exec,dev,suid).
En el ejemplo podemos ver como la partición /dev/sda4 tiene la opción noauto. Este dispositivo se corresponde a una unidad Zip y podemos montarlo poniendo simplmente mount /mnt o mount /dev/sda4.
volcado: El siguiente campo indica si se tiene que establecer el volcado del sistema de ficheros.
verificación: Este campo establece el orden de verificación del sistema de ficheros con fsck en el montaje. La partición raíz devería tener el valor 1 y el resto que se quieran verificar el valor 2.
En este fichero el sistema anota cada uno de los sistemas de fichros montados y su punto de montaje. Una forma de leer este fichero es usar la orden mount sin argumentos y obtendremos la lista de sistemas de ficheros montados.