Eu tenho um procedimento que criará manualmente um volume de troca dm-crypt simples, com uma chave aleatória, que parece funcionar. Este é um sistema QEMU/Ubuntu 22.04. No entanto, não há troca após a reinicialização, então provavelmente entendi meu /etc/crypttab
e/ou /etc/fstab
, ou algo mais, incorreto. Qualquer contribuição será apreciada.
A configuração do manual de trabalho é:
# swapoff -a
# cryptsetup --type plain open /dev/mapper/vg0-swap encswap
# mkswap /dev/mapper/encswap
# /etc/init.d/cryptdisks start
# swapon /dev/mapper/encswap
# swapon -s
Filename Type Size Used Priority
/dev/dm-3 partition 2097148 0 -2
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 1G 0 part /boot
├─sda3 8:3 0 13G 0 part
│ ├─vg0-swap 253:0 0 2G 0 lvm
│ │ └─encswap 253:3 0 2G 0 crypt [SWAP]
│ ├─vg0-data 253:1 0 36.1G 0 lvm /data
│ └─vg0-root 253:2 0 10.9G 0 lvm /
└─sda4 8:4 0 36G 0 part
└─vg0-data 253:1 0 36.1G 0 lvm /data
sr0 11:0 1 4M 0 rom
# cryptsetup status /dev/mapper/encswap
/dev/mapper/encswap is active and is in use.
type: PLAIN
cipher: aes-cbc-essiv:sha256
keysize: 256 bits
key location: dm-crypt
device: /dev/mapper/vg0-swap
sector size: 512
offset: 0 sectors
size: 4194304 sectors
mode: read/write
Então, para tornar isso persistente, /etc/crypttab
contém:
swap /dev/mapper/encswap /dev/urandom plain,cipher=aes-xts-plain64,size=256,hash=sha256,swap,noearly
E /etc/fstab
contém:
/dev/mapper/swap none swap sw 0 0
Quando o sistema é inicializado dm-crypt
ou systemd
ultrapassa o tempo limite padrão de 90 anos, parece estar aguardando uma chave que nunca chega. O syslog diz praticamente a mesma coisa: tempo limite de espera /dev/mapper/encswap
. Quando a inicialização é concluída, swapon -s
não mostra nada e lsblk
não mostra um encswap
dispositivo (ou qualquer dispositivo de troca). Alguma ideia?
Você
/etc/crypttab
parece errado:O segundo campo deve ser o dispositivo que contém os dados criptografados, que seria
/dev/mapper/vg0-swap
. Eu não achonoearly
que seja válido, então tenteVocê pode depurar executando
/usr/lib/systemd/system-generators/systemd-cryptsetup-generator
. Isto lê/etc/crypttab
e cria um arquivo de unidade em/tmp
; encontre o arquivo e execute o comando start diretamente nele. Isso lhe dará uma saída de registro/depuração muito mais útil.