Ahora con el veranito he podido sacar un poco más de tiempo para cacharrear con GNU/Linux. Uno de mis proyectos en el cajón era instalar alguna distribución liviana de Linux en el disco duro portátil que llevo de aquí para allá y del que ya os he hablado en alguna otra ocasión, y el otro día me animé a hacerlo. Lo primero fue escoger la distribución adecuada, de los cientos que hay por la red disponibles. En mi caso, quería algo ligero, que se cargara totalmente en memoria, y que no me complicara excesivamente la vida, que las vacaciones son para descansar, no para pelearse con algo un poco más pulido que el Linux From Scrach :-) La distribución escogida ha sido Damm Small Linux, una fabulosa distribución que en apenas 50 MBs carga un linux completo (con las X incluidas) y muchas utilidades basicas para el trabajo como:
¿Qué contiene DSL?
XMMS (MP3, CDs de música y videos MPEG), Cliente FTP, Navegadores Dillo, links y FireFox, hoja de cálculo, gestor de correo Sylpheed, corrección ortográfica (de momento inglés), procesador de texto, editores de texto Beaver, Vim y Nano [clon de Pico], edición y visualizado de imágenes (Xpaint y xzgv), Xpdf (Visor de PDFs), emelFM (gestor de archivos), Naim (AIM, ICQ, IRC), VNCviewer, Rdesktop, servidor y cliente de SSH/SCP, cliente DHCP, PPP, PPPoE (ADSL), servidor web, calculadora, soporte de impresora genérica o GhostScript, NFS, manejador de ventanas FluxBox, juegos, herramientas de monitorización del sistema, utilidades de línea de comandos, soporte USB, PCMCIA y parcial inalámbrico.
También es extensible, pudiendo agregar muchísimos otros paquetes compilados por los usuarios y agrupados en un repositorio al que se accede de una manera fácil y rápida, una vez configurada la red (en el Wiki del proyecto encontrarás muchísima información disponible para hacer esto y mucho más). Por último, pero no menos importante, reseñar que tanto la configuración como los paquetes extra instalados pueden ser archivados en el propio disco USB, de manera que la próxima vez que ejecutemos DSL el sistema mantendrá la configuración previa, con todas las personalizaciones que hayamos realizado.
Pero una de las cosas que más me ha llamado la atención es el soporte de GRUB para el arranque desde dispositivos USB. Supongo que esto que os voy a comentar llevará ya tiempo, pero ya os digo que hace mucho que no me ponía a trastear con Linux y para mí ha sido una cosa nueva. Resumiento, la raiz del problema venía a ser que si conectabas un dispositivo de almacenamiento USB al conector frontal, por ejemplo, podría ser reconocido como /dev/sdb, por ejemplo, mientras que si lo hacías en algún otro (de este u otro ordenador), el nombre de dispositivo cambiaba. Por eso, las cadenas de arranque del menu.lst del Grub, del tipo:
root (hd0,0) kernel /vmlinuz26 root=/dev/hda3 ro
eran usualmente inválidas (o solamente válidas para el ordenador y en los conectores sobre los que habíamos instalado Grub). La solución ha sido el uso de cadenas UUID (Universally Unique Identifier, o Identificador Universalmente Unico, según la lista de acrónimos de escomposlinux). En teoria (digo en teoria porque he leido por ahí que si clonas un disco, se clona también su UUID), cada partición de cada disco tiene debería tener un UUID única, por lo que si definimos el menu.lst del Grub de esta manera:
root (hd0,0) kernel /vmlinuz26 root=UUID=3ead8fbe-d3c0-45c6-9924-94e06e2654d1 ro
el sistema instalado en esa partición USB arrancará, independientemente de a qué boca USB lo conectemos o cuantos discos duros tenga el ordenador donde lo ejecutemos. Este mismo sistema se puede aplicar, de igual modo, a /etc/fstab y similares. Para conocer el UUID de nuestras particiones tenemos varias opciones:
blkid
ls -l /dev/disk/by-uuid/
vol_id /dev/<em>dispositivo</em>
fdisk -l
Más lecturas sobre el tema: