viernes, 8 de enero de 2010

Actualizando GRUB2

Recientemente instalé Ubuntu 9.10 Karmic Koala en mi portátil, machacando el gestor de arranque que tenía en el MBR (GRUB instalado por openSUSE) por el nuevo GRUB2 que incorpora Karmic.

La verdad que en principio todo funcionó, siendo capaz tanto de arrancar con Karmic, como con Windows 7 (las menos) y openSUSE (de calle la mejor en integrar el escritorio KDE).

El problema surgió en el último arranque que hice con openSUSE, pues YaST actualizó algunos paquetes, entre los que se encontraba una revisión del kernel. La siguiente vez que intenté arrancar openSUSE desde GRUB2, éste me lanzó un error de que no encontraba el kernel de openSUSE.

Así que después de arrancar con Karmic, y tirando de algunos recursos, concretamente éste (o este otro en castellano), la solución fue ejecutar update-grub (como root), tal como se muestra a continuación:
josea@ubuntu-dell:~$ sudo update-grub
[sudo] password for josea:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Dell Utility Partition on /dev/sda1
Found Windows 7 (loader) on /dev/sda2
Found openSUSE 11.2 RC 1 (i586) on /dev/sda6
done
josea@ubuntu-dell:~$
update-grub ejecuta unos scripts que se encuentran dentro de /etc/grub.d, que entre otras cosas, y dinámicamente, se encargan de encontrar los s.o. que tengamos en nuestra máquina, y almacenar toda esa información en el archivo grub.cfg, que se encuentra en /boot/grub (vendría a ser el menu.lst de GRUB) y que no deberíamos modificar manualmente, ya que de esto se encargan precisamente los scripts mencionados antes.

Si GRUB2 no estuviese correctamente instalado, ejecutaríamos a continuación (en mi caso no fue necesario):
sudo grub-install /dev/sda
que instalaría GRUB2 en el MBR de la unidad sda (usar sdb, etc si vuestra unidad es otra, o usar /dev/sdaX, sustituyendo sda por lo que corresponda, y X por el número de la partición en la que queramos instalar GRUB2, si no quisiésemos hacerlo en el MBR). Si lanzase algún error, podríamos intentarlo con:
sudo grub-install --recheck /dev/sda
Es hora de reiniciar y comprobar si nuestro trabajo ha resultado satisfactorio.

No hay comentarios: