cryptsetup não desbloqueado na inicialização

0

Eu tenho esses dois arquivos:

/ etc / crypttab:

cry1    /dev/sda3   none                    luks
cry2    /dev/sda4   /mounted/sda3/keyfile   luks

/ etc / fstab:

/dev/sda1           /boot    ext2   ro        0   2
/dev/sda2           /        ext4   defaults  0   0
/dev/mapper/cry1    /cry1    ext4   defaults  0   2
/dev/mapper/cry2    /cry2    ext4   defaults  0   2

O Debian é inicializado e a senha do sistema de arquivos sda3 / cry1 é solicitada. Funciona e está montado.

Mas o sda4 / cry2 não está montado, embora eu possa descriptografá-lo e montá-lo facilmente na linha de comando, não apenas com uma senha, mas também com o arquivo de chave.

Acabei colocando a linha de comando em /etc/rc.local, mas não estou feliz com essa organização. Por que o mecanismo crypttab / fstab não está funcionando?

Também: Estou preocupado que a reinicialização ou o desligamento do sistema não desmonte e descriptografe os sistemas de arquivos de forma limpa e que possam corromper o sistema de arquivos. Como posso garantir que tudo seja encerrado corretamente?


fonte

Respostas:

0

Então, /dev/sda3fica luksOpen'ed para /dev/mapper/cry1, o que é montado /cry1? O que é / onde é /mounted/sda3? Parece que deveria ser sda3, talvez esse seja o problema ...

De qualquer forma, se os pontos de montagem estiverem corretos, parece um problema de tempo na montagem. O crypttab deve analisar as entradas sequencialmente, mas não tenho certeza se elas serão montadas antes da próxima entrada, existem algumas opções man crypttabnesse som promissor.

Tente adicionar este à cry2entrada:

   noearly
       The cryptsetup init scripts are invoked twice during the boot process -
       once before lvm, raid, etc. are started and once again after that.
       Sometimes you need to start your encrypted disks in a special order.
       With this option the device is ignored during the first invocation of
       the cryptsetup init scripts.

E tente também esta opção e verifique os logs para ver qual é o problema:

   loud
       Be loud. Print warnings if a device does not exist. This option
       overwrites the option quiet.

Essa é uma ideia se você não encontrar outra maneira além de executar seu próprio script personalizado:

   keyscript=<path>
       The executable at the indicated path is executed with the key file from
       the third field of the crypttab as its only argument and the output is
       used as the key. This also works with encrypted root filesystems via
       initramfs if the executable is self-contained (i.e. an executable which
       does not rely on any external program which is not present in the
       initramfs environment).

No desligamento, tudo deve ser desmontado; se alguns sistemas de arquivos não estiverem, pode ser um problema mais geral para procurar, não tenho certeza se isso estaria relacionado automaticamente à criptografia.

Xen2050
fonte