Como recuperar discos virtuais e snapshots KVM/QEMU com RAID 6 LUKS2
Este artigo examina a recuperação de discos virtuais e snapshots KVM/QEMU de um sistema de armazenamento построído com LUKS2 e RAID 6. O foco está em determinar a sequência correta de recuperação, trabalhar com segurança com imagens de discos físicos, reconstruir a matriz RAID, desbloquear o contêiner criptografado, localizar imagens QCOW2/RAW, analisar a cadeia de backing e restaurar o acesso aos dados da máquina virtual sem modificar a mídia original.

- PASSO 1. Criação de uma máquina virtual KVM/QEMU
- PASSO 2. Criação de um snapshot e exclusão da partição LUKS2
- PASSO 3. Conexão dos discos e início da recuperação
- PASSO 4. Detecção automática de partições MD RAID 6 e LUKS2
- PASSO 5. Análise da partição LUKS2 e recuperação dos arquivos da máquina virtual
- PASSO 6. Montagem de discos virtuais e snapshots
- PASSO 7. Comparação dos estados dos discos e recuperação de arquivos de um snapshot
- PASSO 8. Busca por dados pelos sistemas de arquivos dos discos virtuais
- Resumo
- Perguntas frequentes
- Comentários
Em ambientes modernos de servidores, a virtualização baseada em KVM/QEMU é frequentemente usada em conjunto com matrizes RAID por software e criptografia de disco. Essa arquitetura combina desempenho, tolerância a falhas e proteção de dados, mas também complica significativamente a recuperação quando unidades, metadados do RAID, o contêiner LUKS2, o sistema de arquivos ou a cadeia de snapshots da máquina virtual são danificados.
São particularmente difíceis os casos em que discos virtuais KVM/QEMU nos formatos QCOW2, RAW ou outros formatos compatíveis são armazenados dentro de um volume LUKS2 criptografado construído sobre RAID 6. Nessa configuração, o acesso aos dados depende de vários níveis ao mesmo tempo: discos físicos, estrutura da matriz RAID, integridade dos metadados LUKS2, sistema de arquivos e estrutura interna dos discos virtuais.
Os snapshots do QEMU/KVM introduzem complexidade adicional. Eles podem formar uma cadeia de arquivos QCOW2 dependentes, na qual cada imagem subsequente contém apenas blocos alterados e faz referência ao disco base ou ao snapshot anterior. A perda de um elemento dessa cadeia, a corrupção do arquivo backing ou a determinação incorreta da sequência podem impedir a inicialização da máquina virtual, mesmo que a maior parte dos dados ainda esteja fisicamente presente nos discos.
How to Recover a Deleted MySQL Database on Linux RAID 6 + LUKS2 (Ubuntu)
PASSO 1. Criação de uma máquina virtual KVM/QEMU
Para testes, instalamos Ubuntu Server 24.04 e usamos o Cockpit para criar uma matriz de software Linux MD RAID 6 a partir de quatro discos.
Foram criadas três partições na matriz RAID. Cada uma foi criptografada com LUKS2, e sistemas de arquivos Ext4 foram criados dentro dos contêineres criptografados. A terceira partição foi usada para armazenar a máquina virtual.

O servidor estava executando o hipervisor KVM/QEMU. Por meio do Cockpit, criamos um pool de armazenamento separado para a máquina virtual na terceira partição – raid6-vm-images. Os arquivos da máquina virtual foram armazenados no diretório vm-images.
Para a máquina virtual, criamos um disco de sistema QCOW2 com capacidade de 32 gigabytes, bem como dois discos adicionais: um disco QCOW2 de 2 gigabytes e um disco IMG de 1 gigabyte.


Windows 10 foi instalado no disco de sistema. Os dois discos adicionais foram formatados no Windows como NTFS e FAT32, respectivamente.

PASSO 2. Criação de um snapshot e exclusão da partição LUKS2
Copiamos um conjunto inicial de arquivos para o disco de sistema e os dois discos adicionais, depois criamos um snapshot externo. Em seguida, adicionamos outra pasta com arquivos e excluímos alguns deles.

Após a conclusão das alterações de teste, a máquina virtual foi desligada. Em seguida, a pasta vm-images, contendo as imagens de disco base, os arquivos do snapshot externo e o arquivo de estado da memória, foi copiada para a segunda partição LUKS2 da matriz RAID.
Para simular perda de dados, usamos o Cockpit para excluir essa partição da tabela de partições. Como resultado, a sua área tornou-se não alocada. Não a formatamos nem gravamos novos dados nela, a fim de preservar a possibilidade de recuperação posterior.


PASSO 3. Conexão dos discos e início da recuperação
Após excluir a partição, desligamos o servidor e removemos os discos da matriz RAID. Apenas dois dos quatro discos foram conectados a um computador com Windows 11 por meio de uma estação de acoplamento USB.
Se o Windows solicitar a inicialização ou formatação dos discos após a conexão, certifique-se de clicar em Cancelar. Não grave novos dados neles e não execute verificações de erros nem operações de reparo, pois isso pode piorar o resultado da recuperação.
Também é possível trabalhar com os discos de outras formas. Por exemplo, conectá-los remotamente ao software por meio de SSH ou montar imagens criadas anteriormente, caso você não queira trabalhar diretamente com os discos originais.

PASSO 4. Detecção automática de partições MD RAID 6 e LUKS2
Imediatamente após a inicialização, o Hetman RAID Recovery leu as informações de serviço dos dois discos conectados.

O RAID 6 permite a ausência de até dois discos. Como ambos os discos disponíveis estavam íntegros e as informações de serviço estavam preservadas, o programa reconstruiu automaticamente o MD RAID 6. Os dois discos ausentes foram mostrados como Empty disk, e a matriz recebeu o status Recoverable.

As propriedades mostram o layout Left Synchronous P+Q, um tamanho de bloco de 512 KB, bem como as posições, os deslocamentos e os tamanhos dos discos.
O programa encontrou três áreas com criptografia LUKS2 na matriz. A primeira e a terceira partições permaneceram no lugar, e a segunda, excluída, é mostrada como espaço não alocado marcado com LUKS.
PASSO 5. Análise da partição LUKS2 e recuperação dos arquivos da máquina virtual
Dê um duplo clique na área não alocada marcada como LUKS. O programa solicitará a entrada de uma senha ou a seleção de um arquivo de chave.

Após o desbloqueio, o sistema de arquivos Ext4 ficará disponível. Em seguida, selecione o modo de análise.
Recomendamos iniciar com Fast Scan. Se a verificação rápida não localizar os dados necessários, execute Full Analysis e especifique o sistema de arquivos Ext2/3/4.

No nosso caso, o Fast Scan foi suficiente. O programa restaurou a estrutura da partição excluída e encontrou a pasta vm-images, que continha o disco de sistema e os discos virtuais adicionais, bem como seus arquivos de snapshot.

É importante observar que a configuração da máquina virtual é armazenada separadamente dos seus discos – normalmente no diretório /etc/libvirt/qemu. Se o arquivo de configuração XML for perdido, os dados dos discos virtuais ainda poderão ser recuperados, mas a configuração da máquina terá de ser recriada para iniciar a VM novamente.

Selecione a pasta que contém os discos virtuais e os arquivos de snapshot e clique em Recovery.

Recomendamos recuperar a pasta inteira para que as imagens base e os snapshots relacionados permaneçam juntos.
Selecione outro disco físico para salvar. Não recupere os arquivos de volta para a matriz RAID original, pois isso pode sobrescrever dados que ainda podem ser recuperados.
PASSO 6. Montagem de discos virtuais e snapshots
Se você precisar acessar os dados dentro dos discos virtuais ou snapshots, bem como localizar e recuperar arquivos excluídos, isso pode ser feito diretamente em nosso programa.
Clique em Mount Disk.

Na janela Disk Image Type, em Virtual Machine Disk Images, selecione QEMU, pois em nosso teste a máquina virtual e seus discos foram criados com base em KVM/QEMU. Se as imagens tiverem sido criadas em outro ambiente de virtualização, selecione o tipo de disco correspondente na lista. Em seguida, clique em Next.

No passo seguinte, especifique não um arquivo de imagem individual, mas a pasta onde recuperamos todos os arquivos da máquina virtual. É importante que os discos base e seus snapshots relacionados estejam armazenados juntos e mantenham seus nomes originais.

O programa analisará o conteúdo da pasta, determinará as relações entre os arquivos e agrupará automaticamente os discos base com os snapshots correspondentes. Se vários snapshots tiverem sido criados para um disco, o programa os organizará na ordem correta. O estado mais recente de cada cadeia será marcado como Active. Selecione os discos necessários e seus estados e, em seguida, clique em Next.

Após a montagem, eles aparecerão em Mounted Disks como unidades separadas. Na tela principal, o rótulo Active não é mais exibido, de modo que o disco base e seus snapshots podem ser distinguidos pelos nomes dos arquivos correspondentes.

PASSO 7. Comparação dos estados dos discos e recuperação de arquivos de um snapshot
Para comparar a imagem do disco base e seu snapshot, é necessário analisar ambos os discos montados. Dê um duplo clique em cada um deles e, primeiro, execute Fast Scan.
Se o Fast Scan não localizar os dados necessários, execute Full Analysis. Durante a análise completa, é necessário especificar o sistema de arquivos usado dentro do disco virtual.
A imagem base preserva o estado anterior do sistema de arquivos.

No disco montado a partir do snapshot, as alterações posteriores ficam visíveis: a pasta adicionada e os arquivos excluídos dela, que o programa marca com um X.

Como esses arquivos foram gravados após a criação do estado anterior do disco, eles devem ser localizados e recuperados a partir do snapshot montado.
Revise os arquivos encontrados na janela de pré-visualização, que oferece suporte a muitos formatos comuns. Aqui você pode visualizar o conteúdo de documentos, listas de arquivos dentro de arquivos compactados, imagens, vídeos e outros dados. A pré-visualização pode ser expandida para tela cheia, o que é especialmente conveniente para revisar imagens e gravações de vídeo.
Após confirmar que os arquivos necessários estão selecionados, marque-os e clique em Recovery. Salve os dados recuperados em outro disco físico.

PASSO 8. Busca por dados pelos sistemas de arquivos dos discos virtuais
Se as imagens de disco virtual necessárias não foram encontradas ou não puderam ser montadas, você pode tentar recuperar os dados diretamente pelos sistemas de arquivos usados dentro desses discos.
Para isso, selecione a partição RAID desbloqueada, inicie o assistente de recuperação e escolha Full Analysis.

Ao configurar a análise, em vez do sistema de arquivos Ext4 realmente usado nesta partição para armazenar arquivos de disco virtual, especifique os sistemas de arquivos localizados diretamente dentro dos próprios discos virtuais. No nosso caso, são FAT32 e NTFS, portanto selecionamos FAT e NTFS para a busca.

Esse método é mais eficaz para discos virtuais em que todo o espaço foi preallocated antecipadamente. Nesse caso, os dados do disco virtual estão fisicamente presentes dentro do arquivo de imagem, e o programa pode localizar e analisar o sistema de arquivos nele armazenado, mesmo que o próprio arquivo de imagem esteja danificado ou perdido.
Para discos virtuais thin-provisioned, essa abordagem geralmente não permite a recuperação completa do disco. Nesses arquivos de imagem, apenas os blocos nos quais os dados já foram gravados são armazenados fisicamente, enquanto o espaço não utilizado não é alocado antecipadamente. Portanto, sem a estrutura da própria imagem, blocos individuais do disco virtual podem ficar fragmentados, e reconstruir corretamente todo o sistema de arquivos é muito mais difícil.
Após a conclusão da análise, revise as partições e os arquivos encontrados.

Esse método pode ajudar a recuperar dados individuais ou até mesmo um sistema de arquivos de um disco preallocated, mas o arquivo de imagem em si e suas relações com snapshots não são recuperados dessa forma.
Resumo
Como resultado, o Hetman RAID Recovery montou automaticamente o Linux MD RAID 6 a partir de dois discos disponíveis, encontrou a partição LUKS2 excluída, desbloqueou-a e restaurou a pasta com as imagens de disco e os snapshots da máquina virtual.
Após a montagem, foi possível comparar o estado do disco antes e depois da criação do snapshot, localizar os dados necessários e recuperar os arquivos excluídos posteriormente. É importante manter todas as imagens e snapshots relacionados juntos, não alterar seus nomes e recuperar os dados somente para outro disco físico.






