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 1024×768.
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!
Hey!!!!!!!!
Me fue de utilidad la info.
Gracias! :)
Y si quiero volver al GRUB original??
Muchas gracias por la información! =) Me ha sido de gran utilidad.
Saludos!
Hola Blackhold,
gracias por publicarlo.
Quizás no lo he entendido bien, pero si hago lo que me dices me salen dos entradas, una que crea el propio os-prober, y otra que crea nuestro bash 20_windows_xp. O sea, creo que lo que planteas aquí son dos alternativas para hacer lo mismo: o haces el script o instalas el programa.
Por otra parte, casualmente también tengo a windoze en
/dev/sda2 y la entrada que crea 20_windows_xp no funciona, porque a diferencia de grub legacy, debe ser
set root=(hd0,2)
y no
set root=(hd0,1)
También es muy probable que todo esto haya cambiado desde que lo escribiste (Feliz 2011!), y de todas maneras me has ahorrado mucho tiempo.
Salut!
Barracuda
buffff… hace tanto tiempo que ni me acuerdo xD como comentas fijo que es posible que haya cambiado la forma de hacerlo, ahora debian testing por ejemplo ya viene con grub2, y en septiembre saldrá como estable, mumuntu también lo usa y todos los sistemas que van estando al día de las actualizaciones mas o menos también…
me alegro que te hayan sido de ayuda mis anotaciones :)