
O que estou tentando alcançar é ter um sistema de arquivos raiz criptografado em um Raspberry Pi (executando Raspian Buster) que seja desbloqueado na inicialização via ssh. Cheguei bastante longe adaptandoum tutorial para Kali linuxe funcionou pelo menos uma vez, mas ainda não sobreviveu às atualizações do kernel.
Um dos problemas é que esta configuração está usando um initramfs que é referenciado /boot/config.txt
por
initramfs initramfs.gz followkernel
e isso precisa ser atualizado após uma atualização do kernel chamando manualmente, por exemplo
mkinitramfs -o /boot/initramfs.gz 4.19.118-v7+
onde 4.19.118-v7+
depende da versão atual do kernel e do tipo de hardware Raspberry Pi usado. Claro, quero que isso seja feito automaticamente sempre que apt upgrade
instalar um novo kernel.
Foi aqui que fiquei preso com 2 problemas:
- A) Onde e como conecto esse processo de atualização de maneira adequada?
- B) Como determino a versão correta do kernel a ser usada?
Em relação a A) cheguei ao ponto de aprender que raspberrypi-kernel.postinst
executa /etc/kernel/postinst.d/
. Isso novamente chama /usr/sbin/update-initramfs
o que no final chamará mkinitramfs
. Onde fiquei confuso foi esse código em /usr/sbin/update-initramfs
:
set_initramfs()
{
initramfs="${BOOTDIR}/initrd.img-${version}"
}
Ele determina o nome do arquivo para o initramfs. Nenhum arquivo desse tipo foi gerado durante a atualização e não tenho certeza se estou no caminho certo, poisWikipédiadiz que o esquema init.rd foi substituído pelo esquema initramfs. No entanto, não consegui encontrar uma boa documentação que descreva como as coisas deveriam acontecer após a atualização de um módulo do kernel. (Bons links apreciados).
Então, minha pergunta é: onde é um bom lugar para inserir um script que execute o mkinitramfs
comando? Devo modificar /etc/kernel/postinst.d/
? Esta solução será estável nas próximas versões do Debian?
Em relação a B), é fácil obter versões de kernel disponíveis com
> ls -l /lib/modules/ | awk -F" " '{print $9}'`
5.4.51+
5.4.51-v7+
5.4.51-v7l+
5.4.51-v8+
Mas como seleciono automaticamente o correto para o hardware atual? Para um Pi3B+ isso seria 5.4.51-v7+
. Existe uma maneira de determinar isso automaticamente?
Muito obrigado pela sua ajuda!
Responder1
Parece que o initramfs deve ser habilitado configurando INITRD=Yes
e /etc/default/raspberrypi-kernel
adicionando um script pós-atualização /etc/initramfs/post-update.d/
para atualizar /boot/config.txt
como proposto emAtualizar intramfs após atualização do kernel#608.
Eu espero que isso funcione ...