criptografia raiz com LUKS: partição raiz não encontrada

criptografia raiz com LUKS: partição raiz não encontrada

O layout do meu único disco é o seguinte: /dev/sda1 for the plaintext boot partition /dev/sda2 for the encrypted root partition

Meu sistema é ArchLinux e eu seguieste guiapara configurar a criptografia root (sem lvm, sem raid). Aqui está o que eu fiz: executei cryptsetupe /dev/sda2mapeei em/dev/mapper/cryptroot

Meu /etc/fstabfica assim: UUID=of /dev/mapper/cryptroot / ext4 rw,relatime,data=ordered,discard 0 1 UUID=of /dev/sda1 /boot ext4 rw,relatime,data=ordered,discard 0 2

No meu, /etc/default/grubalterei uma única linha para ser: GRUB_CMDLINE_LINUX="cryptdevice=UUID of /dev/sda2:cryptroot:allow-discards"

Nos /etc/mkinitcpio.confganchos ficam assim: HOOKS="base udev autodetect modconf block encrypt filesystems keyboard fsck"

Por fim, não esqueci de correr mkinitcpio -p linuxe grub-mkconfig -o /boot/grub/grub.cfgrespectivamente.

Enumerei minhas ações de maneira tão rápida porque já tive sucesso na configuração da criptografia para meu root fs. Então, no final, recebo o seguinte erro:

ERROR: device *UUID of /dev/mapper/cryptroot* not found. Skipping fsck. ERROR: unable to find root device *UUID of /dev/mapper/cryptroot* You are being dropped into recovery shell

O estranho é que ele tenta procurar o não criptografado /dev/mapper/cryptroote ainda assim não me pede a senha (que eu criei cryptsetupno /dev/sda2início). Então, naturalmente, ele não consegue encontrar o dispositivo de bloco não criptografado porque, em primeiro lugar, ele não me pediu sua senha. Você poderia me dizer o que configurei de errado?

Responder1

Tive sucesso com cryptdevice=/dev/disk/by-uuid/<UUID_OF_LOGICAL_DEVICE>:cryptroot root=/dev/mapper/cryptrootas opções adicionais do kernel no GRUB.

É importante notar que se você estiver fazendo isso sem a precisão de copiar e colar o UUID (como em um console/tty), você pode ter digitado isso. Aqui está uma frase simples, que também é uma droga para digitar no console, mas pode ser mais fácil.

sed "s/\(GRUB_CMDLINE_LINUX=\"\)/\1cryptdevice=\/dev\/disk\/by-uuid\/$(blkid -o value -s UUID /dev/<LOGICAL_DEVICE>):cryptroot root=\/dev\/mapper\/cryptroot/" /etc/default/grub > ~/grub.defaults && mv ~/grub.defaults /etc/default/grub

Responder2

Está faltando /etc/crypttab, os ganchos cpio estão apontando para uma partição da qual o sistema operacional não tem conhecimento

/etc/crypttab

%{UUID de /dev/mapper/cryptroot} / ext4 rw,relatime,data=ordenado,discard,luks - 0 1

então execute novamente a atualização do grub

informação relacionada