Crear un punto de montaje fijo para medios extraíbles en Linux

Seguramente conectéis medios extraíbles -como por ejemplo discos duros- a vuestro sistema Linux. El problema es que no siempre se montan en el mismo punto de montaje. Eso es una putada porque podemos tener determinados programas que tengan rutas al disco extraíble y que den error si no se monta en el punto correcto. Sin ir más lejos, yo guardo mis máquinas virtuales en un disco duro externo. Utilizo VirtualBox en Debian, y el administrador de medios maneja rutas a los discos de esas máquinas virtuales. Necesito por tanto que mi disco duro externo se monte en un punto en concreto para que VirtualBox pueda acceder a los discos duros virtuales alojados en mi disco duro externo cuando lo conecto.

Localización del medio extraíble

Lo primero que tenemos que localizar son los discos extraíbles (/dev/sdb1, etc…) que queremos que tengan un punto de montaje fijo. Con los discos conectados al ordenador, hacemos un df -h:

root@jotadebian:/media# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       275G  7.0G  254G   3% /
udev             10M     0   10M   0% /dev
tmpfs           1.2G  912K  1.2G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           8.0G  592K  8.0G   1% /run/shm
/dev/sda2       454M   30M  397M   7% /boot
/dev/sda1       476M  136K  475M   1% /boot/efi
/dev/sda5       1.5T  1.1G  1.5T   1% /home
none            4.0K     0  4.0K   0% /sys/fs/cgroup
/dev/sdb1       932G  131G  801G  15% /media/usb0
/dev/sdc1       466G  218G  249G  47% /media/jota/My Passport

En mi caso, los discos en los que estoy interesado son /dev/sdb1 y /dev/sdc1. Vemos que los tengo montados en /media/usb0 y /media/jota/My Passport respectivamente.

Localizando el UUID (Universally Unique IDentifier) del dispositivo

Ahora lo que necesito el valor del UUID (Universally Unique IDentifier) de cada disco. El valor del UUID es único para un disco duro. Considéralo como una MAC para una tarjeta de red. Podemos averiguarlo echándole un vistazo al contenido de /dev/disk/by-uuid/:

root@jotadebian:/media# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 13 18:13 61cbf2a5-8e51-481b-be4c-50f976ac7a85 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 13 18:39 8F0AA9F2C032075C -> ../../sdb1
lrwxrwxrwx 1 root root 10 May 13 18:13 4e7ae363-a180-4c5d-8296-8c8691cc4950 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 13 18:13 4FDD-EFE8 -> ../../sda1
lrwxrwxrwx 1 root root 10 May 13 18:39 10D485B4D81B4ED4 -> ../../sdc1
lrwxrwxrwx 1 root root 10 May 13 18:13 ccf18dc54-b493-459b-ba58-effb8ee1c523 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 13 18:13 d75f613b-5cb8-44bc-b953-07ef3e9834ab -> ../../sda4

Peeeero también podemos echar mano de la utilidad blkid que resulta mucho más directa para lo que estamos buscando:

root@jotadebian:/media/usb0# blkid /dev/sdb1
/dev/sdb1: LABEL="HDSamsung_1TB" UUID="8F0AA9F2C032075C" TYPE="ntfs"
 
root@jotadebian:/media/usb0# blkid /dev/sdc1
/dev/sdc1: LABEL="My Passport" UUID="10D485B4D81B4ED4" TYPE="ntfs" 

Definir los discos en /etc/fstab

Una vez sepamos su UUID, tendremos que modificar el fichero /etc/fstab. Antes de modificarlo, haced una copia de seguridad por si las moscas. También, desconectad todos los dispositivos extraíbles implicados (en mi caso desconectaré los dos discos duros externos). Por supuesto comentamos cualquier referencia previa que tuviéramos a las unidades en cuestión e introducimos en /etc/fstab lo siguiente:

...
UUID= 8F0AA9F2C032075C       /media/usb0     auto    rw,user,noauto  0       0
UUID= 10D485B4D81B4ED4	    /media/jota/My\040Passport	auto	rw,user,noauto	0	0
...

Como apunte: "\040" significa “espacio”. Si vuestro punto de montaje tiene espacios tendrás que introducir ese código por cada espacio. En cuanto a las 3 opciones que aparecen separadas por comas:

  • rw: el sistema de ficheros se monta en modo lectura (read) y escritura (write).
  • user: cualquier usuario puede montar ese sistema de ficheros.
  • noauto: el sistema de ficheros no se monta durante el inicio del sistema. Tendremos que hacerlo explícito (bastará con conectar el disco al ordenador y entrar dentro del disco, por ejemplo con Nautilus).

El “auto” anterior a estas tres opciones hace referencia al tipo de sistema de ficheros. De esta manera lo detectará automáticamente, aunque podría haberle especificado ntfs que es como tengo formateados los discos externos.

Después de todo esto, conecta tu disco duro externo y se montará en el punto de montaje que hayas especificado anteriormente.

Comprueba también que se haya montado donde debía:

rota@jotadebian:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       275G  7.0G  254G   3% /
udev             10M     0   10M   0% /dev
tmpfs           1.2G  884K  1.2G   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           8.0G  904K  8.0G   1% /run/shm
/dev/sda2       454M   30M  397M   7% /boot
/dev/sda1       476M  136K  475M   1% /boot/efi
/dev/sda5       1.5T  1.1G  1.5T   1% /home
none            4.0K     0  4.0K   0% /sys/fs/cgroup
/dev/sdb1       466G  218G  249G  47% /media/jota/My Passport

Como curiosidad: ¿véis que el disco aparece como /dev/sdb1? Eso es porque este es el primer disco que conecto. El otro no lo he conectado todavía. De no haber especificado el UUID en fstab, me habría montado este primer disco en /media/usb0 como podéis ver en la situación inicial del artículo.