lunes, noviembre 20, 2006

Montando GNU/Linux en una memoria USB

Ayer, mientras chateaba en un salón de IRC de Freenode, un usuario nos mostraba una página que habla sobre una modificación del Nmap para funcionar en un pendrive (nada "wow"). Ya que no tenía absolutamente nada que hacer más que tomar mate y chatear, se me ocurrió hacer algo bastante interesante: montar un sistema operativo completo y customizado en una memoria USB.

Antes de comenzar, necesitaba obtener el material básico para realizar el experimento: una PC, conexión a internet, un termo con agua caliente, yerba, mate y (lo más importante) una memoria USB en desuso. Hurgando en una mochila encontré mi vieja Lexar Media 256 MB Jumpdrive, la cual se adaptaría perfectamente a mi propósito. Lo ideal sería utilizar una Victorinox Swiss Memory USB (imagen), un gadget muy apreciado entre los geeks, ya que posee una memoria USB (256 mb a 2 gb), pinza para cables, navaja y otras cosas indispensables para el James Bond de la tecnología (costo aproximado: u$70).

Ahora sí, suponiendo que la memoria USB funcione correctamente, estamos listos. Lo primero que tenemos que tener en cuenta a la hora de crear nuestra "USB todo terreno" es el sistema operativo. En los términos de un sommelier, el SO tiene que ser "liviano, robusto y agradable": lo suficientemente liviano como para entrar en un USB; robusto, para que no se cuelgue cada 20 minutos; y agradable, para sentirse cómodo con él. En otras palabras, GNU/Linux.

¿Qué distribución se ajusta mejor?. Personalmente creo que SLAX (basado en Slackware) es una buena opción, ya que está diseñado para esta finalidad. Los que quieran hacerlo rápidamente, pueden descargarse la edición standard (190 mb) que viene con sistema Xwindow y entorno KDE. En mi caso particular elegí SLAX Frodo, que no tiene casi nada, salvo prompt y drivers. Desde aquí se pueden descargar el SLAX (lean también los requerimientos del sistema).

Nota: existen versiones amigables de SLAX para memorias USB de poca capacidad, como el SLAX Popcorn Edition, ideal para memorias de 128 mb.

Además del SO, y suponiendo que estamos en Microsoft Windows, necesitamos los siguientes programas:
  1. HP USB Disk Storage Format Tool: herramienta necesaria para darle formato a la memoria USB.
  2. Syslinux v3.11: para hacer que GNU/Linux bootee desde particiones basadas en sistemas de archivos del tipo FAT. No es normal que GNU/Linux utilice FAT para bootear, por eso necesitamos este programejo.
Ahora sí, ¡manos a la obra!:
  1. Enchufamos la memoria USB.
  2. Abrimos el programa HP USB Disk Storage Format Tool y le damos formato FAT32 a la memoria USB. Si tienen más de una memoria USB enchufada, tengan la delicadeza de elegir correctamente el dispositivo.
  3. Descomprimimos el imagen ISO de la distribución que nos bajamos en un directorio cualquiera. Esto lo pueden hacer con WinRAR o con el programa de vuestro gusto.
  4. Copiamos todos los archivos que descomprimimos reciéntemente en la memoria USB. Los archivos tienen que estar en el raíz del dispositivo.
  5. Descomprimimos el archivo syslinux-3.11.zip (que nos bajamos anteriormente) en C:\syslinux.
  6. Vamos a Inicio (Start) -> Ejecutar (Run) -> cmd.exe
  7. En la nueva ventana ponemos "cd c:\syslinux\win32" (sin comillas)
  8. Ahora escribimos "syslinux.exe X:" (sin comillas), donde "X:" es el nombre de la unidad asignada a nuestro dispositivo USB. Por ejemplo: syslinux.exe E:
  9. Nos descargamos syslinux.cfg desde aquí.
  10. Colocamos el archivo syslinux.cfg en el raíz de la memoria USB.
  11. Movemos el contenido del directorio boot (que está en la memoria USB) al raíz. Luego, si lo desean, pueden eliminar el directorio.
¡Eso es todo!, si siguieron los pasos correctamente, ya tienen un sistema operativo listo para utilizar.

Ahora, ¿cómo arranco la máquina con la memoria USB?. Sencillo: cuando encienden la máquina procuren entrar a la configuración de la memoria BIOS (generalmente apretando la tecla "del" o "supr" muchas veces cuando hace el conteo de memoria), luego vayan a "boot [device] priority" y elijan la memoria USB como 1st boot device.

Customizaciones

En la página de SLAX podrán encontrar módulos interesantes para instalar en su sistema operativo portátil: Nmap, WiFi Radar (con el airsnarf si son nenes malos :-P), GCC, Apache, Python, MySQL, etcétera etcétera. Eso está en ustedes... pueden hacerse realmente una victorinox tecnológica multipropósito y llevarla con ustedes en el bolsillo. Si quieren que el módulo se cargue con el inicio del sistema, guardan los .mo en "/modules", sino, en "/optional" y luego utilizan "boot: slax load=modname" (ej: "boot: slax load=xmms,wine"). uselivemod les puede colgar el SO.

Lo que se viene

¿Gentoo en un viejo iPod de 4gb?, ¿será mucho?... quizás sea mi regalito de navidad.

No hay comentarios.: