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.