Mi problema con Arch Linux
Cómo arreglé un GRUB roto en un disco Arch Linux completamente cifrado después de un cambio de configuración erróneo.
La semana pasada tuve un problema con mi instalación de Arch Linux. Llevo más de 4 años usando Arch y debo decir que es la distribución más estable que he usado en más de 14 años. Sin embargo, cometí el error de modificar la configuración de Grub (te odio Nvidia, te odio).
Tengo una instalación bastante especial de Arch Linux con el disco completamente cifrado sobre GPT, lo que causó uno de los problemas. Primero, después de modificar la configuración de Grub, la guardé, la actualicé y reinicié el PC (al menos había guardado una copia de seguridad de mi antigua configuración de Grub). Tras eso, solo tuve un bucle infinito de reinicios.
Normalmente aparecería un mensaje para descifrar el disco y luego se mostraría Grub. Sin embargo, después de mis cambios, tras introducir la contraseña de descifrado, Grub simplemente crasheaba y el PC empezaba a reiniciarse.
El proceso de recuperación
Arranqué desde un Live CD de Arch Linux y seguí estos pasos para recuperar el sistema.
Paso 1 — Identificar las particiones
lsblk
Esto muestra todas las unidades y particiones. Identifica cuál es tu partición cifrada (en mi caso /dev/sda1).
Paso 2 — Descifrar la partición
cryptsetup luksOpen /dev/sda1 cryptdiskb4rt
Introduce tu contraseña de LUKS. Esto crea un dispositivo de bloque mapeado en /dev/mapper/cryptdiskb4rt.
Paso 3 — Detectar el grupo de volúmenes LVM
vgscan
Paso 4 — Activar los volúmenes lógicos
vgchange -ay
Paso 5 — Listar los volúmenes lógicos
lvscan
Identifica los puntos de montaje — busca el volumen root (/).
Paso 6 — Montar el sistema de archivos root
mount /dev/vg/root /mnt
Paso 7 — Vincular los directorios del sistema
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
Estos son necesarios para que chroot funcione correctamente.
Paso 8 — Entrar en chroot
chroot /mnt /bin/bash
Ahora estás operando dentro de tu instalación de Arch como si hubiera arrancado normalmente.
Paso 9 — Reinstalar GRUB
grub-install /dev/sda
Paso 10 — Restaurar la configuración
Edita /etc/default/grub y revierte los cambios que causaron el problema. En mi caso, había añadido parámetros del kernel para Nvidia que rompieron el proceso de arranque del cifrado.
Paso 11 — Regenerar la configuración de GRUB
grub-mkconfig -o /boot/grub/grub.cfg
Paso 12 — Salir y reiniciar
exit
reboot
Lección aprendida
No edites la configuración de GRUB a menos que estés completamente seguro de lo que estás cambiando. Si debes hacerlo, guarda siempre una copia de seguridad antes, y ten un Live CD a mano por si algo sale mal.
El cifrado completo del disco añade una capa extra de complejidad al proceso de recuperación — la partición debe descifrarse antes de que puedas montarla, y LVM necesita activarse antes de que los volúmenes sean accesibles.
Una vez que entiendes los pasos, la recuperación es sencilla. El bucle de reinicio se veía aterrador, pero la instalación estaba completamente intacta.
Comentarios
Stay in the loop
New posts about Linux, debugging, and systems programming. No noise, no spam — just signal.