Para tener acceso a los diferentes sistemas de ficheros es necesario:
Soporte en el núcleo para el tipo de dispositivo físico.
Soporte en el núcleo para el sistema de ficheros que hay en el dispositivo.
Montar el sistema de ficheros.
El comando mount se utiliza para montar los sistemas de ficheros. Es decir para hacerlos accesibles desde el sistema.
En principio sólo es superusuario o root puede montar sistemas de ficheros en el sistema.
Para montar un sistema de ficheros:
[root@sal]#
mount -t ext3 /dev/sda5 /media/removible
-t ext3 es el tipo de sistema de ficheros que reside en el dispositivo.
/dev/sda5 dispositivo que se quiere montar.
/media/removible punto de montaje en el que se montará.
Es posible especificar opciones de montaje mediante el uso de -o tales como sólo lectura, ...
Algunos tipos de sistemas de ficheros:
ext2
ext3
iso9660
reiserfs
xfs
jfs
nfs
cifs
vfat
msdos
Existen algunas opciones interesantes a la hora de montar un sistema de ficheros. Algunas de ellas son comunes a todos ellos, mientras que otras dependen del sistema de ficheros:
-o loop permite el montar imágenes ISO a través del dispositivo de loopback:
[root@sal]#
mount -t iso9660 debian-sarge-dvd1.iso /media/iso -o loop
-o rw monta un sistema de ficheros en modo lectura/escritura.
-o ro monta un sistema de ficheros en modo sólo lectura.
-o suid permite la ejecución de SUIDs en el sistema de ficheros.
-o nosuid no permite la ejecución de SUIDs en el sistema de ficheros.
-o exec permite la ejecución de comandos en el sistema de ficheros.
-o noexec no permite la ejecución de comando en el sistema de ficheros.
-o remount permite montar un sistema de ficheros ya montado con otras opciones diferentes.
-o owner permite a un usuario sin privilegios montar un sistema de ficheros si es el propietario del dispositivo físico.
-o nouser no permite a los usuarios sin privilegios el montar sistemas de ficheros.
-o user permite a cualquier usuario montar y desmontar el sistema de ficheros.
El comando umount se utiliza para desmontar sistemas de ficheros:
[root@sal]#
umount /media/iso
Desmontaría el sistema de ficheros montado en /media/iso
.
Sólo el superusuario o root puede desmontar sistemas de ficheros.
Es posible permitir a usuarios sin privilegios montar sistemas de ficheros. En este caso el usuario que montó el sistema de ficheros podrá desmontarlo también.
Para poder desmontar un sistema de archivos es necesario que ningún recurso del sistema este usando dicho dispositivo:
[root@sal]#
pwd
/media/iso
[root@sal]#
umount /media/iso
umount: /media/iso: dispositivo ocupado
[root@sal]#
Bajo ningún concepto se debe desconectar ningún dispositivo de almacenamiento del sistema sin desmontarlo previamente.
Cuando se hace una operación de escritura sobre un dispositivo, rara vez se hace directamente al dispositivo. Normalmente se escribe en una zona intermedia denominada buffer cache y son los algoritmos de multitarea los que deciden cuando se va a ir escribiendo esa información al dispositivo.
Cuando se hace un umount de un dispositivo se priorizan las escrituras pendientes sobre ese dispositivo (se hace un sync sobre el dispositivo). Por este motivo si se desconecta un dispositivo del sistema sin haberlo desmontado previamente se perderan datos y se dice entonces que hay una inconsistencia en el sistema de archivos.
Con sistemas de archivos transaccionales o de journaling como ext3 o Reiser es posible, en principio, recuperar esa información.
Este fichero tiene dos propositos:
Especificar que sistemas de ficheros se montan en el arranque.
Indicar las opciones de montaje de los sistemas de ficheros.
Es posible montar un sistema de archivos especificando unicamente el punto de montaje si está en el fichero /etc/fstab
. Se montará con las opciones especificadas en dicho fichero.
Un /etc/fstab
típico:
LABEL=/ / ext3 defaults 1 1 none /proc proc defaults 0 0 /dev/hda5 swap swap defaults 0 0 /dev/hdc /media/cdrom iso9660 noauto,user,ro 0 0 /dev/fd0 /media/floppy auto noauto,user 0 0 /dev/hda6 /media/vfat vfat noauto,user 0 0 /dev/sda1 /media/scsi reiserfs auto 0 0
Este fichero consta de seis columnas:
La primera columna es el dispositivo físico o la etiqueta del sistema de ficheros.
La segunda columna es el punto de montaje.
La tercera columna es el sistema de ficheros que hay en el dispositivo.
La cuarta columna son las opciones de montaje.
La quinta columna es información para dump. Si es un cero no es necesario hacer un dump del sistema de ficheros.
En caso de no encontrar nada se asume que es un cero.
La sexta columna indica a fsck el orden en el que chequeará los sistemas de ficheros al arrancar.
Si hay un cero no chequeará el sistema de ficheros.
Si se utiliza user como una de las opciones entonces se permite montar el sistema a cualquier usuario con las opciones indicadas en /etc/fstab
pasandole a mount el punto de montaje especificado en /etc/fstab
unicamente.
Este fichero nos muestra las particiones que tenemos en el sistema:
[root@sal]#
cat /proc/partitions
major minor #blocks name 3 0 195360984 hda 3 1 192418506 hda1 3 2 1 hda2 3 5 2939863 hda5
[root@sal]#
Este fichero nos muestra los filesystems con los que puede trabajar el núcleo en ese momento.
[root@sal]#
cat /proc/filesystems
nodev sysfs nodev rootfs nodev bdev nodev proc nodev securityfs nodev sockfs nodev pipefs nodev futexfs nodev tmpfs nodev inotifyfs nodev eventpollfs nodev devpts cramfs nodev ramfs nodev mqueue nodev usbfs ext3
[root@sal]#
Este fichero nos muestra los filesystems que tenemos montados en el sistema y las opciones con las que fueron montados.
[root@sal]#
cat /etc/mtab
/dev/hda1 / ext3 rw,errors=remount-ro 0 0 proc /proc proc rw,noexec,nosuid,nodev 0 0 /sys /sys sysfs rw,noexec,nosuid,nodev 0 0 udev /dev tmpfs rw,mode=0755 0 0 devshm /dev/shm tmpfs rw 0 0 devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0 usbfs /proc/bus/usb usbfs rw,noexec,nosuid,nodev 0 0
[root@sal]#