Você pode criar um com cryptsetup
(ou, eu acho, dmsetup
também funciona).
# truncate -s 8M luksblock.img
# cryptsetup luksFormat luksblock.img
# cryptsetup luksOpen luksblock.img luksblock
# cryptsetup luksSuspend luksblock
# cat /dev/mapper/luksblock
( ... no output because it's blocked / suspended ... )
O que parece em dmsetup
:
# dmsetup info luksblock
Name: luksblock
State: SUSPENDED
Read Ahead: 256
Tables present: LIVE
Open count: 0
Event number: 0
Major, minor: 253, 71
Number of targets: 1
UUID: CRYPT-LUKS1-87bc6d9fd7fa419bbf15425c062d0916-luksblock
Você pode usar dmsetup
para suspender um dispositivo:
dmsetup suspend luksblock
Portanto, deve ser possível criar um mapeamento de dispositivo suspenso que não precise ser apoiado por um arquivo luksblock.img
em primeiro lugar, mas vou deixar esse bit final para você. :-P
É claro que essa abordagem tem uma grande desvantagem. Este dispositivo será listado entre todos os outros dispositivos de bloco em /proc/partitions
, e tudo o que monitora ou detecta dispositivos (como o LVM em busca de novos volumes físicos) tentará ler e ficar preso no bloco também. Isso impedirá que os dispositivos sejam detectados (porque os processos estão parados) e a máquina pode não mais ser reinicializada (porque os processos de procedimentos de desligamento estão parados).