Actualizar Debian 6-Squeeze a 7-Wheezy y UEFI con GPT

Llevaba tiempo sin escribir, vacaciones, trabajo, etc, etc…pero ayer me propuse actualizar un servidor de almacenamiento a la versión 7 de Debian, Wheezy. La tarea tenía su miga, ya que había muchos TB en juego y no se podía fallar….jejejeje

La cuestión es que la actualización de la distribución fue correcta, como siempre siguiendo las indicaciones desde el sitio de Debian en el que se detallan todos los pasos y los problemas más habituales durante y después de la instalación. Con respecto a la actualización, nada nuevo, simplemente copia de seguridad, buena conexión y adelante!!

La descarga de los paquetes tarda bastante por lo que, si no se dispone de mucho tiempo, se pueden dejar descargados para luego seguir con la actualización. Con el comando apt-get -d dist-upgrade sólo nos descargamos los paquetes….

Al finalizar la actualización tenemos dos opciones:

  • Reiniciar, teniendo en cuenta que el cargador de arranque GRUB puede no estar bien instalado/configurado, por lo que no arrancará.
  • Revisar y corregir posibles fallos en el arranque.

Yo escogí la primera, pero ya sabía que iba a fallar, por lo que lo dejé para cuando pudiera estar delante del servidor. Hasta el momento del reinicio todo funcionó perfectamente, pero tras reiniciar se alinearon ciertas condiciones para que no arrancara…

Se daban las circunstancias (sé que es algo de literatura, pero creo que es necesario contarlo para que cada uno pueda determinar si su entorno se aproxima o no al mio) que dicha máquina tenía UEFI, se había particionado usando GPT y había sido actualizada ya desde la versión 5-Lenny, por lo que había ciertos aspectos del GRUB que eran antiguos.

UEFI no es del todo necesario, pero sí es la manera elegante de dejarlo funcionando, por lo que me decanté por hacer funcionar el GRUB con este arranque y no en modo “legacy”.

Lo primero es disponer de cierto espacio libre, por lo que si tenemos la antigua partición de /boot con unos 250 MB, es suficiente. Si /boot está integrado en /, toca redimensionar y se complica un poco más…(backups, espacio, lvm, etc). Por suerte tenía una partición para GRUB con la que poder “jugar”.

  • Copiamos /boot en cualquier sitio pej /home
  • La partición que teníamos para /boot, la desmontamos, la eliminamos con parted (si usáis GPT), la volvemos a crear del tipo “fat32″ y la formateamos.
  • En el directorio /boot que hay creado en la partición /, copiar los archivos que salvamos en el paso 1.
  • Creamos el directorio /boot/efi y montamos ahí la partición “fat32″ de antes.
  • Cargamos el módulo necesario e instalamos el paquete de GRUB para UEFI (pedirá eliminar los paquetes de GRUB anteriores, continuar):
modprobe efivars
aptitude install grub-efi-amd64
grub-install /dev/sda ## Cambiar por la unidad de destino
  • No deben de aparecer errores, Si todo ha ido bien nos aparecerán los kernels encontrados en /boot e información acerca de la configuración de UEFI.
  • Para aquellos sistemas en los que UEFI no sea totalmente configurable, es necesario copiar un archivo a otro directorio nuevo para el que cargador pueda localizarlo:
    mkdir /boot/efi/EFI/boot
    cp /boot/efi/EFI/debian/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
  • Por último, reiniciamos, entramos en la configuración de arranque de UEFI y seleccionamos la imagen a arrancar EFI/debian/grubx64.efi

Ya deberíamos de tener actualizada nuestra distribución y arrancando con UEFI.

Sé que hay muchísimos artículos acerca de esto, pero a mí me costò algo poner un poner en orden la adaptación de un sistema que pasó de MBR a GPT y que estaba funcionando en modo “legacy” para poder arrancar, por lo que no encontré algún artículo para este caso concreto.

Espero que os sirva ;)

Enlaces:

http://www.anchor.com.au/blog/2012/10/the-difference-between-booting-mbr-and-gpt-with-grub/

https://wiki.debian.org/BootLoader

Deja un comentario

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

Imagen CAPTCHA

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>