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
.