Montar automáticamente unidades de disco

Habitualmente uso Linux en una pantalla de X-Windows, ya sea con WindowMaker, Gnome o KDE. Pero es muy, muy raro que no tenga abierta una ventana de comandos. Estoy acostumbrado, desde siempre, a usar comandos para todo, así que no me cuestan nada teclear un "mount /mnt/dvd".

Y es que el montaje de unidades de disco con mount es una de las características más típicas y potentes de UNIX y Linux. Ciertamente, es un sistema muy flexible que proporciona multitud de opciones, pudiendo... bla, bla, bla...

Este truco está obsoleto. Casi todas las distribuciones linux montan ya automáticamente
todas las unidades de disco. Parece que el sentido común acabó imponiéndose. ;-)

Chorradas. Seamos sinceros: todo el mundo usa mount para lo mismo, y al final plantas todas tus opciones en /etc/fstab y las ejecutas siempre igual con un comando estereotipado, como hago yo. Hasta que alguien acostumbrado a Windows, en su inocencia, te dice "Pues eso de montar los discos es un peñazo, en Windows no hay que hacer nada de eso".

Y entonces frunces el ceño y a poco que lo pienses, reconoces que sí, que tienen toda la razón. Windows no te pide que montes los CD antes de usarlos. Lo hace él de forma transparente. Y es una buena costumbre... sinceramente, tener que montarlo todo es un peñazo. Así que vamos a hacer que nuestro Linux se comporte igual.

En primer lugar necesitas instalar un demonio que haga exactamente eso: vigilar la disquetera o el CD, de tal forma que cuando metes un disco, él va y lo monta. Y que cuando no estás haciendo nada con él, va y lo desmonta. En Debian es tan complicado como esto: Anda, vete a una ventana de comandos y teclea "apt-get install autofs".

Ahora tienes que configurarlo. En este ejemplo configuraré el automontaje para mi DVD, mi Iomega ZIP y la disquetera.

Edita /etc/auto.master y déjalo tal que así

# $Id: auto.master,v 1.2 1997/10/06 21:52:03 hpa Exp $
# Sample auto.master file
# Format of this file:
# mountpoint map options
# For details of the format look at autofs(5).
/mnt/auto /etc/auto.discos --timeout=2

La entrada "/mnt/auto" es el directorio donde se van a montar las unidades. "/etc/auto.discos" desvía la configuración de este directorio de montaje hacia otro fichero (puedes especificar varios, si quieres, uno para cada unidad, pero en la práctica es más cómodo hacerlo con uno solo para todo). La opción "timeout" es el tiempo de inactividad, en segundos, a partir del cual el demonio desmontará automáticamente la unidad. En mi caso, son dos segundos.

Ahora edita el fichero /etc/auto.discos:

# $Id: auto.misc,v 1.2 1997/10/06 21:52:04 hpa Exp $
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage
dvd	-fstype=iso9660,ro,sync,nodev,nosuid	:/dev/hdd
floppy	-fstype=auto,sync,nodev,nosuid		:/dev/fd0
zip	-fstype=auto,sync,nodev,nosuid		:/dev/hdb

En este fichero, "dvd" será un subdirectorio de "/mnt/auto", donde el demonio montará el disco dvd, con las opciones especificads y usando el dispositivo que figura en la misma linea. El fichero es bastante claro, como ves.

Ahora tienes que crear el directorio de montaje y borrar los antiguos, que ya han dejado de ser válidos. Los vas a sustituir por simples enlaces simbólicos.

[15:16:04/0][root@claudia:~]# mkdir /mnt/auto
[15:16:10/0][root@claudia:~]# cd /
[15:16:13/0][root@claudia:/]# ls -Fohld dvd floppy /mnt/zip
drwxr-xr-x	1 root	13 ene 25 15:06 dvd
drwxr-xr-x	1 root	16 ene 25 15:06 floppy
drwxr-xr-x	1 root	13 ene 25 15:05 /mnt/zip
[15:16:24/0][root@claudia:/]# rmdir dvd floppy /mnt/zip
[15:16:29/0][root@claudia:/]# ln -s /mnt/auto/dvd /dvd
[15:16:35/0][root@claudia:/]# ln -s /mnt/auto/floppy /floppy
[15:16:43/0][root@claudia:/]# ln -s /mnt/auto/zip /mnt/zip
[15:16:54/0][root@claudia:/]# ls -Fohld dvd floppy /mnt/zip
lrwxrwxrwx	1 root	13 ene 25 15:06 dvd -> /mnt/auto/dvd
lrwxrwxrwx	1 root	16 ene 25 15:06 floppy -> /mnt/auto/floppy
lrwxrwxrwx	1 root	13 ene 25 15:05 /mnt/zip -> /mnt/auto/zip

Observa que hemos creado el directorio "/mnt/auto", pero no los subdirectorios "/mnt/auto/dvd", etc. Está bien, es correcto, y esto hace que los enlaces simbólicos estén rotos. Pero, insisto, así es como debe ser.

Existe un poderoso motivo por el cual estos enlaces simbólicos deben estar rotos. Ese motivo es un requerimiento de UNIX: "los directorios de montaje deben estar siempre vacios". Imagínate que los enlaces simbólicos están bien. ¿Qué ocurre si intentas copiar un fichero a tu disquetera ZIP, sin meter un disco ZIP?. ¡Que lo hace!. Solo que no va a ningún disco ZIP, claro, sino al directorio de montaje, con lo que la próxima vez que metas un disco ya no estará vacío. De ahí que el enlace simbólico esté roto: no se puede grabar nada, ni siquiera accidentalmente, porque el enlace apunta a... nada. No temas, el demonio de montaje se encargará de crear el subdirectorio adecuado en cuanto detecte un disco en la unidad. Y entonces, solo entonces, el enlace simbólico dejará de estar roto.

Ahora ya solo tienes que ponerlo en marcha:

[15:22:12/0][root@claudia:/]# /etc/init.d/autofs stop
[15:22:16/0][root@claudia:/]# /etc/init.d/autofs start

Y ya está. Las unidades DVD, ZIP, y la disquetera de tu ordenador se comportarán de forma "transparente" y "automágica", como en Windows. De hecho, mejor que en Windows. Por ejemplo, si pulsas el botón de expulsión del DVD mientras tienes abierto su contenido en el Konqueror, descubrirás que el ordenador se niega a obedecerte. Sin embargo, bastará con que cierres el Konqueror para que el ordenador desmonte la unidad, "recuerde" la orden de expulsión y saque el DVD, todo en uno. :-)

Eso sí, si usas KDE, descubrirás un pequeño problema con los iconos del escritorio. La solución es sencilla, pero hay que encontrarla. ;-)

Pues eso, encuéntrala. :-D

Obviamente, la mayoría de las distribuciones modernas, como Ubuntu o Fedora, incluyen algun modo de montaje automático por defecto. Este truco solo necesitas aplicarlo si usas alguna distribución anticuada o para frikis (como mi querida Gentoo, por ejemplo ;-).

Be Sociable, Share!

Puedes seguir cualquier respuesta a esta entrada mediante el canal RSS 2.0. Puedes dejar un comentario o enviar un trackback desde tu propio sitio.

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.