¿Cómo configurar grub manualmente en una partición de arranque separada con LVM sobre cifrado de disco completo LUKS?

¿Cómo configurar grub manualmente en una partición de arranque separada con LVM sobre cifrado de disco completo LUKS?

Instalé Linux Mint 17.2, con un disco duro particionado de la siguiente manera:

sdc1 - 100MB ext2 for boot
sdc2 - rest of disk as LUKS -> Physical Volume -> LVM Volume

Los volúmenes lógicos son:

/
/home
swap

El instalador pareció funcionar correctamente, excepto que no pudo instalar el gestor de arranque y me vi obligado a elegir la opción "instalar el gestor de arranque manualmente más tarde".

Tengo el LiveCD ejecutándose, tengo abierto el volumen LUKS y he montado el volumen lógico raíz en /mnt.

Pregunta: ¿Cómo instalo el gestor de arranque?

La mayoría de las instrucciones dicen algo como:

# grub-install --root-directory=/mnt/ /dev/sdc

Pero esto produce:

grub-probe: error: failed to get canonical path of `/cow'.
Installing for i386-pc platform.
grub-install.real: error: attempt to install to encrypted disk without cryptodisk enabled. Set `GRUB_ENABLE_CRYPTODISK=1' in file `/etc/default/grub'..

He editado ambos /etc/default/gruby /mnt/etc/default/grubagregado GRUB_ENABLE_CRYPTODISK=1a ambos, pero el error aún ocurre.

¿Cuál es la forma correcta de configurar esto para que grub se instale en el sdc1 no cifrado, solicite la contraseña y luego inicie el sistema una vez desbloqueado?

ACTUALIZAR

Grub se carga ahora al arrancar, pero no solicita la contraseña ni descifra correctamente. Al agregar las siguientes opciones, /etc/default/grubpuedo hacer que solicite una contraseña, pero no se descifrará cuando se ingrese la contraseña correcta:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`    
GRUB_CMDLINE_LINUX_DEFAULT="cryptopts=target=lvmbase,source=/dev/disk/by-uuid/f7ddbdb6-51c3-4c59-9d1e-7751b0438431,lvm=vg0_root"
GRUB_CMDLINE_LINUX=""

Respuesta1

Normalmente me recupero grubdesde dentro chroot. Entonces, arranca desde una distribución en vivo y...

Abra el volumen LUKS:

# cryprsetup open /dev/sdc2 luks-mint

Activar volúmenes LVM:

# vgscan
# vgchange -a y vg_mint
# lvscan

Monte Mint y prepárate para chroot:

# mount /dev/mapper/vg_mint-root /mnt
# mount /dev/sdc1 /mnt/boot
# mount --rbind /dev /mnt/dev
# mount --rbind /sys /mnt/sys
# mount -t proc none /mnt/proc

chrooten menta:

# env -i HOME=/root TERM=$TERM chroot /mnt bash -l

Configurar e instalar grub, salir chroot:

(chroot)# grub2-mkconfig > /boot/grub2/grub.cfg
(chroot)# grub2-install /dev/sdc
(chroot)# exit

Reiniciar.

PD: reemplace los nombres de VG y LV en consecuencia.

PPS: asumí que Linux Minut usa grub2, si no, elimine el '2' de ambos grubcomandos.

información relacionada