Peleándome con el arranque EFI

29 de agosto de 2016

Con esto de buscar trabajo, he acabado metido en un curso de seis meses para la obtención de un certificado de profesionalidad en programación de sistemas informáticos. No sé cómo evolucionará el curso pero, un mes después, he tenido tiempo suficiente para, durante el tiempo que estoy en el aula, y sin dejar de hacer lo que tengo que hacer, aprender algo sobre iptables, j2EE y btrfs. Y es esto último y su capacidad para emplear múltiples dispositivos en modos raid lo que me lleva a escribir estas líneas.

Aunque mis inicios (los reales) en el mundo linux empezaran allá por el 2004 con redhat7, ha sido con debian y algunas de sus derivadas donde me he encontrado más cómodo durante años. Así y todo, me interesa aprender esas grandes pequeñas diferencias que hay con otras familias de distros. Es por ello que, hace tiempo que instalé funtoo que, siendo una gran distro, necesita una gran dedicación, tanto al mantenimiento, como al aprendizaje, para sacarle todo su jugo.

Ahora, y con la idea en mente de las certificaciones LPIC, he vuelto al vicio de instalar distros, probar nuevos sistemas de archivos, y como no, cargarme el arranque del sistema de cuando en vez.

Es por ello que ayer mismo, mientras conseguía instalar un Fedora24 en un btrfs raid0, también conseguía, eficiente de mí, destruir el arranque EFI de mi sistema, cosa que, no dándome miedo, me da bastante pereza arreglar.

Ya recuperar un grub, cuando has machacado el MBR, es un poco coñazo, sobre todo si no tienes a mano un LiveCD (o liveUSB) pero, el EFI, es todavía menos intuitivo.

Para la restauración del EFI, lo primero fue conseguir arrancar el equipo, para ello usé SuperGrubDisk que encontró rápidamente la manera de poner en marcha los sistemas instalados.

Arrancado el sistema, abro un terminal, y como administrador, tecleo lo siguiente:

# efibootmgr -c -d /dev/sd<X> -p <Y> -l \
/boot/grub/efi/EFI/<imagen>.efi -L <Etiqueta>

Donde:

  • <X> es la letra de la unidad
  • <Y> es el número de la partición
  • <imagen> es el nombre de la imagen de arranque; puede ser grub.efi, boot.efi…
  • <Etiqueta> es el nombre con el que se reconocerá el arranque por parte de “BIOS”, en realidad EFI

Tras esto, podemos reiniciar, entrar en el “BIOS”, y seleccionar la entrada de arranque que acabamos de crear, por su etiqueta. Aquí no voy a entrar, son muy diferentes entre sí.

Y eso es todo. Espero que nunca te haga falta leer este ladrillo pero, de ser así, también espero que te sea útil.


EDITO:

Pensaba que estaba todo hecho pero, no. Y es que resulta que mi amado Devuan no arranca después de instalar la imagen efi de Fedora. El error: no encuentra los módulos “linux” e “initrd“.

Investigo un poco en Fedora buscando los módulos, pero nada. Decido mirar en “grub.cfg” y veo que en la configuración de arranque para Fedora ,en lugar de “linux” e “initrd“, emplea “linuxefi” e “initrdefi“. Pues nada, edito el grub.cfg con esos cambios, y todo arranca como la seda.

¡Ya está todo listo! ¡A ver qué me cargo ahora!