Lo que quiero lograr:
- Se le solicita una contraseña, solo una vez durante el arranque;
- Las otras particiones (no raíz) usarán el archivo de claves dentro del
/root/
directorio.
Lo que he logrado hasta ahora:
- (A)El sistema se inicia, pero solicita la contraseña dos veces (una para
/
y otra para/usr
). - O:(B)el sistema no arranca, solicita la contraseña una vez, pero luego rechaza el montaje
/usr
diciendo que no puede encontrar el grupo/volumen LVM. Me dejan caer al caparazón y puedo ver que/root/.keyfile
no está disponible./
Aún no se ha montado.
Configuración
Archivo:/etc/crypttab
Caso A
sdc3_crypt /dev/sdc3 none luks md0_crypt /dev/md0 none luks
Caso B
sdc3_crypt /dev/sdc3 none luks md0_crypt /dev/md0 /root/.keyfile luks
Lo que no funcionó totalmente
- Creación de archivos de script para luksAbra manualmente la unidad requerida: los que están en
/etc/initramfs-tools/scripts/local-premount
se llaman antes de/
que esté disponible, pero los que están en/etc/initramfs-tools/scripts/local-bottom
se llaman después de que quiera abrirse/usr
(y por lo tanto, es demasiado tarde).
Respuesta1
Enesta página wiki(En alemán, lamentablemente no encontré un equivalente en inglés) se sugiere utilizar el script /lib/cryptsetup/scripts/decrypt_derived
para generar una clave desde el dispositivo raíz abierto. Intentaré traducir las partes importantes, pero tengoNOProbé el procedimiento.
Para agregar la clave, tendrías que ejecutar (como root)
mkdir /mnt/ram && mount -t ramfs -o size=1m ramfs /mnt/ram && chmod 600 /mnt/ram
/lib/cryptsetup/scripts/decrypt_derived <root_dev> > /mnt/ram/tmp.key && cryptsetup luksAddKey <usr_dev> /mnt/ram/tmp.key && rm /mnt/ram/tmp.key
umount /mnt/ram && rmdir /mnt/ram
¿Dónde <root_name>
está el nombre de su dispositivo raíz como se muestra en /dev/mapper
(probablemente sdc3_crypt
) y <usr_dev>
el dispositivo donde /usr
está (probablemente /dev/md0
)?
La línea para crypttab es
<usr_name> UUID=<UUID> <root_name> luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
recuerda correr
update-initramfs -u -k all
después de cambiar crypttab.
Debe mantener una contraseña "normal" para su dispositivo usuario; de lo contrario, no podrá abrirlo en caso de que su dispositivo raíz esté dañado.