Eu gostaria de usar dm-crypt com btrfs, por causa da proteção bitrot deste sistema de arquivos. O que me preocupa é que o RADI1 está no nível do sistema de arquivos acima do dm-crypt, portanto, se eu escrever um arquivo, ele será criptografado duas vezes.
HDD.x ⇄ dm-crypt.x ↰
btrfs-raid1 ⇒ btrfs
HDD.y ⇄ dm-crypt.y ↲
Existe uma maneira de criptografar os dados apenas uma vez, por exemplo dm-crypt.x
, e armazenar exatamente a mesma cópia em ambos os HDDs? (De acordo com o FAQ do btrfs , preciso do encryptfs para fazer algo assim:
HDD.x ↰
btrfs-raid1 ⇒ btrfs ⇄ ecryptfs
HDD.y ↲
mas prefiro usar dm-crypt se for possível não obter a penalidade de desempenho extra usando o btrfs RAID1.
Com BTRFS atualmente não existe tal opção diretamente integrada. Houve conversas no passado na lista de discussão do BTRFS sobre a adição de suporte para a API de criptografia VFS (a mesma coisa usada por ext4 e F2FS para sua criptografia de arquivo transparente), mas isso parece nunca ter ido a lugar nenhum.
No momento, a única maneira de conseguir o que você deseja é colocar a replicação fora do BTRFS, o que elimina a maioria dos benefícios da soma de verificação no BTRFS. eCryptFS é uma opção, mas quase sempre será mais lento do que usar dm-crypt no BTRFS. EncFS pode ser uma opção, mas não sei nada sobre seu desempenho (também é baseado em FUSE e, como regra geral, as camadas FUSE sobre BTRFS são dolorosamente lentas).
Como alternativa a tudo isso, porém, você pode considerar o uso de um sistema de arquivos mais convencional em cima do RAID regular (através de MD ou LVM), coloque-o em cima do alvo dm-integrity (que faz a verificação criptográfica dos dados armazenados, essencialmente funcionando como uma versão gravável do destino dm-verity que o Android e o ChromeOS usam para verificar a integridade de suas partições do sistema) e, em seguida, colocá-lo em cima do dm-crypt. Fazer isso requer um kernel com suporte a dm-integrity (não me lembro exatamente quando foi adicionado, mas foi no ano passado) e uma versão do cryptsetup que o suporte. Isso fornecerá o mesmo nível de verificação de integridade que a criptografia no estilo AEAD oferece. Infelizmente, porém, para fornecer a mesma capacidade de correção de erros que o BTRFS oferece,
A configuração a seguir descreve como configurar o RAID 1 dentro de um único contêiner LUKS na mesma unidade.
Instruções de vídeo: https://youtu.be/PWxxV98DB4c
Desmonte se necessário (use discos)
Veja com qual dev estamos trabalhando
Supondo que estamos trabalhando com sdb - verifique novamente - faça backup de todos os dados caso algo dê errado.
Criar o contêiner luks
Abra o recipiente
Você pode alterar mount_name para o que quiser.
Opcional:
LVM2 PV Criar:
Opcional Verifique se o PV foi criado:
Criar grupo de volumes
Criar volumes lógicos
Mude
%
para o que for necessário. mude part_one part_two para o que você gostavá para discos: eles serão montados como:
Crie a invasão:
laptop_backup_c é um rótulo. Mude para o que você gosta.
monte qualquer um deles usando discos gnome. Ele aparecerá em
usuário é seu nome de usuário
OU, crie a pasta de montagem, monte-a e depois exclua a pasta de montagem
Desmontar:
Feche todos os volumes abertos em um grupo
Feche o recipiente luks
Agora, quando você inserir a unidade, ela solicitará a senha apenas uma vez. Seu raid 1 será montado
/media/<user>/laptop_backup_c
se você montar qualquer um dos volumes lógicos usando discos gnome ou CLI (não mostrado aqui).