Em esta página wiki (em alemão, infelizmente não encontrei um equivalente em inglês) é sugerido que você use o script /lib/cryptsetup/scripts/decrypt_derived
para gerar uma chave a partir do dispositivo raiz aberto. Vou tentar traduzir as partes importantes, mas eu NÃO tentei o procedimento.
Para adicionar a chave, você teria que executar (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
em que <root_name>
é o nome do seu dispositivo raiz, conforme exibido em /dev/mapper
(provavelmente sdc3_crypt
) e <usr_dev>
do dispositivo em que /usr
está ativado (provavelmente /dev/md0
).
A linha para o crypttab é
<usr_name> UUID=<UUID> <root_name> luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
lembre-se de executar
update-initramfs -u -k all
depois de alterar o crypttab.
Você deve manter uma senha "normal" para o seu dispositivo usr, caso contrário você não poderá abri-la caso seu dispositivo root esteja danificado.