28 des. 2008

Actualizar de grub legacy a grub2

Está a punto de caer la nueva versión de debian lenny y con ello es probable que la misma lenny o la squeeze, su succesora en testing, usen la versión actualizada de grub, grub2.
Este nos ofrece mas posibilidad de configuración, además de la solución del tratamiento de las particiones, que en sistemas híbridos con discos SCSI, IDE o SATA daban algunos problemas. Llevo poco rato investigando grub2, pero esta entrada, como muchas de las otras, intentan dar una visión general de la instalación y configuración, y aún no he acabado de entender como trata grub las particiones si con la antigua forma hd(0,1) o los UUID, si va con UUID como hacer para identificar el UUID de cada partición.

Empezemos, vamos a partir de que tenemos una Debian lenny (half-stable) con grub legacy instalado. La maquina que he usado es el Lenovo 3000 V100 (que por cierto está a la venta, ¿a alguien le interesa?).

Vamos a instalar grub2:

# apt-get install grub2

Nos hará un par de preguntas, y una de ellas será si queremos usar el chainloader de grub para probar antes de instalar si grub2 funciona correctamente en nuestra maquina.

Reiniciaremos y nos aparecerá una nueva entrada en nuestro grub de toda la vida, le damos al chainloader grub2 y veremos que aparece otra vez un menu de grub, pero con una bonita imagen detrás (framebuffer). Fijaos que si nuestra maquina dispone de otros sistemas operativos en otras particiones, estas no aparecen, no os asustéis, falta un paso! ;)
Si todo funciona correctamente podremos entrar en nuestro sistema.

Si ha funcionado el siguiente paso será actualizar el grub2 con la configuración que teníamos creada para el grub legacy:

# upgrade-from-grub-legacy

si nos fijamos en el directorio /boot/grub ahora habrá un porrón de ficheros, nuestro amigo el menu.lst aún sigue ahí, pero su papel se lo ha cedido al grub.cfg, por defecto sin derechos de escritura (así que recomiendo hacer un # chmod u+w /boot/grub/grub.cfg para si queremos hacer alguna modificación)

Ahora nos faltará que grub detecte los otros sistemas operativos instalados en el equipo, para ello vamos a instalar una herramienta que se llama os-prober

# apt-get install os-prober

Al ejecutar este programa, nos detectará automaticamente los otros sistemas operativos instalados, en mi caso:

h2so4:/boot/grub# os-prober
/dev/sda1:Windows Vista/Longhorn (loader):Windows:chain
/dev/sda2:Windows NT/2000/XP (loader):Windows1:chain

Para añadir las entradas de otros sistemas operativos, será necesario crear un fichero dentro de /etc/grub.d
Por ejemplo, para que grub detecte nuestros sistemas operativos windows, vamos a crear un fichero en /etc/grub.d

# touch 20_windows_xp
# vi 20_windows_xp

#! /bin/sh -e

cat << EOF
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
chainloader +1
}
EOF



Como véis, se trata de un script de bash, así que será necesario darle derechos de ejecución al fichero:

# chmod +x 20_windows_xp

y para que los cambios se escriban en el MBR:

# update-grub

Y reiniciaremos.

Si os habéis fijado al ejecutar el os-prober me ha detectado un windows vista y un xp, el vista en realidad no lo tengo instalado, parece que sea basura que dejó el sistema operativo instalado por defecto (incluso borrando el disco duro entero varias veces), para que este no aparezca en la lista vamos a editar el /boot/grub/grub.cfg

Borraremos las lineas que no nos interesen, al igual que lo hacíamos con el grub legacy, cabe decir que salvo algunos cambios, el espíritu del fichero del legacy reside en el del grub2.

Aprovechando que estamos editando el fichero, añadiremos un vga=792 detrás de la entrada que nos interese cambiar la resolución de las tty, para poder trabajar con ellas con una gran cantidad de información en la pantalla gracias a la resolución de 1024x768.

Si has hecho alguna investigación extra a las que aparecen en este post, comentalas y compartelas con todos los lectores ;)

Que paséis un buen año nuevo!

4 comentaris:

Anònim ha dit...

Hey!!!!!!!!
Me fue de utilidad la info.
Gracias! :)

P e ha dit...
L'autor ha eliminat aquest comentari.
P e ha dit...

Y si quiero volver al GRUB original??

Anònim ha dit...

Muchas gracias por la información! =) Me ha sido de gran utilidad.
Saludos!

Publica un comentari a l'entrada