Montaje de particiones en Linux
Table of Contents
TogglePuntos de montaje
Para realizar un correcto montaje de particiones en Linux, primero debemos saber lo que es un punto de montaje. El mismo, representa un directorio mediante el cual accedemos a un sistema de archivos. Cuando hablamos de montar un dispositivo en realidad lo que hacemos es establecer un puente entre el sistema de archivos principal y el del dispositivo al cual queremos acceder.
Esto nos puede resultar algo difícil de entender en primera instancia, pero el mismo principio se aplica para acceder a un CDROM. De acuerdo a la FHS el punto de montaje para dispositivos removibles es /media. Sin embargo, podría ser utilizado cualquier directorio, siempre que este tenga sentido.
Comando mount
Esta herramienta es fundamental, y un de las más usadas, con respecto al montaje de particiones en Linux.
Sintaxis:
# mount (opciones) [dispositivo|directorio]
El comando mount admite dos tipos de opciones, unos para el propio comando, y otros para especificar opciones del sistema de ficheros:
Opciones:
-a Monta todos los filesystems especificados en el /etc/fstab, menos los que tengan la opción «noauto».
-h Ayuda del comando mount
-o Especifica las opciones del mount en la línea de comandos.
-r Monta filesystems en modo de solo lectura.
-t fstype Especifica un tipo de filesystem.
-v Salida interactiva.
-w Monta el sistema de archivos de lectura/escritura.
# mount
Para montar un partición en un directorio
# mount -t ext4 /dev/sdb5 /mnt
# mount | grep mnt
/dev/sdb5 on /mnt type ext4 (rw,relatime)
Otro ejemplo, montar el cdrom:
# ls -l /dev/cdrom
lrwxrwxrwx 1 root root 3 Oct 2 13:15 /dev/cdrom -> sr0
# mount -t iso9660 /dev/cdrom /media
mount: dispositivo de bloques /dev/sr0 está protegido contra escritura; se monta como sólo lectura
# mount |grep -i media
/dev/sr0 on /media type iso9660 (ro,relatime)
Comando umount
Los sistemas de ficheros pueden ser desmontados usando el comando umount . Cuando un sistema de ficheros se desmonta, los contenidos del árbol principal se actualizan, no pudiéndose usar el umount si el sistema de ficheros que se quiere desmontar está en uso. Si el sistema de ficheros se encuentra en uso, el comando umount dará un error. Esto puede ocurrir, por ejemplo, cuando tenemos abierto un fichero de un DVD o un proceso está haciendo uso del mismo. Incluso, estar dentro del directorio del sistema a desmontar.
Otros errores pueden surgir si quitamos dispositivos removibles sin antes desmontarlos.
Sintaxis:
# umount (opciones) [dispositivo|directorio]
Opciones:
-a Desmonta todos los filesystems descritos en /etc/mtab. Este fichero está mantenido por los
comando mount y umount en tiempo real, se usa normalmente cuando se apaga/reinicia el PC.
-t fstype Desmonta sólo los filesystems del tipo especificado
Para Desmontar:
# umount /mnt
Identificación de archivos con Etiquetas y UUID
En ocasiones es más sencillo y descriptivo referirse a una partición por su etiqueta (LABEL). Tanto ext4, xfs y btrfs tienen herramientas para cambiar y/o asignar una etiqueta. También, puede resultar favorable usar el UUID (identificador único universal), cuando utilicemos discos que estaban tanto en una máquina como en otra, ya que podemos abstraernos del archivo del nodo al dispositivo.
Para ver las etiquetas podemos usar el comando lsblk, y en el caso de querer especificarle algún output:
# lsblk -o NAME,LABEL,UUID
Otra herramienta que podemos usar es blkid
# blkid
De esta forma podemos montar una partición, o volumen lógico, usando etiqueta o UUID:
# mount -v -L SYSTEM
mount: /dev/sda3 mount on /boot/efi.
El archivo /etc/fstab
Las siguientes opciones modifican el modo de montaje del comando mount:
Opciones | Descripción |
async | Toda la E/S al sistema de ficheros debería hacerse asíncronamente. |
auto | Puede montarse con la opción –a. |
defaults | Establece las opciones: rw, suid, dev, exec, auto, nouser y async. Es la opcion por defecto en sistemas ext2. |
dev | Interpretar dispositivos especiales de caracteres o bloques en el sistema de ficheros. |
exec | Permitir la ejecución de binarios noauto Sólo puede montarse explícitamente (esto es, la opción -a no hará que el sistema de ficheros se monte). |
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 permitir el efecto de los bits SUID ni SGID nouser Prohibir a un usuario ordinario (esto es, distinto de root) montar el sistema de ficheros. Esto es lo predeterminado. |
ro | Montar el sistema de ficheros en modo de sólo lectura. |
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, pero un usuario no puede desmontar filesystems montados por otros usuarios. |
users | Permite a cualquier usuario el montaje/desmontaje del sistema de ficheros. |
owner | Igual que user, pero además, debe ser dueño o pertenecer al grupo dueño del archivo del dispositivo. |
noatime | No se modificará la fecha de los archivos al acceder a los mismos. |
nodireatime | Igual que noatime, pero aplicado solamente para directorios. |
relatime | Solamente se modificará la fecha de modificación de los archivos si cambia la fecha de modificación también. |
Montaje y desmontaje con btrfs
El sistema de archivos Btrfs soporta muchos árboles del fyle system, con cada árbol correspondiendo a un subvolumen.
Para crear un subvolumen, supongamos que contamos con un sistema de archivos btrfs:
# mount | grep btrfs
/dev/sdb1 on /pruebas type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/)
# btrfs subvolume create /pruebas/testing
Create subvolume ‘/pruebas/testing’
# btrfs subvolume create /pruebas/estable
Create subvolume ‘/pruebas/estable’
# btrfs subvolume create /pruebas/secret
Create subvolume ‘/pruebas/secret’
# btrfs subvolume list -p /pruebas/
ID 256 gen 7 parent 5 top level 5 path testing
ID 257 gen 8 parent 5 top level 5 path estable
(…)
#touch testing/pruebas/{testing,estable}/prog.cc ; touch /pruebas/confidencial/secret.txt
#tree /pruebas/