Hacía tiempo que la Muerte Roja devastaba el país. Nunca hubo peste tan mortífera ni tan horrible. La sangre era su emblema y su sello, el rojo horror de la sangreLa Máscara de la Muerte Roja de Edgar Allan Poe

imgo

Ayer un cliente me solicitó apoyo, ya que, después de un reinicio de sanidad, su server no arrancaba y le aparecía una pantalla roja con un mensaje de error:

Illegal OpCode

Buscando un poco en google, encontré que este mensaje tenía dos escenarios:

Recordando el proceso de arranque del sistema:

linux boot process

Todo indicaba que, por alguna razón (aunque el inge de HP no lo admitía), el disco había modificado algún identificador y la BIOS no encontraba el MBR, por lo que GRUB no iniciaba, enviando la famosa pantalla roja. La solución más rápida, entonces, era reinstalar GRUB.

Después de un buen rato, ya que convencí al inge de HP que actualizará la ILO porque su certificado estaba caducado, pude conectarme a la consola remota e iniciar la reinstalación:

1. Con el disco de instalación, ejecute el linux rescue:

Screenshot from 2015-11-13 12-18-36

2. Después de seleccionar el idioma, el teclado y que no utilizará las interfaces de red, el sistema rescate buscaría en el disco la instalación y lo montaría en un path temporal de trabajo:

Screenshot from 2015-11-13 12-20-13

Screenshot from 2015-11-13 12-20-30

3. Tras una breve revisión, encontramos el dispositivo donde debería encontrarse GRUB:

Screenshot from 2015-11-13 12-22-47

4. Al ejecutar el comando para reinstalar GRUB, mandaba un mensaje de error:

sh-3.2# grub-install /dev/vda1
The file /boot/grub/stage1 not read correctly

5. Para solucionar este mensaje, se desmontó la partición y se ejecutó un fsck:

Screenshot from 2015-11-13 12-27-53

6. Después de reparar error, remontamos la partición y se realizó un respaldo del directorio /boot:

sh-3.2# tar czvf boot.bkp.tar.gz boot/

Screenshot from 2015-11-13 12-34-11

7. Desmontamos nuevamente y se formateo la partición como ext3 :

Screenshot from 2015-11-13 12-35-17

8. Restauramos el respaldo y realizamos nuevamente la instalación de GRUB:

sh-3.2# tar xzvf boot.bkp.tar.gz
...
sh-3.2# 
sh-3.2# grub-install /dev/vda1
The file /boot/grub/stage1 not read correctly

9. Como el error se mantenía, ejecutamos la instalación sin grub-install y reiniciamos el server:

sh-3.2# grub 
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
sh-3.2# reboot

10. Al reiniciar, el server ya cargaba GRUB, pero mando un mensaje de error:

Screenshot from 2015-11-13 12-47-41

Screenshot from 2015-11-13 12-48-47

11. Este error se debía a que en el archivo /etc/fstab el montaje de /boot apuntaba a la etiqueta del dispositivo marcado como /boot. Como formateamos esa partición, la etiqueta ya no correspondía con el UUID del dispositivo. Para solucionarlo, volvemos a montar el disco de rescate y editamos el archivo /etc/fstab, apuntándolo al dispositivo correctamente:

Screenshot from 2015-11-13 12-50-50

Screenshot from 2015-11-13 12-51-44

12. Al reiniciar, el server ya arrancaba de forma correcta:

Screenshot from 2015-11-13 12-56-09

Screenshot from 2015-11-13 12-57-23

Este caso requirió de mucho análisis ya que, aunque la respuesta se veía sencilla, tuvo complicaciones que la hicieron más compleja y quise compartir con ustedes como la solucionamos.

Les comparto, además, los artículos de la KB de Red Hat utilizados:

HP server fails to boot, getting a Red Screen with Illegal Opcode
HP Server will not boot – Illegal Opcode
How to re-install GRUB bootloader on the Master Boot Record(MBR) in rescue mode?
How to fsck in rescue mode for Red Hat Enterprise Linux
‘grub-install’ fails with error ‘The file /boot/grub/stage1 not read correctly.’

Espero les sirva…

Plus: Como es el Buen Fin en México, como una oferta, como una promoción les vengo ofreciendo de manera gratuita el texto mencionado en el intro. Espero les guste 😉