O que eu quero alcançar:

O que eu quero alcançar:

O que eu quero alcançar:

  • Ser solicitada uma senha, apenas uma vez durante o boot;
  • As outras partições (não raiz) usam o arquivo-chave dentro do /root/diretório.

O que consegui até agora:

  • (A)O sistema inicializando, mas pedindo a senha duas vezes (uma vez para /e outra para /usr).
  • Ou:(B)o sistema não inicializa, solicita a senha uma vez, mas recusa a montagem, /usrdizendo que não foi possível encontrar o grupo/volume LVM. Eu caio no shell e vejo que /root/.keyfilenão está disponível. /ainda não foi montado.

Configuração

Arquivo:/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

O que não funcionou totalmente

  • Criando arquivos de script para luksOpen manualmente a unidade necessária: aqueles em /etc/initramfs-tools/scripts/local-premountsão chamados antes /de estarem disponíveis, mas aqueles em /etc/initramfs-tools/scripts/local-bottomsão chamados depois de serem abertos /usr(e, portanto, é tarde demais).

Responder1

Sobreesta página wiki(em alemão, infelizmente não encontrei um equivalente em inglês) sugere-se que você use o script /lib/cryptsetup/scripts/decrypt_derivedpara gerar uma chave a partir do dispositivo raiz aberto. Tentarei traduzir as partes importantes, mas não tenhoNÃOtentei 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 

onde <root_name>está o nome do seu dispositivo raiz conforme exibido em /dev/mapper(provavelmente sdc3_crypt) e <usr_dev>o dispositivo onde /usrestá ligado (provavelmente /dev/md0).

A linha para crypttab é

  <usr_name>         UUID=<UUID>          <root_name>           luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

lembre-se de correr

update-initramfs -u -k all 

depois de mudar o crypttab.

Você deve manter uma senha "normal" para o seu dispositivo usr, caso contrário você não poderá abri-lo caso seu dispositivo root esteja danificado.

informação relacionada