Estou configurando um novo host Linux e quero ter uma partição SWAP criptografada. O arquivo /etc/crypttab
estava faltando, então instalei o pacote cryptsetup
, que o criou. Depois, simplesmente editei esse arquivo manualmente usando VI e, além disso /etc/fstab
, o SWAP reinicializado e criptografado estava disponível. Atualizei todo o sistema, o que resultou na seguinte mensagem de erro:
cryptsetup: ERROR: Couldn't resolve device rpool/ROOT/pve-1
cryptsetup: WARNING: Couldn't determine root device
cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries
nor crypto modules. If that's on purpose, you may want to uninstall the
'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs
integration and avoid this warning.
É importante notar que eu não criptografei nenhuma outra partição nem nada, apenas SWAP. Então, eu simplesmente tentei as coisas e reiniciei com sucesso. Depois tentei fazer o que a mensagem de erro diz e removi package cryptsetup-initramfs
, o que me obrigou a remover o cryptsetup
próprio pacote também. As únicas coisas que restaram foram cryptsetup-bin
e cryptsetup-run
, que eu removi apt autoremove
depois.
E aqui está o que me fez pensar: Após uma reinicialização final e com todos aqueles cryptsetup
removidos, ainda pareço ter SWAP criptografado. Eu esperava que o SWAP não estivesse disponível por falta de arquivos cryptsetup
.
root@pve:~# blkid | grep swap
/dev/mapper/swap_crypt: UUID="ccb3e6b9-ccaa-4c38-b34b-aa434134023c" TYPE="swap"
Então, eu acho que cryptsetup
é realmente apenas sobre o que o nome diz, configurar as coisas? Mas não é mais necessário depois em tempo de execução? Então teria sido bom criar manualmente /etc/crypttab
desde o início usando o VI também, sem instalar cryptsetup
nada?
Claro que isso é apenas porque meu caso de uso não precisa lidar com initramfs
etc. No entanto, eu sempre tive a impressão de que cryptsetup
é necessário durante a inicialização para configurar corretamente, por exemplo, SWAP também.
Aposto que você ainda tem um pacote libcryptsetup:
https://packages.ubuntu.com/hirsute/libcryptsetup12
Systemd tem seu próprio executável embutido, que faz uso da biblioteca, que ele usa para lidar com entradas crypttab:
https://github.com/systemd/systemd/blob/main/src/cryptsetup/cryptsetup.c
https://www.freedesktop.org/software/systemd/man/[email protected]
PS Pode valer a pena mencionar que, se você tiver um sistema de arquivos raiz criptografado e seu initramfs init não for systemd, você ainda precisará do cryptsetup-bin et. al. para abrir/desbloquear o dispositivo de bloco criptografado.