/ 4 de julio de 2012

Aviso: Este es un post antiguo, puede que su información esté desactualizada. Si está buscando algo sobre un evento actual, tenga en cuenta que puede que este no sea el que busca.

Con el gestor de arranque de Ubuntu 12.04 «Grub2», podemos probar los Live CD, sin la necesidad de grabarlo en un CD o en un pendrive.

Para ello nos basta la imagen «.iso» del Live CD, descargada en nuestro disco duro.
Además de utilizarlo para probar las distintas distribuciones que nos interese, es muy útil para realizar tareas de las cuales no queramos dejar ni rastro, por ejemplo acceder a nuestra cuenta del banco, etc…

Además, de esta forma nos ahorramos tiempo, ya que arranca y trabaja bastante más rápido que si lo hacemos desde un CD y por supuesto, no tenemos que andar metiendo y sacando CDs.

Vamos a ver como hacerlo: 

Nota: Como indico al final en «posible error», esto solo vale para los LiveCD de Ubuntu y sus derivadas. Para LiveCD de otras distribuciones como Fedora, OpenSuse, ArchBang, … hay que modificar el directorio y archivos donde encontrar el Kernel (núcleo) para el booteo.
Creamos un directorio en la raíz del sistema de archivos (/) al que llamaremos «/iso», para tener el sistema de archivos organizado, con el comando:

sudo mkdir /iso

Descargamos la imagen.iso de la distribución que deseemos en nuestra carpeta de «Descargas» (dentro de nuestra carpeta personal).

Importante: En el tutorial voy a utilizar un nombre genérico: nombre-livecd.iso y vosotros tenéis que cambiarlo por el nombre exacto del archivo descargado, en todos los comandos y código que pondré. Es Muy importante que sea el nombre idéntico. Si queréis podéis renombrarlo por otro que os sea más fácil de escribir.

Consejo: en los nombres de los archivos, utilizad los guiones medios ( – ) o bajos ( _ ) entre palabras y no os compliquéis la vida poniendo espacios en blanco, porque entonces tendréis que escribirlos entre comillas. Por ej: «nombre livecd.iso«.

Copiamos el archivo descargado en la carpeta Descargas (~/Descargas/nombre-livecd.iso) y lo pegamos dentro del nuevo directorio que hemos creado con anterioridad (/iso), con el comando:

sudo cp ~/Descargas/nombre-livecd.iso /iso

En el archivo /etc/grub.d/40_custom, se pueden añadir sistemas operativos manualmente para que aparezcan en el grub. Lo editamos con el comando:

sudo gedit /etc/grub.d/40_custom

Al final del archivo añadimos las siguientes líneas, pero mucho ojo, antes de pegarlo, seguid leyendo más abajo, porque hay cosas que modificar en ellas (las que están en rojo).

menuentry "nombre livecd" {
set root=(hd0,2)
loopback loop /iso/nombre-livecd.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es splash iso-scan/filename=/iso/nombre-livecd.iso --
initrd (loop)/casper/initrd.lz
}

Vamos a ver las líneas una a una, para comprender qué estamos haciendo:

menuentry "nombre livecd"

«menuentry» es la línea que otorga el nombre que aparecerá en el grub. Podemos cambiar «nombre livecd», por el que queramos, por ejemplo «Xubuntu 12.04» a secas. (Aquí si podéis dejar espacios en blanco entre las palabras, ya que tiene las comillas)

set root=(hd0,2)

«set root=» determina la partición del disco duro «(hd0,2)», donde el sistema encontrará la imagen.iso que hemos pegado en /iso. Esto suele traer confusión, por lo que nos vamos a detener para explicarlo bien. Vamos a suponer que nuestro Ubuntu está en «/dev/sda2″, o sea, en la segunda partición (2) del primer disco duro (a). Por lo que entonces deberíamos de escribir: (hd0,2). Básicamente tenemos que tener en cuenta que: – La letra que designa el disco duro (a, b, c, …) es sustituida por un número (0, 1, 2, …). La nomenclatura de «hd» comienza por cero, o sea, el primer disco duro (a) es 0, el segundo (b) es 1, el tercero (c) es 2 … – El número de la partición (1, 2, 3, …) se quedará igual. Antes había que restar 1, ya que también empezaba por 0 (cero), pero lo modificaron porque creaba mucha confusión.
Os dejo un listado de las respectivas nomenclaturas en los dos primeros discos duros, por si os queda alguna duda:

loopback loop /iso/nombre-livecd.iso

«loopback loop …» Determina la ruta dentro de la partición, donde encontrará la imagen.iso. No hace falta poner la ruta en la que se montó el disco (/media/…/), ya que en la línea anterior «set root» ya pusimos el disco duro y la partición donde está. Solo tenemos que cambiar nombre-livecd.iso, por el nombre exacto de la imagen.iso que pegamos en /iso.

linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es splash iso-scan/filename=/iso/nombre-livecd.iso --

«linux (loop)/casper/vmlinuz boot=…» Determina la ruta del kernel con el que arrancará el Live-cd. En esta línea encontraremos los siguientes parámetros que podemos quitar o dejarlos, según nos convenga (recomiendo dejarlos tal cual): – locale y bootkbd, para que arranque con el idioma y la distribución del teclado en Español. – splash, para que muestre la imagen de carga (splash). Aquí, también debemos de cambiar al final de la línea: nombre-livecd.iso, por el nombre exacto de la imagen.iso que pegamos en /iso.

initrd (loop)/casper/initrd.lz

initrd (loop): determina la ruta dónde está el initrd (sistema de archivos temporal usado por el núcleo Linux durante el inicio del sistema)

Cuando tengamos el archivo correctamente, guardamos, cerramos el archivo y actualizamos el grub con:

sudo update-grub

Nota: se pueden añadir tantos LiveCD como queramos, añadiendo al archivo el correspondiente grupo de líneas («menuentry {…}) y con sus respectivas imágenes.iso pegadas en el directorio /iso. En el grub aparecerán todos los Live-CD, desde los que podremos arrancar cualquiera de los añadidos

Como ejemplo os dejo mi archivo, en el que he añadido Xubuntu y Lubuntu.

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Lubuntu 12.04 Live" {
set root=(hd0,2)
loopback loop /iso/lubuntu-12.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es splash iso-scan/filename=/iso/lubuntu-12.04-desktop-i386.iso --
initrd (loop)/casper/initrd.lz
}
menuentry "Xubuntu 12.04 Live" {
set root=(hd0,2)
loopback loop /iso/xubuntu-12.04-desktop-amd64.iso
linux (loop)/casper/vmlinuz boot=casper locale=es_ES bootkbd=es console-setup/layoutcode=es splash iso-scan/filename=/iso/xubuntu-12.04-desktop-amd64.iso --
initrd (loop)/casper/initrd.lz
}

A mi me ha funcionado igual 😉
Gestor de arranque Burg
En el Foro, el compañero Makova (yo mismo) nos deja que hacer si tenemos Burg (menú animado para el Grub2):
Básicamente hay que hacer lo mismo, a excepción de:
– En lugar de editar el archivo «/etc/grub.d/40_custom», editamos este otro: «/etc/burg.d/40_custom» (cambiar grub por burg):

sudo gedit /etc/burg.d/40_custom

– Al final, actualizar el burg con:

sudo update-burg

Posible error:
Si al arrancar os aparece el siguiente error:

you need to load the kernelk first

Es por que «no encuentra el archivo para el arranque del kernel» y esto es debido a que el directorio /casper y los archivos vmlinuz y initrd.lz solo se utilizan en Debian y derivadas (Ubuntu, Linux Mint, Guadalinex, …), por lo que en otras distribuciones se debería de cambiar las líneas pertinentes con la ruta/archivo adecuada, para que encuentre el archivo.
Gracias a: Juanetebitel

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Web Campus Infantil
Logo y enlace Web Campus Infantil 2021
Web SereIngeniera
Logo y enlace Web SereIngeniera 2021
PyconES 2022
Logo y enlace PyconES 2022
Humor
Humor
Archivos
Categorías