Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Recuperar/reinstalar GRUB BIOS en volúmenes cifrados con LUKS

BocaDePez
BocaDePez

Hace poco he particionado el disco duro para instalar Windows 10 (lo siento pero otras "personas humanas" también utilizan mi ordenata y exigen Windows Genuine).

Para no perder la tradición, Guarrindows sigue haciendo desaparecer el GRUB. La última vez que recuperé GRUB en BIOS fue hace unos 6 años. Por aquel entonces funcionaba bien la recuperación por consola y yo todavía no cifraba el directorio root.

Sé que usando el modo rescate del disco de instalación de mi distribución se repara o reinstala perfectamente el GRUB pero a mí me gustaría saber si es posible seguir reparando por línea de comandos. Así procedo desde un LiveUSB:

  • Descifro el directorio /root cifrado con LUKS (el directorio /boot está abierto):

# cryptsetup luksOpen /dev/sda4 volumen_descifrado

  • Procedo a montar el volumen descifrado:

# mount /dev/mapper/volumen_descifrado /mnt

  • Monto el árbol de directorios:
# mount --bind /dev /mnt/dev
# mount --bind /dev/pts /mnt/dev/pts
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
  • Doy permisos al punto de montaje:

# chroot /mnt

  • Procedo a reinstalar GRUB en el disco maestro:

# grub-install --recheck /dev/sda

  • La consola indica que todo ha sido correcto. Procedo a reiniciar:

# reboot

  • No funciona. Aparece el prompt de grub_rescue>
  • grub_rescue> reconoce el disco maestro (hd0) pero evidentemente no reconoce la partición /root con ext4 porque está cifrada con LUKS

Un saludo.

BocaDePez
BocaDePez

Gracias por su respuesta pero la opción --modules="part_gpt part_msdos" no es reconocida por grub-install.

Por otro lado mi placa base tiene 16 años y no es compatible con UEFI.

Un saludo.

superllo

Yo uso la herramienta de Ubuntu. Algún día tendré que usar la consola para algo y no me acordaré.

🗨️ 1
BocaDePez
BocaDePez

Gracias por su respuesta.

Yo uso la que incorpora el CD de Debian pero sería interesante poder hacerlo por consola.

Un saludo.

BocaDePez
BocaDePez

No es buena idea cifrar la partición root. Suelo cifrar solo /var y /home. De todas maneras el mbr deberia quedar sin cifrar

🗨️ 7
BocaDePez
BocaDePez

Gracias por su respuesta.

Yo lo cifro todo menos /boot (va en una partición física aparte). Cifrar solo /var y /home protege bastante pero yo tengo scripts instalados en /usr con información sensible de identificación de discos virtuales.

Un saludo.

🗨️ 2
BocaDePez
BocaDePez

No entiendo. Si /boot está sin cifrar, cómo es que grub no consigue cargar?

🗨️ 1
BocaDePez
BocaDePez

Gracias por su respuesta.

Eso me pregunto yo también. El caso es que no se repara.

Un saludo.

pepejil

/root no deja de ser un espacio de usuario para root. Tiene la misma función que cualquier directorio de usuario en /home, no veo por qué no cifrarlo.

De todas formas, si estoy de acuerdo en que es absurdo cifrar todo el sistema operativo. Con cifrar los espacios de usuario es suficiente.

🗨️ 3
BocaDePez
BocaDePez

Creo que cuando dice /root realmente quiere decir /

BocaDePez
BocaDePez

Gracias a los dos por sus respuestas.

Sí, me refería a /, el directorio raíz. Mis disculpas.

Un saludo.

🗨️ 1
pepejil

Ah vale, cierto. Disculpas yo también.

Si solo cifras /root y /home es suficiente.

Panto

Hace un par de meses arranqué un disco externo por USB con W10 y funciono perfectamente, pero al apagar y arrancar de nuevo, el interno con mi Elementary no arrancaba… Las herramientas para recuperar el Grub no funcionaron, acabé instalando todo desde cero, espero que tengas más suerte y que lo soluciones.

Un saludo.

🗨️ 1
BocaDePez
BocaDePez

Gracias por compartir su experiencia.

En mi caso, afortunadamente puedo recuperar perfectamente GRUB con el modo rescate del disco de instalación de mi distribución pero sería deseable aprender a hacerlo por consola.

Un saludo.

License2Harm

Hace mucho que no trasteo con grub pero, ¿ No había que ejecutar también update-grub ?

🗨️ 5
BocaDePez
BocaDePez

Gracias por su respuesta.

He probado varios métodos, incluidos los que llevan update-grub, pero sin resultado.

Un saludo.

🗨️ 4
License2Harm
1

Es raro. Es el sistema del ramdisk el que debe abrir el volumen cifrado para después poder iniciar el sistema y no parece que eso ocurra en tu caso.

Viendo tu mensaje parece que no pero, ¿ usas volúmenes lógicos ?

¿ Aparece tu volumen cifrado en /etc/crypttab ¿

🗨️ 3
BocaDePez
BocaDePez
BocaDePez
BocaDePez

Gracias por su respuesta.

Todas mis particiones son físicas.

Un saludo.

vukits

No hay que indicar root-directory cuando reinstalado grub?

O eso era con la antigua version?

🗨️ 5
BocaDePez
BocaDePez

Gracias por su respuesta.

Aunque añada --root-directory ni se entera.

Un saludo.

🗨️ 4
License2Harm

¿ y que le pones como parámetro ?

🗨️ 3
BocaDePez
BocaDePez

--root-directory=/mnt, ya que es ahí donde tengo montada la partición LUKS descifrada previamente.

Un saludo.

🗨️ 2
vukits
🗨️ 1
BocaDePez
BocaDePez
License2Harm

Doy permisos al punto de montaje:

# chroot /mnt

Esto no da permisos, cambia el directorio "root" del sistema para que la ejecución de grub sea sobre el sistema que tienes en tu disco duro.

🗨️ 1
BocaDePez
BocaDePez

Gracias por la corrección.

Un saludo.

BocaDePez
BocaDePez
1

Mi agradecimiento a todas las personas que han contestado a mi mensaje.

Finalmente he usado el "Modo rescate" del USB de instalación de Debian Buster. Un asistente te va guiando por todo el proceso de reinstalación del arranque GRUB y lo deja como nuevo. Lástima que el asistente no muestre una línea de comandos del proceso.

Un saludo.