Problema en el arranque luego de la actualización de la versión 1.99 a la 2.02 de GRUB en Proxmox VE 3.3 (01/02/2015)

Saludos nuevamente.

Hace unos pocos días me tropecé con un colega administrador que estaba algo desesperado por resolver un problema que se le dió con una actualización de Proxmox. Resulta que él tenía la versión 3.2 y actualizó a la 3.4 utilizando el repositorio que le propoercioné. La cosa fue que cuando se enfrentó al cambio de la versión de GRUB no seleccionó la opción adecuada y BUM.

Como yo soy un chivador malo lo fundí un ratico, pero luego hablando en serio, le dije que a mi me había pasado eso también, que pasara por mi trabajo a recoger el documento para que lo aplicara en su hipervisor.

Una vez que resolvió le volvió el alma al cuerpo.

Ahora bien, como sé que eso le puede pasar a cualquiera que use Proxmox y que no tiene muchas posibilidades de mantenerse actualizado, le pondré aquí el pequeño manual que hice (que es el Anexo 5 del manual que les he comentado en post anteriores).

Sin más, aquí les va.

Anexo 5 – Problema en el arranque luego de la actualización de la versión 1.99 a la 2.02 de GRUB en Proxmox VE 3.3 (domingo 1 de febrero de 2015)

El sábado 31 de enero de 2015 cuando realicé la actualización de uno de los hipervisores Proxmox VE 3.3 me sucedió algo que no esperaba. Resulta que en el último paquete de actualizaciones emitido por el equipo de Proxmox se incluyó la actualización de GRUB, de la versión 1.99 a la 2.02. En esta nueva versión la estrcutura del cargador de arranque GRUB cambia considerablemente. De hecho, durante el proceso de actualización del sistema operativo aparece un nuevo elemento: GRUB-PC.

Para alguien que no está acostumbrado a estos nuevos cambios (mi caso), surgen nuevas dudas de cual es la opción adecuada a escoger.

A continuación cuento lo que me pasó.

Primero que todo, cuando el APT se ubica en este punto, lanza la siguiente pantalla:

GRUB en Proxmox - 1

En ella se ve que APT (o dpkg-reconfigure grub-pc, que es lo que se ejecuta en segundo plano) autoselecciona “<No>”. Lo dejé tal y como viene, y presioné <ENTER>. Luego me salió esta nueva pantalla:

GRUB en Proxmox - 2

Aquí, como se ve, solamente queda una opción: presionar <ENTER>.

GRUB en Proxmox - 3

En este punto, la opción a escoger para que no haya ningún problema es la que se marca en la imagen anterior (claro está que de eso me di cuenta luego de probar esto en otros hipervisores Proxmox), o sea, la opción del disco duro por donde arranca normalmente el sistema operativo. Bueno, yo cometí el error (llevado por la duda) de seleccionar la partición que contiene los archivos de arranque del GRUB: /dev/sda2, dado que Proxmox por defecto crea una tabla de particiones GPT donde la primera partición contiene el Master Boot Record (MBR) clásico, la segunda contiene los archivos de arranque del GRUB (/boot) y la tercera o restante partición contiene, dentro de un grupo de volúmenes LVM, la estrcutura de paticiones que utiliza Proxmox normalmente. Cuando reinicié el hipervisor ocurrió el desastre: no inició como esperaba, lo cual hizo realidad mi mayor temor, que explotara durante el arranque del sistema operativo.

Entonces, hoy domingo 1ro de febrero me dí a la tarea de ver cómo arreglar el problema del arranque de ese servidor, dado que contiene máquinas virtuales importantes (entre ellas, el servidor de Acceso Remoto de las empresas subordinadas al Grupo Empresarial).

Luego de varios intentos, logré arreglar el cargador de arranque de un hipervisor Proxmox de pruebas. Los pasos son los siguientes:

1.- Iniciar con un LiveCD en el servidor afectado para comenzar el arreglo de GRUB 2.02. En mi caso, utilicé el CD de instalación de Linux Mint 17.1.

2.- Una vez iniciado el sistema operativo, levantar una consola Bash para luego trabajar en modo root.

3.- Ejecutar fdisk para ver el particionado del disco principal:

# fdisk -l

Esto da una salida como esta:

GRUB en Proxmox - 4

Como mencionamos anteriormente, Proxmox crea una partición de tipo GPT que abarca todo el tamaño del disco duro.

4.- Ver el contenido de la partición GPT del disco

En la imagen anterior fdisk muestra un mensaje de aviso que no soporta este tipo de partición, por lo tanto, hay que utilizar otra herramienta que tenga soporte para GPT, esa herramienta es parted:

# parted

Ua vez dentro de la utilidad, se procede a ver la otra “tabla de particiones” mediante la opción print, la cual da el resultado que se ve en la imagen siguiente:

GRUB en Proxmox - 5

Donde se ve que la partición No. 2 (la que está marcada) es la que contiene los archivos del GRUB 2.02 previamente montado durante el proceso de actualización de Proxmox, y que es la que vamos a montar.

5.- Montar la partición del GRUB (/boot)

Para ello, primeramente hay que crear un punto de montaje, en nuestro caso /mnt/disk,  y luego montarla. En la imagen siguiente se ve los comandos:

GRUB en Proxmox - 6

No obstante, si se quiere verificar que la partición montada contiene los archivos que nos interesa, basta con listar su contenido, como se muestra en la imagen siguiente:

GRUB en Proxmox - 7

Si son los archivos que necesitamos, pes, las condiciones están creadas para reinstalar el gestor de arranque.

6.- Reinstalar el gestor de arranque GRUB 2.02

Para reinstalar el gestor de arranque, basta con ejecutar el comando grub-install, el cual da una salida como esta:

GRUB en Proxmox - 8

Y así completamos la primera parte del proceso. Entonces, luego del reinicio del sistema operativo, tendremos un entorno de GRUB al estilo de un BASH de Linux, el cual nos permitirá arrancar manualmente el sistema con más comodidad, como se ve en la imagen siguiente:

GRUB en Proxmox - 9

7.- Arrancar manualmente el sistema operativo del Proxmox VE 3.3

Para poder arrancar el sistema operativo del Proxmox VE 3.3, es necesario ver un ejemplo de configuración de GRUB de otro hipervisor que haya sido actualizado correctamente para que nos sirva como guía de los comandos que hay que proporcionarle. He aquí dicho ejemplo-guía:

GRUB en Proxmox - 10

Entonces, de este ejemplo solamente necesitamos las líneas “insmod”, “set root”, “linux” e “initrd”, como se ve en la imagen a continuación:

GRUB en Proxmox - 11

Presionamos <ENTER> y comenzaremos a ver el típico arranque de Proxmox, pero con algunos cambios (y la consiguiente sensación de que nos vuelve el alma al cuerpo):

GRUB en Proxmox - 12

Hasta que termina de iniciar:

GRUB en Proxmox - 13

Ahora viene la parte fuerte de la segunda parte.

8.- Reconfiguración del gestor de arranque

Para reconfigurar el gestor de arranque hay que ejecutar el siguiente comando:

# dpkg-reconfigure grub-pc

El cual muestra las mismas pantallas a las que se hace alusión al comienzo de este anexo, donde tenemos la oportunidad de seleccionar correctamente el dispositivo de arranque, o sea, el disco duro principal por donde debe arrancar el hipervisor:

GRUB en Proxmox - 14

Luego de presionar <ENTER> se ve cómo se va reconfigurando el cargador de arranque:

GRUB en Proxmox - 15

Con esto ya todo está terminado. Sólo queda reiniciar el servidor y ver con satisfacción (y con una tremenda sensación de alivio) la nueva pantalla del gestor de  arranque de Proxmox:

GRUB en Proxmox - 16

Presionar <ENTER> y todo vuelve a la normalidad. 🙂

Ah, otra cosa, para los curiosos, la opción “Advanced options for Proxmox Virtual Environment GNU/Linux” no es más que la pantalla de GRUB 1.99 a la que estábamos acostumbrados, lo que ahora sale en negro todo y con la nueva versión de GRUB en su encabezamiento :-):

GRUB en Proxmox - 17

Y ya. Fin. 🙂

Acerca de Hector Suarez Planas

Es Licenciado en Ciencia de la Computación (3 de julio de 2002). Ha sido Administrador de Red en varias organizaciones, Programador y Analista de Sistemas. Actualmente se desempeña como Administrador de Red del Telecentro Tele Turquino de Santiago de Cuba. Tiene experiencia con sistemas Windows y GNU/Linux, Infraestructura de Redes (Cisco, AlliedTelesis, Netgear y HP ProCurve, Vyatta/VyOS), Servidores tanto físicos como virtuales (plataformas VMWare, Proxmox VE y Xen), Sistemas de Seguridad Informática (Snort/Suricata IDS, appliances AlienVault OSSIM), programador (Delphi, C++ Builder, Perl [poco], Python [algo]), entre otras cosas. Actualmente estoy incursionando en todo lo que tiene relación con Cloud Computing (OpenStack) y Centros de Datos. :-)
Esta entrada fue publicada en GRUB, Proxmox VE. Guarda el enlace permanente.

Deja un comentario

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