Como recuperar dados de um Linux MD RAID 6 com criptografia LUKS e fscrypt
A recuperação de dados de Linux MD RAID 6, adicionalmente protegido por criptografia LUKS e fscrypt, é um processo complexo em várias camadas, no qual é importante determinar corretamente o estado do array RAID, a sequência de conexão dos discos e as camadas de criptografia. Um erro em qualquer etapa, desde a montagem incorreta do array até a tentativa de montar um sistema de arquivos danificado, pode complicar significativamente a recuperação subsequente. Este artigo descreve uma abordagem segura para diagnosticar e reconstruir RAID 6, abrir o contêiner LUKS e trabalhar posteriormente com dados protegidos por fscrypt.

- Configuração de RAID, LUKS2 e fscrypt
- Conexão dos discos do array RAID
- Como recuperar dados de Linux RAID 6
- Conclusão
- Perguntas frequentes
- Comentários
A natureza específica dessa configuração é que os dados passam por várias camadas de abstração ao mesmo tempo. Primeiro, os discos físicos são combinados em um array RAID 6 por meio do Linux MD; em seguida, o array resultante pode conter um contêiner LUKS criptografado; e, dentro do sistema de arquivos, diretórios ou arquivos individuais podem ser adicionalmente protegidos com fscrypt. Portanto, mesmo discos totalmente funcionais e um RAID montado corretamente ainda não garantem acesso aos dados necessários.
Durante o processo de recuperação, é fundamental seguir a sequência correta de ações. Antes de qualquer tentativa de gravação nos discos, seu estado deve ser avaliado, os parâmetros do array RAID devem ser identificados, os metadados devem ser verificados e, se possível, devem ser criadas cópias bit a bit dos discos problemáticos. São particularmente perigosos os rebuilds automáticos do array, verificações do sistema de arquivos com correção de erros ou a reinitialização do contêiner LUKS — essas ações podem alterar as estruturas necessárias para a recuperação posterior.
A criptografia adiciona outra camada de complexidade. No caso do LUKS, é necessário preservar o acesso ao cabeçalho do contêiner, aos slots de chave e às respectivas senhas ou arquivos de chave. No caso do fscrypt, o acesso apenas ao sistema de arquivos pode não ser suficiente: para descriptografar diretórios específicos, são necessárias as chaves apropriadas e os metadados da política de criptografia. Se mesmo um desses elementos for perdido, as opções de recuperação podem ser significativamente limitadas.
A seguir, examinaremos o procedimento para trabalhar com esse sistema: desde o diagnóstico dos discos físicos e a montagem manual do Linux MD RAID 6 em um modo que minimize o risco de gravação, até a abertura do contêiner LUKS, a verificação do sistema de arquivos e a restauração do acesso aos dados protegidos por fscrypt. O princípio principal em todas as etapas é preservar primeiro o máximo possível das informações originais e só então prosseguir com as tentativas de recuperação.
How to Recover Linux RAID 6 with LUKS2 & fscrypt | Deleted Files & Missing Drives
| Nível / tecnologia | Finalidade | Característica principal | O que importa durante a recuperação |
|---|---|---|---|
| Linux MD RAID 6 | Combina vários discos em um array tolerante a falhas | Usa paridade dupla e tolera a falha de até dois discos | É importante determinar corretamente a ordem dos discos, os parâmetros do array, o UUID e o estado dos metadados; o rebuild automático não deve ser iniciado sem análise prévia |
| LUKS | Criptografia em nível de disco inteiro ou bloco | Criptografa todo o volume lógico ou contêiner | O acesso requer um cabeçalho LUKS válido e uma senha ou chave; danos ao cabeçalho podem tornar os dados inacessíveis mesmo que o RAID esteja íntegro |
| Sistema de arquivos | Armazena diretórios, arquivos e metadados | Localizado dentro do contêiner LUKS desbloqueado | É preferível trabalhar a partir de uma cópia antes de reparar erros; operações automáticas de reparo podem alterar estruturas importantes |
| fscrypt | Criptografa diretórios ou arquivos individuais | Opera no nível do sistema de arquivos e pode proteger apenas dados selecionados | São necessárias as chaves apropriadas, as políticas de criptografia e os metadados; desbloquear o LUKS não concede automaticamente acesso aos dados protegidos por fscrypt |
| Chaves e metadados | Fornecem acesso às informações criptografadas | As chaves podem ser armazenadas separadamente dos próprios dados | A perda da senha, do arquivo de chave, do backup do cabeçalho LUKS ou das chaves fscrypt pode limitar criticamente as opções de recuperação |
| Sequência de camadas | Define a ordem de acesso aos dados | Esquema típico: discos → MD RAID 6 → LUKS → sistema de arquivos → fscrypt → arquivos | A recuperação deve ser realizada na mesma ordem, do nível inferior para o superior |
| Risco de gravação | Afeta a preservação dos dados de origem | Qualquer rebuild, montagem com leitura e gravação ou operação de reparo pode alterar estruturas | É preferível criar imagens dos discos primeiro e trabalhar em modo somente leitura |
| Complexidade do diagnóstico | Determina o número de pontos potenciais de falha | O problema pode estar no disco, no RAID, no LUKS, no sistema de arquivos ou no nível fscrypt | A falha deve ser isolada passo a passo, sem misturar problemas de diferentes níveis |
Configuração de RAID, LUKS2 e fscrypt
Para testar o Hetman RAID Recovery, preparamos um servidor Dell PowerEdge R710 com um controlador RAID PERC H700 e Ubuntu Server 24.04 LTS instalados.
A partir de quatro HDDs de 60 GB, criamos um array de software Linux MD RAID 6 com capacidade total de aproximadamente 120 GB usando mdadm. O tamanho do chunk foi de 512 KB (no Hetman RAID Recovery, esse parâmetro é exibido como Block size).

Um volume LUKS2 criptografado foi configurado no array, e um sistema de arquivos EXT4 foi criado dentro dele. Uma pasta adicional nessa partição foi criptografada com fscrypt usando sua própria senha.

Após a preparação do armazenamento, arquivos de teste foram gravados e, em seguida, alguns dados comuns foram excluídos do EXT4 e alguns arquivos do diretório protegido por fscrypt.
Conexão dos discos do array RAID
MÉTODO 1. Conexão de discos físicos.
Os discos do array RAID podem ser conectados via:
- SATA;
- SAS;
- Fibre Channel;
- HBA;
- controlador RAID.
No entanto, é importante que o controlador forneça ao programa acesso a cada disco físico separadamente.
Você também pode usar:
- adaptadores USB;
- docking stations;
- gabinetes externos.
Para análise de longo prazo, é melhor usar uma conexão direta via SATA, SAS, HBA ou o controlador apropriado — isso geralmente é mais rápido e estável.

Conectar todos os discos do array nem sempre é necessário. O Hetman RAID Recovery levará em conta os discos ausentes e será capaz de reconstruir seus dados se o nível de RAID permitir e se os discos saudáveis restantes forem suficientes para restaurar o array. Por exemplo, o RAID 5 permite um disco ausente, e o RAID 6 permite dois.
Depois que os discos forem conectados, o Windows poderá solicitar que você os inicialize ou formate. Não aceite — feche essa mensagem para evitar alterar os dados e as informações de serviço do RAID.
MÉTODO 2. Trabalho com imagens de disco
Trabalhar com imagens é útil se não houver portas suficientes para conectar todos os discos ao mesmo tempo ou se as unidades apresentarem indicadores SMART ruins, erros de leitura ou operação instável.
Para criar uma imagem no Hetman RAID Recovery, selecione o disco físico necessário na janela principal do programa e clique em Save Disk.

No assistente de salvamento, escolha criar uma imagem de todo o disco, especifique a pasta e o nome do arquivo e, em seguida, inicie a cópia.
É preferível salvar a imagem em outra unidade saudável com espaço livre suficiente.
Para trabalhos posteriores, clique em Mount Disk – RAW Disk Images. Selecione os arquivos de imagem criados e adicione-os ao programa.

Depois disso, o Hetman RAID Recovery trabalhará com eles como com discos físicos comuns e poderá usá-los para reconstrução automática ou manual do RAID.

MÉTODO 3. Conexão de discos via SSH
Se o servidor Linux permanecer acessível pela rede, os discos podem ser adicionados remotamente por meio de Tools – Connect via SSH.

Especifique o endereço do servidor, a porta e os dados de autenticação e, em seguida, selecione os discos físicos ou volumes necessários. Eles serão adicionados ao Hetman RAID Recovery e ficarão disponíveis para análise e reconstrução do RAID sem conexão física ao computador.

Como recuperar dados de Linux RAID 6
ETAPA 1. Detecção automática do array RAID
Após iniciar o Hetman RAID Recovery, o programa analisa automaticamente as unidades disponíveis e procura nelas sinais de arrays RAID. Se os discos necessários já estiverem conectados ao computador, o array encontrado é exibido na seção RAID Arrays imediatamente após a inicialização.
Se os discos forem adicionados posteriormente — conectados fisicamente, montados a partir de imagens ou adicionados via SSH — o programa reanalisa os membros RAID disponíveis e, se houver informações suficientes, reconstrói o array automaticamente.

Para o RAID detectado, o Hetman RAID Recovery exibe seus principais parâmetros:
- tipo e capacidade do array;
- tamanho do setor e do bloco;
- esquema de disposição dos dados;
- estado do RAID;
- lista de discos membros, sua ordem e deslocamentos.

No nosso caso, o programa detectou automaticamente um Linux MD RAID 6 de aproximadamente 118 GB e o exibiu como pronto para análise posterior. Revisaremos os parâmetros detalhados do array mais adiante, durante a reconstrução manual.
Se alguns discos estiverem ausentes, o programa os exibirá como Empty disk e determinará se as unidades disponíveis são suficientes para a reconstrução. No nosso teste, mesmo com dois dos quatro discos do RAID 6 ausentes, o array tem o status Recoverable e permanece disponível para análise e recuperação de dados.
ETAPA 2. Análise do RAID e descriptografia dos dados
Para iniciar a busca por dados, clique duas vezes no array RAID ou na partição encontrados. Se o Hetman RAID Recovery determinar que o volume está criptografado com LUKS, o programa solicitará imediatamente que você insira uma senha ou especifique um arquivo de chave.

Para descriptografá-lo, é necessária uma senha válida ou uma chave, bem como dados de serviço LUKS intactos.
Após desbloquear o LUKS, selecione o tipo de análise. Primeiro, você pode executar uma Fast Scan — isso geralmente é suficiente se a estrutura da partição e o sistema de arquivos não tiverem sido danificados e você precisar apenas localizar arquivos excluídos recentemente.

Se tiverem sido realizadas quaisquer operações destrutivas no disco — exclusão ou criação de partições, formatação, alterações no sistema de arquivos, danos à tabela de partições ou outras operações que possam alterar a estrutura dos dados — recomenda-se usar a Análise Completa. Durante a análise completa, especifique o sistema de arquivos usado no array. No nosso caso, é Ext2/3/4.
Se, durante a análise, o programa detectar dados criptografados com fscrypt, ele solicitará que você insira a senha correspondente. Após a descriptografia, você poderá prosseguir para a busca de arquivos existentes e excluídos.

ETAPA 3. Visualização e salvamento dos arquivos recuperados
Após a conclusão da análise, revise os arquivos encontrados. Use o modo de miniaturas, a pré-visualização, bem como a busca e os filtros para localizar rapidamente os dados necessários e verificar seu conteúdo.
O programa marca os arquivos excluídos com uma cruz vermelha. Selecione os arquivos e pastas que deseja salvar e clique em Recovery.

Não salve os dados recuperados em discos que sejam membros do array RAID. A gravação nesses discos pode sobrescrever informações que ainda não foram recuperadas. Use uma unidade física separada para o salvamento.
No assistente, especifique o destino e inicie o salvamento dos arquivos.
ETAPA 4. Reconstrução manual do RAID
A detecção automática do RAID pode ser impossível se as informações de serviço sobre o array estiverem danificadas, sobrescritas, ausentes ou inconsistentes entre os discos.
Isso pode acontecer após operações diretamente nos discos membros que possam ter danificado ou sobrescrito os metadados do RAID:
- inicialização de discos no Windows;
- execução de mdadm –zero-superblock;
- criação de um novo RAID sobre um antigo;
- alteração da tabela de partições;
- sobrescrita parcial das unidades;
- ou um rebuild com falha.

A reconstrução manual também pode ser necessária se alguns discos estiverem ausentes ou danificados, se houver metadados de diferentes arrays RAID remanescentes nas unidades, se a ordem dos discos ou os offsets tiverem sido alterados, ou se a imagem de uma das unidades tiver sido criada de forma incompleta.
Se o Hetman RAID Recovery não conseguiu determinar automaticamente a configuração do array, ele pode ser reconstruído manualmente usando o RAID Constructor.
Abra o RAID Constructor, selecione o Modo manual e especifique os parâmetros conhecidos do array.

Para o Linux MD RAID 6 criado por mdadm em nosso teste com o layout padrão, o RAID Constructor usa o esquema Left Synchronous P+Q. No nosso caso, o tamanho do bloco foi 512 KB.

Para a maioria dos discos, use 512 bytes no campo Bytes per sector. Se o disco usar um tamanho de setor lógico de 4K, escolha 4096 bytes.
Para Linux MD RAID padrão, deixe o parâmetro Byte order definido como Standard, a menos que o array tenha sido criado com outras configurações específicas.
Em seguida, defina a sequência correta das unidades e especifique o deslocamento de dados — Offset — para cada disco. Em nosso teste, foi de 34,603,008 bytes para cada disco.

Se uma ou mais unidades não estiverem disponíveis, adicione um Empty disk em seu lugar.
Depois que a configuração estiver montada, adicione o RAID reconstruído à janela principal do programa clicando em Add.

Depois disso, você poderá trabalhar com ele da mesma forma que com um array detectado automaticamente: desbloquear o LUKS, analisar o sistema de arquivos e recuperar os arquivos necessários.

ETAPA 5. Como determinar parâmetros desconhecidos do array
Se alguns parâmetros do RAID forem desconhecidos, eles podem ser determinados pela estrutura dos dados armazenados no array. No nosso caso, sabemos que foi usado Linux MD RAID 6 e, diretamente sobre ele, havia um volume LUKS2 criptografado.

Vamos começar determinando o deslocamento de dados — Offset. Abra cada disco do array no HEX Editor, inicie uma busca por valor HEX e insira a assinatura LUKS: 4C 55 4B 53 BA BE. Nas configurações de busca, defina a direção como Down, a posição como Begin of sector e inicie a busca.

No nosso array de teste, a assinatura LUKS foi encontrada no endereço 34,603,008 bytes a partir do início do disco. Esse é o valor que usamos como Offset para todos os discos do array.

O disco no qual a assinatura foi encontrada contém o início do volume lógico LUKS. Isso permite determinar o deslocamento de dados e obter um disco de referência, mas a própria assinatura não mostra a sequência completa de todos os discos. Portanto, se a ordem dos discos for desconhecida, deixe-a para a detecção automática usando Detect the disk order automatically.

Em seguida, defina os parâmetros do RAID já conhecidos. Se o array foi criado com mdadm usando as configurações padrão, o esquema típico para RAID 5 é Left Synchronous, e para RAID 6 é Left Synchronous P+Q. No nosso caso, o tamanho do bloco é 512 KB. Se esse parâmetro foi alterado durante a criação do RAID, ele pode ter outro valor, por exemplo 64, 128, 256 KB ou 1 MB.
Para os parâmetros que puderem ser determinados, especifique valores exatos. Deixe Detect automatically apenas para os parâmetros desconhecidos. Isso reduz significativamente o número de configurações possíveis e acelera a busca.
Em seguida, clique em Next e aguarde a conclusão da validação das variantes.
Durante a busca, o Hetman RAID Recovery mostra o progresso, o tempo decorrido e o número de configurações encontradas. Após a conclusão da busca, selecione a configuração mais adequada e adicione o RAID reconstruído à janela principal do programa.
A correção dos parâmetros pode ser verificada pela estrutura dos dados resultantes. No nosso caso, o Hetman RAID Recovery deve detectar um volume LUKS2 do tamanho esperado. Se ele for desbloqueado com sucesso com a senha correta e o sistema de arquivos EXT4 for identificado dentro dele, a configuração do RAID foi selecionada corretamente.

Conclusão
O Hetman RAID Recovery detectou automaticamente o Linux MD RAID 6 de teste, desbloqueou o LUKS2 usando a senha conhecida e, durante a Fast Scan, encontrou arquivos existentes e excluídos. Após inserir a senha do fscrypt, o programa também obteve acesso aos arquivos existentes e excluídos no diretório adicionalmente criptografado.
Se houver metadados RAID insuficientes, o array pode ser reconstruído manualmente no RAID Constructor usando parâmetros conhecidos, ou você pode usar a seleção automática de valores desconhecidos. A busca pela assinatura LUKS2 no HEX Editor ajuda a determinar o deslocamento de dados, e a correção da configuração pode ser verificada pelo desbloqueio bem-sucedido do LUKS e pela detecção do sistema de arquivos EXT4.






