Isso pode ser resolvido adicionando /etc/crypttab ao initramfs (veja a página de manual para crypttab para o formato de arquivo) usando update-initramfs do pacote Debian initramfs-tools .
Primeiro, monte o disco criptografado. Em seguida, ligue a montagem /dev , /proc , /sys e /run no host no sistema de arquivos raiz com, e. %código%. Então chroot no sistema de arquivos raiz. O arquivo crypttab agora pode ser criado (em qualquer local) ou copiado antes do chrooting.
Para incluir o crypttab no initramfs, crie um script de gancho em mount --bind /dev /mnt/dev que copie o arquivo no initramfs. Observe que /usr/share/initramfs-tools/hooks usa dois tipos de scripts: os scripts de inicialização são executados pelo initramfs initramfs-tools quando o sistema é inicializado, enquanto os scripts de gancho são executados durante a criação da imagem initramfs.
O script de gancho deve ser parecido com isto ( source ):
#!/bin/sh
. /usr/share/initramfs-tools/hook-functions
cp -pnL /path/to/crypttab ${DESTDIR}/etc/crypttab
chmod 644 ${DESTDIR}/etc/crypttab
init expande para a raiz do initramfs que está sendo criado quando o gancho é executado.
Em seguida, execute ${DESTDIR} com as opções apropriadas. Eu usei update-initramfs desde que o host e o destino usaram a mesma versão do kernel. Também usei -k $(uname -r) e -c para especificar onde a imagem é gravada.
Após instalar a nova imagem ou passar seu caminho para o GRUB, o early userspace deve descriptografar o disco e mapear os volumes lógicos contidos antes de tentar montar o volume raiz. O único parâmetro do kernel necessário é o caminho do volume raiz, por ex. -b .