cd/dvd/usb multidistro con grub2 + isos
Ahora con la salida de ubuntu 9.10 codename Karmic Koala, lo que mas polvo ha levantado (aparte de los bugs) es el fulano grub2 y sus diversas funciones (capacidad de ejecutar scripts, arranque desde isos, etc) y aprovechándonos de eso vamos a crear una herramienta con varias distros.
¿para qué sirve llevar varias distribuciones GNU/Linux? de seguro preguntaran, pues muy sencillo como saben los S.O. basados en GNU/linux son (sin ánimo de parecer fan boy o anti windows) tan versátiles que nos permiten un monton de cosas con sus live cd’s, desde algo tan sencillo como recuperar la contraseña de windows hasta recuperar tablas de particiones, etc.
Tutorial para Karmic Koala
Primera Parte: creación de un cd/dvd multidistro
Comenzamos instalando los paquetes necesarios:
(Trabajaremos desde la consola de root la primera parte)
Creamos la carpeta de trabajo:
Donde dice USUARIO debemos colocar nuestro nombre de usuario OK
Creamos la imagen .iso con un grub vacío:
le damos los permisos necesarios:
Ahora si queremos podemos cerrar la consola, si no pues la minimizamos (igual la necesitaremos luego) y vamos a la carpeta:
Presionamos Alt+F2 y en el cuadro de diálogo escribimos:
Lo que nos llevará a la carpeta donde creamos la imagen .iso, una vez allí con el boton derecho derecho hacemos click sobre el .iso y seleccionamos la opción “Extraer Aqui“.
Tendremos una carpeta llamada “arranque”, entramos alli y creamos una carpeta llamada “iso”, alli colocaremos todas las isos que vamos a utilizar. En mi caso estoy trabajando con *buntu hardy, gparted, gOS y Tiny Core, las isos las muevo alli
Entramos en la Carpeta llamada “boot” y allí en “grub”, abrimos el archivo “grub.cfg” que estará vacío y colocamos lo siguiente:
Donde:
- loopback loop /iso/archivo1.iso le indica que monte como dispositivo loop el archivo archivo1.iso que esta en la carpeta /iso/
- linux (loop)/casper/vmlinuz le indica el nombre para buscar el kernel
- boot=casper es la carpeta dónde se encuentra el kernel
- locale=es_ES bootkbd=es console-setup/layoutcode=es son opciones extras de arranque (las encuentran en el isolinux.cfg del livecd, en la opción append)
- iso-scan/filename=/iso/archivo1.iso en caso de tener varias isos indica que nuestra raiz en ese momento es la llamada archivo1.iso
- noeject noprompt – en realidad para estas opciones desconozco su función, pero creo que aplica para las distribuciones que expulsan el disco luego de cargarse, como geexbox o slitaz, alguien con mas conocimientos que yo, que por favr me corrija en eso
- initrd (loop)/casper/initrd.gz Esta opción busca el miniroot del disco para el arranque
Ahora creamos de nuevo la imagen .iso:
Abrimos Isomaster:
Presionamos Alt+F2 y escribimos:
Una vez allí vamos a la dirección $HOME/grubiso y hacemos click en Archivo → Nuevo.
Seleccionamos TODO lo que tenemos en la parte superior de la pantalla y lo añadimos a nuestra iso.
En la parte de abajo de nuestra ventana abrimos la carpeta boot → grub, seleccionamos el archivo grub_eltorito y luego vamos a Herramientas → Registro de Arranque → Añadir → Usar Archivo Seleccionado en Imagen (sin Emulación), esto es para que el disco sea booteable. Hacemos click en Archivo → Guardar como y guardamos nuestro disco, ejemplo multimio.iso.
Como una imagen vale mas que mil palabras les dejo un gif intentando explicar esto de arriba:

Para probar cómo quedó simplemente utilizamos la máquina virtual instalada en el primer paso: kvm (ajá, vieron como era necesario dejar abierta la consola de root de antes)
Debe aparecer el grub de arranque del cd
Segunda Parte: creación de un usb multidistro
Este paso es mas sencillo, una vez realizados los pasos de arriba, omitimos abrir isomaster (ya que no lo necesitaremos) y escribimos en la consola de root:
donde /media/PENDRIVE es el punto de montaje del pendrive y /dev/sdX será el dispositivo OJO cuando se haga esto de no hacerlo correctamente podemos dañar nuestro disco duro, para no equivocarnos escribimos esto en la consola:
lo que nos mostrará qué está montado y en donde:
luego sencillamente copiamos TODO el contenido de la carpeta $HOME/grubiso/arranque a la raiź del pendrive:
Y como antes usamos kvm para las pruebas:
¿para qué sirve llevar varias distribuciones GNU/Linux? de seguro preguntaran, pues muy sencillo como saben los S.O. basados en GNU/linux son (sin ánimo de parecer fan boy o anti windows) tan versátiles que nos permiten un monton de cosas con sus live cd’s, desde algo tan sencillo como recuperar la contraseña de windows hasta recuperar tablas de particiones, etc.
Tutorial para Karmic Koala
Primera Parte: creación de un cd/dvd multidistro
Comenzamos instalando los paquetes necesarios:
(Trabajaremos desde la consola de root la primera parte)
sudo suaptitude install isomaster kvmCreamos la carpeta de trabajo:
mkdir /home/USUARIO/grubisocd /home/USUARIO/grubisoDonde dice USUARIO debemos colocar nuestro nombre de usuario OK
Creamos la imagen .iso con un grub vacío:
grub-mkrescue arranque.isole damos los permisos necesarios:
chmod -Rfv 777 /home/USUARIO/grubiso/Ahora si queremos podemos cerrar la consola, si no pues la minimizamos (igual la necesitaremos luego) y vamos a la carpeta:
Presionamos Alt+F2 y en el cuadro de diálogo escribimos:
nautilus $HOME/grubisoLo que nos llevará a la carpeta donde creamos la imagen .iso, una vez allí con el boton derecho derecho hacemos click sobre el .iso y seleccionamos la opción “Extraer Aqui“.
Tendremos una carpeta llamada “arranque”, entramos alli y creamos una carpeta llamada “iso”, alli colocaremos todas las isos que vamos a utilizar. En mi caso estoy trabajando con *buntu hardy, gparted, gOS y Tiny Core, las isos las muevo alli
Entramos en la Carpeta llamada “boot” y allí en “grub”, abrimos el archivo “grub.cfg” que estará vacío y colocamos lo siguiente:
set timeout=25menuentry "Ubuntu Live 8.04" {
loopback loop /iso/ubuntu-8.04.3-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es iso-scan/filename=/iso/ubuntu-8.04.3-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.gz
}menuentry "Kubuntu Live 8.04" {
loopback loop /iso/kubuntu-8.04.2-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es iso-scan/filename=/iso/kubuntu-8.04.2-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.gz
}menuentry "Xubuntu Live 8.04" {
loopback loop /iso/xubuntu-8.04.1-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es iso-scan/filename=/iso/xubuntu-8.04.1-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.gz
}menuentry "gOS-3.1 Gadgets" {
loopback loop /iso/gos-3.1-gadgets-20081205.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es iso-scan/filename=/iso/gos-3.1-gadgets-20081205.iso noeject noprompt --
initrd (loop)/casper/initrd.gz
}menuentry "GParted" {
loopback loop /iso/gparted-livecd-0.3.3-0.iso
linux (loop)/isolinux/linux findiso=/iso/gparted-livecd-0.3.3-0.iso root=/dev/ram0 init=/linuxrc ramdisk_size=65000 nomce noeject noprompt --
initrd (loop)/isolinux/initrd.gz
}menuentry "GParted lowmem" {
loopback loop /iso/gparted-livecd-0.3.3-0.iso
linux (loop)/isolinux/linux findiso=/iso/gparted-livecd-0.3.3-0.iso root=/dev/ram0 init=/linuxrc ramdisk_size=16384 nomce noeject noprompt --
initrd (loop)/isolinux/initrd.gz
}menuentry "tinycore" {
loopback loop /iso/tinycore_2.2rc1.iso
linux (loop)/boot/bzImage --
initrd (loop)/boot/tinycore.gz
}menuentry "Memory test (memtest86+)" {
linux /boot/img/memtest86+.bin
} Donde:
- loopback loop /iso/archivo1.iso le indica que monte como dispositivo loop el archivo archivo1.iso que esta en la carpeta /iso/
- linux (loop)/casper/vmlinuz le indica el nombre para buscar el kernel
- boot=casper es la carpeta dónde se encuentra el kernel
- locale=es_ES bootkbd=es console-setup/layoutcode=es son opciones extras de arranque (las encuentran en el isolinux.cfg del livecd, en la opción append)
- iso-scan/filename=/iso/archivo1.iso en caso de tener varias isos indica que nuestra raiz en ese momento es la llamada archivo1.iso
- noeject noprompt – en realidad para estas opciones desconozco su función, pero creo que aplica para las distribuciones que expulsan el disco luego de cargarse, como geexbox o slitaz, alguien con mas conocimientos que yo, que por favr me corrija en eso
- initrd (loop)/casper/initrd.gz Esta opción busca el miniroot del disco para el arranque
Ahora creamos de nuevo la imagen .iso:
Abrimos Isomaster:
Presionamos Alt+F2 y escribimos:
isomasterUna vez allí vamos a la dirección $HOME/grubiso y hacemos click en Archivo → Nuevo.
Seleccionamos TODO lo que tenemos en la parte superior de la pantalla y lo añadimos a nuestra iso.
En la parte de abajo de nuestra ventana abrimos la carpeta boot → grub, seleccionamos el archivo grub_eltorito y luego vamos a Herramientas → Registro de Arranque → Añadir → Usar Archivo Seleccionado en Imagen (sin Emulación), esto es para que el disco sea booteable. Hacemos click en Archivo → Guardar como y guardamos nuestro disco, ejemplo multimio.iso.
Como una imagen vale mas que mil palabras les dejo un gif intentando explicar esto de arriba:
Para probar cómo quedó simplemente utilizamos la máquina virtual instalada en el primer paso: kvm (ajá, vieron como era necesario dejar abierta la consola de root de antes)
sudo kvm -boot d $HOME/grubiso/multimio.isoDebe aparecer el grub de arranque del cd
Segunda Parte: creación de un usb multidistro
Este paso es mas sencillo, una vez realizados los pasos de arriba, omitimos abrir isomaster (ya que no lo necesitaremos) y escribimos en la consola de root:
grub-install --no-floppy --root-directory=/media/PENDRIVE dev/sdXdonde /media/PENDRIVE es el punto de montaje del pendrive y /dev/sdX será el dispositivo OJO cuando se haga esto de no hacerlo correctamente podemos dañar nuestro disco duro, para no equivocarnos escribimos esto en la consola:
mount -llo que nos mostrará qué está montado y en donde:
/dev/sdf1 on /media/MultiBootUSB type vfat (rw,nosuid,nodev,uhelper=devkit,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush) [MultiBootUSB]luego sencillamente copiamos TODO el contenido de la carpeta $HOME/grubiso/arranque a la raiź del pendrive:
cp -avf $HOME/grubiso/arranque/* /media/PENDRIVEY como antes usamos kvm para las pruebas:
sudo kvm -hda /dev/sdf
Comentarios
Publicar un comentario