Pendrive GNU/Linux (IV): Mi grub.cfg

Llegamos a la última parte del tutorial de elaboración de un Pendrive Multidistro que nos ayude en nuestro trabajo diario. Si no habeis prestado mucha atención, aquí están las anteriores entradas, de recomendable lectura.

1. Creación de un pendrive booteable con Creador de discos y UnetBootin.

2. Persistencia.

3. Creación manual de un pendrive multidistro.

Desde pendrivelinux os intentarán ayudar en todo lo que puedan…

Muy bien… en el anterior tutorial vimos como crear este nuestro pendrive multidistro usando Grub2, que nos aporta la facultar de usar distros en formato imagen de CD/DvD (.iso). La “chicha” del asunto está aquí, ya que esta característica depende en gran medida del S.O en cuestión, así que nos encontraremos con algunas distros con las que sólo tendremos que pegar lineas en grub.cfg y otras donde tendremos que añadir algún parámetro e, inclusive, descomprimir la .iso.

He modificado un poco el ejemplo de partida para ver un poco de los problemas a los que me he enfrentado:

  • Ubuntu 10.04 será la distro más adecuada para usuarios y equipos estándar, debido a su facilidad de uso y reconocimiento de hardware. La orden del ejemplo (III)funcionará perfectamente.
    • Hemos descartado Knoppix por ser más complicado de hacer funcionar como .iso bajo Grub2, cuando hablemos de CDlinux ampliaremos esto.
  • Backtrack 4 sigue siendo nuestra elección como distribución completa de seguridad. Ya que se basa en Ubuntu (que usa Grub2), no dará problemas y podemos copiar la orden que aparece en el boot de nuestra .iso de backtrack, en el archivo [menu.lst].
    • Backtrack presenta actualmente un problema con las particiones EXT4, así que si teneis un equipo con una de estas particiones, dadle tiempo al arrancar (se quejará un rato). Por la red teneis una solución fácil para esto que consiste en reempaquetar una libreria desde Ubuntu e introducirla en la .iso.
    • Dado que nuestra idea es usarlo en modo “LiveUSB”, copiamos la línea del menu.lst que incluye el parámetro toram.
  • CDlinuxes una distribución orientada a las auditorías. La base que usaremos para su funcionamiento se aleja del uso de .iso, así que podreis intentar aplicarla a esas distros que se os resistan a funcinoar bajo el método de este tutorial.
      • En la página de esta distribución nos indican que el comando que hay que darle al kernel para lanzar la iso es CDL_IMG=CDL.iso, pero a mi no me funcionó, así que usé esta distribución como ejemplo de distro difícil de ejecutar.
      • Para hacerla arrancar, debemos extraer la iso a alguna carpeta y dirigir todos los comandos a ésta. En el kernel de CDlinux, el parámetro CDL_DIR=/boot/r4/ le hará buscar la información ahí.
      • Esta última argucia es la que deberemos usar con distros como puppy linux y derivadas, que ya incluyen dentro del sistema un archivo imagen (.sfs), por lo que complican la posibilidad de ejecutarse como (.iso).
      • Seguramente, Knoppix o Hirens puedan ejecutarse también de ésta forma, tendreis que informaros de parámetros de montaje para root tipo /dev/null y similares para incluir al arranque y conseguir ejecutarlas. Tengo intención de conseguirlo algún día: os informaré de ello.
  • En detrimento de Knoppix y Hirens, he incluído en mi pendrive dos distros que, siguiendo el script del que partimos en el anterior tutorial, funcionan perfectamente con Grub2.
    • Tiny Linux es un sistema, a secas… no lo consideraría “distribución” ya que sólo nos facilitan las herramientas base para crear nosotros la nuestra propia, eligiendo el software a añadir. Como nos recomendaban en un enlace mencionado cuando hablamos de ella, si hacemos que ocupe 100 megas en vez de diez, conseguiremos ya tener algún software útil. Para asegurarnos de que el equipo arranca y puede conectarse a internet, nos llega. (Sabemos que con eso y GNU/Linux, podemos hacer ya lo que queramos. ^^).
    • Si lo que quereis es una distribución muy ligera, Slitaz 3.0 es más que recomendable.
    • Por último, SystemRescueCD es una distro muy útil para recuperar sistemas y archivos, teniendo la tremenda ventaja de que es muy fácilmente personalizable para hacer tu propio conjunto de software, así que es un “must have” en nuestro Pendrive.

Como ya mencioné anteriormente:

“Esta parte es la más difícil y hay mucho de “prueba y error” en ella… tendreis que pelearos con el arranque de cada sistema debido a sus características.”

Cada distribución admite sus parámetos en el inicio, muchos nos valdrán en la mayoría y otras nos darán la lata a alturas inimaginables. Por esto, es recomendable tener el conocimiento adecuado en cada una de las distros que vayamos a utilizar. Si tenemos nuestras habilidades más o menos desarrolladas, este trabajo no acabará con nosotros. Por suerte, Linux tiene muchos sabores y siempre habrá algo que podamos usar y para lo que estemos capacitados.

Os dejo el grub.cfg de mi pendrive. Cómo hemos sugerido antes, cada entrada consta de 4 líneas:

1. menuentry será el nombre del “lanzador” que figure en el Splash de inicio.

2. loopback generará un “bucle” en el que el sistema lanzado buscará sus archivos para iniciarse, de ahí que este loop se envíe a la .iso (en las distros que lo admitan).

3. linux indicará el kernel y los parámetros de lanzamiento de éste:

  • El kernel estará direccionado al nombre con el que este venga en la distro: vmlinuz, bzimage, etc…).
  • boot le indica al kernel donde están los archivos requeridos para iniciarse.
  • iso-scan/filename direcciona estos a la iso. (hay otras variantes de este parámetro dependiendo de la distro/kernel usada: ‘isoloop‘ es un ejemplo).
  • noeject es un típico parámetro en LiveCD.
  • vga indica la resolución/modo de vídeo por defecto.

Como mencionamos, estos parámetros varían de acuerdo a la distribución, aunque muchos valen en todas. Si tenemos experiencia con GRUB no tendremos mayor problema a menos que nos enfrentemos a distros raras. Para intuir qué podemos hacer es recomendable ver los archivos de configuración del inicio de estas distros, tipo isolinux.cfg, menu.lst, etc…

A practicar, equivocarse y aprender… ¡Mucha suerte!

#grub.cfg
# Optimizado malamente por Gaius Baltar
 # Suggested Entries and the suggestor, if available, will also be noted.
set timeout=20
 set default=0
menuentry "Ubuntu 10.04 Live" {
  loopback loop /boot/iso/ubuntu.iso
  linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
 }
menuentry "BackTrack 4 problema ext4" {
 loopback loop /boot/iso/bt4.iso
 linux (loop)/boot/vmlinuz boot=casper iso-scan/filename=/boot/iso/bt4.iso toram nopersistent rw vga=0x317 --
 initrd (loop)/boot/initrd.gz
 }
menuentry "CDlinux" {
 loopback loop /boot/iso/r4.iso
 linux (loop)/CDlinux/bzImage CDL_DIR=/boot/r4/CDlinux --
 initrd (loop)/CDlinux/initrd
 }
menuentry "Caine 2.0" {
 loopback loop /boot/iso/caine2.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/caine2.iso toram --
 initrd (loop)/casper/initrd.gz
 }
menuentry "tinycore 3.4" {
 loopback loop /boot/iso/tiny34.iso
 linux (loop)/boot/bzImage --
 initrd (loop)/boot/tinycore.gz
 }
menuentry "SystemRescueCd 1.6" {
 loopback loop /boot/iso/rescuecd.iso
 linux (loop)/isolinux/rescuecd isoloop=/boot/iso/rescuecd.iso setkmap=us docache dostartx --
 initrd (loop)/isolinux/initram.igz
 }
Anuncios

Acerca de Gaius Baltar
Aficionado a la tecnología informática desde que un MSX pasó por casa y apasionado defensor del Software Libre como religión para unir a los pueblos. Es Gaius Baltar al fin y al cabo, y tiene derecho a equivocarse. Cuando se aburre, redacta y gestiona los contenidos en diversos blogs subculturales.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: