Eu tenho um dispositivo luks e ele é aberto na inicialização por /etc/crypttab. lsblk se parece com isso:
sdc 8:32 1 114,6G 0 disk
└─luks-672dcc74-d002-47dc-b61b-525baf91dc7c 253:2 0 114,6G 0 crypt
Eu monto o dispositivo assim:
pmount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
Eu desmonto assim (ambos funcionam):
pumount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
pumount /media/mapper_luks-672dcc74-d002-47dc-b61b-525baf91dc7c
Mas depois de pumount lsblk fica assim:
sdc 8:32 1 114,6G 0 disk
Por que pumount fechou o dispositivo luks? Na página de manual do pumount, diz:
Normally, pumount will not luksClose (see cryptsetup(1)) a device pmount did not open.
O dispositivo luks foi aberto por /etc/crypttab na inicialização e não por pmount! Por que pumount fecha o dispositivo luks? Isso é um inseto?
Estou no debian bullseye.
Nota: não estou familiarizado com o
pumount
, e nem tenho uma instalação do Debian disponível para teste, então peguei o código-fonte do Debian e fiz suposições malucas com base no que encontrei lá…pumount
tem uma opção,--luks-force
para fechar dispositivos LUKS que não abriu (como você já citou na página de manual).No entanto, a partir do código-fonte, parece haver um erro na implementação.
Portanto,
pumount.c
há este pouco de análise de opção:...e é isso! A opção define a
luks_force = 1
variável. Caso contrário, é inicializado como 0.Mas isso não importa nem um pouco, já que... essa variável não é usada em nenhum lugar.
Dentro
luks.c
há este pedaço de código:Assim será
luksClose
se um arquivo de bloqueio estiver presente ou seforce
for verdadeiro.E esta função é chamada
pumount.c
assim:Então aí está, não importa o que você faça,
force
é sempre definido como 1 e fecha o dispositivo LUKS.Essa última linha provavelmente é onde deveria estar usando a
luks_force
variável em vez de 1.