Nombrar dispositivos USB en Debian

1
20292

Como acceder por nombre a los dispositivos USB en GNU / Linux (Debian)

Índice de contenidos

1. Introducción

2. Entorno

3. Instalación

4. Configuración de Ficheros

4.1. Configuración de udev

4.2. Configuración de las reglas

5. Conclusiones

6. Sobre el autor

1. Introducción

A menudo cuando conectamos hardware externo (como un pendrive, un iPod, un disco duro, una iPaq ) a través de los puertos USB nos encontramos con el problema de que no sabemos que nombre le ha dado el kernel al dispositivo (sda1, sdb1, sdc1, …). Especialmente si conectamos más de un dispositivo a la vez.

Este problema resulta bastante incómodo a la hora de montar el dispositivo para acceder a él, sobre todo si queremos escribir reglas en el fichero /etc/fstab.

En este tutorial vamos a ver como podemos asignar nombres a los dispositivos, independientemente del nombre que le de el kernel, de forma que siempre podamos montar el dispositivo por el mismo nombre, y podamos escribir reglas en el fichero /etc/fstab basadas en estos nombres.

2. Entorno

  • Hardware: Portátil Ahtex Signal X-9500M (Centrino 1.6 GHz, 1024 MB RAM, 60 GB HD).
  • Sistema Operativo: GNU / Linux, Debian Sid (unstable), Kernel 2.6.9, KDE 3.3

3. Instalación

Debemos instalar el paquete udev. Para ello basta con:

# apt-get install udev

Este paquete es el que va a permitir, según una serie de reglas que podemos definir nosotros mismos, asignar nombres dependiendo del dispositivo.

Una vez instalado es recomendable reiniciar la máquina (aunque no obligatorio, como nos dice la propia instalación del paquete).

4. Configuración de Ficheros

4.1. Configuración de udev

Una vez instalado podemos ver que tenemos un directorio nuevo:

/etc/udev

En este directorio nos fijaremos especialmente en el fichero udev.conf. En este fichero podemos encontrar la línea:

udev_root="/dev/"

Esto indica donde udev va a creara dinámicamente los nodos de los dispositivos. Para separarla de la estructura habitual de /dev yo he preferido cambiarla por:

udev_root="/dev/udev/"

De forma que todos los nodos que cree udev estén es el directorio /dev/udev.

4.2. Configuración de las reglas

También cabe destacar el directorio /etc/udev/rules.d/.
En este directorio es donde podemos situar todos los ficheros de reglas que queremos que se procesen por udev.

udev procesa todos los ficheros terminados en “.rules” por orden alfabético. Es aconsejable que se procesen nuestras reglas particulares antes que las reglas que trae por defecto udev, así que es recomendable que tengamos en este directorio los ficheros con los siguientes nombre:

10-udev.misReglas.rules
50-cd-aliases.rules
50-udev.rules

Observad que hemos creado un fichero 10-udev.misReglas.rules, este se procesará el primero y será donde escribamos nuestras propias reglas. Así no interferimos en los ficheros de configuración propios de udev.

En mi caso el fichero 10-udev.misReglas.rules es muy sencillo, simplemente contiene:

BUS="scsi",
SYSFS{vendor}="Apple*", SYSFS{model}="iPod*",
NAME="ipod%n"
BUS="scsi", KERNEL="sd?[1-5]",
NAME="pen%n"

Con la primera línea estoy indicando que cuando se conecte un dispositivo scsi de fabricante Apple… y modelo iPod… lo llame ipod%n, es decir, lo llamará ipdo1 (esto es bueno si conectamos más de un ipod, siendo los nombre ipod1, ipod2, …)

Con la segunda línea estoy indicando que cualquier dispositivo scsi que el kernel le de un nombre sd?[1-5], es decir nombre del estilo: sda1, sda2, sdb1, sdd3, … udev le va a asignar un nombre pen1, pen2, … Con esto consigo poder pinchar cualquier pendrive o dispositivo de almacenamiento a través del USB y montarlo como pen1, pen2, …

Ahora sólo me falta añadir un par de líneas en el /etc/fstab para simplificar aun más las cosas:

/dev/udev/pen1 /mnt/pen vfat
defaults,user,noauto 0 0
/dev/udev/ipod2 /mnt/ipod vfat
defaults,user,noauto 0 0

Ahora si conecto mi pendrive o mi ipod (o los dos a la vez) puedo montarlos tranquilamente con

mount /mnt/pen
mount /mnt/ipod

O haciendo accesos directos en mi escritorio con el KDE, o como me resulte más cómodo. Pero ya no me tendré que preocupar sobre que nombre le dio el kernel al dispositivo (/dev/sda1, /dev/sdd2, …).

Por supuesto que hay muchas maneras de confiugrar las reglas. Si queréis más información os remito a:

http://www.reactivated.net/udevrules.php

http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html

5. Conclusiones

Este tutorial no es más que una pequeña introducción al uso de udev, pero creo que algo tan sencillo como lo que se muestra aquí puede simplificarnos en gran medida el día a día con nuestros dispositivos USB. Así que espero que os sea de utilidad.

Saludos a todos, y hasta el próximo tutorial.

6. Sobre el autor

Alejandro Pérez García

Dir. Implantación y Rendimiento

mailto:alejandropg@autentia.com

Autentia Real Business Solutions S.L.

http://www.autentia.com

 

Alejandro es socio fundador de Autentia y nuestro experto en Java EE, Linux y optimización de aplicaciones empresariales. Ingeniero en Informática y Certified ScrumMaster. Seguir @alejandropgarci Si te gusta lo que ves, puedes contratarle para darte ayuda con soporte experto, impartir cursos presenciales en tu empresa o para que realicemos tus proyectos como factoría (Madrid). Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación.

1 COMENTARIO

  1. Alejandro, gracias por su trabajo. Permitame preguntarle esta duda:

    Quiero hacer que Debian no levante el modulo de usb_storage al inicio del sistema y que una vez iniciada la sesión de root este pueda cargarlo manualmente. Tal como veo ahora, si yo descargo el moódulo, cuan pronto conecto una usb flash, el módulo se carga automáticamente. Como hacerlo para obligarlo a cargarse de modo manual?
    Saludos y gracias, Israel

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad