Eu configurei duas unidades criptografadas luks para montar automaticamente na inicialização do sistema (usando crypttab
e uma chave de arquivo luks). Funciona bem, mas infelizmente, se eu desconectar uma das unidades, o processo de "descriptografia automática" não é executado quando eu as conecto ao meu PC novamente (executando o Fedora) e tenho que fazer a montagem manualmente após a desmontagem. HQual comando posso usar para acionar o mesmo processo que o systemd aciona na inicialização do sistema para montar automaticamente e descriptografar as unidades na hora, sem mais envolvimento meu? Ou, na falta disso, como posso obter o systemd para descriptografar automaticamente e montá-los nessas circunstâncias?
Para referência, este é o tutorial que usei para configurar as unidades: https://www.golinuxcloud.com/mount-luks-encrypted-disk-partition-linux/
Cada entrada
/etc/crypttab
é convertida automaticamente pelo systemdsystemd-cryptsetup-generator
em uma unidade na inicialização ou quando você executa osudo systemctl daemon-reload
. Por exemplo, supondo que o sistema de arquivos LUKS tenha um UUID de1111...
(não vou mostrá-lo por completo) a entradairá gerar o arquivo
/run/systemd/generator/[email protected]
, com uma dependênciaBindsTo=dev-disk-by\x2duuid-1111....device
e assim por diante. Esta unidade é executadacryptsetup
quando o UUID aparece em um novo disco.Da mesma forma, cada entrada
/etc/fstab
é automaticamente convertida pelo systemdsystemd-fstab-generator
em uma unidade. Por exemplo, a entradairá gerar o arquivo
/run/systemd/generator/mnt-mytest.mount
, que (talvez via udev) fará uma montagem sempre que o arquivo/dev/mapper/mytest
aparecer (será criado porcryptsetup
).Você pode verificar o status dessas duas Unidades com
Normalmente, quando a descriptografia e a montagem forem feitas com sucesso, elas serão exibidas respectivamente como
Para remover o disco de forma limpa, primeiro dê os comandos
Quando este disco for conectado novamente, ele será montado automaticamente.
Se o disco montado for removido sem fazer isso, as Unidades podem ser deixadas em estado de falha. Siga os logs do systemd com
journalctl -f
para ver as mensagens.Às vezes, ao desconectar sem desmontar, o kernel emite mensagens sobre erros de i/o no sistema de arquivos, mas consegue desmontar o sistema de arquivos com sucesso, e o crypt detach fecha o dispositivo com sucesso. Nesse caso, quando o dispositivo for conectado novamente, ele deverá ser montado automaticamente com sucesso, sem intervenção.
No entanto, às vezes, após os erros de i/o, o kernel decide remontar o sistema de arquivos somente leitura. Isso causa um problema para o comando crypt detach, que falha porque o dispositivo está ocupado (montado, quando deveria ter sido desmontado pelo systemd). Parece haver um problema de corrida, pois o sistema de arquivos geralmente acaba desmontado. Quando o dispositivo é conectado novamente, a descriptografia informa que o volume já está ativo, portanto, não parece acionar a montagem.
Nesse caso, o que parece funcionar é limpar o estado de falha do trabalho de parada e executar o comando detach manualmente. Quando o dispositivo é conectado novamente, o mecanismo de descriptografia é iniciado de forma limpa e a montagem é concluída. Os comandos são
Há também uma
dev-mapper-mytest.device
unidade que pode ser verificada quanto ao status. Ele permanece no estado ativo se a desconexão falhar, mas ficará inativo após o comando de desconexão manual acima.