Ok, desculpe por responder minha própria pergunta tão cedo, mas notei algo espantoso. O arquivo .qcow2
era do tamanho 120400379904 Bytes, enquanto a conversão da imagem com qemu-img convert -O raw
me deu uma imagem do tamanho 128849018880 Bytes.
Totalmente diferente.
Agora, se considerarmos o tamanho em setores encontrados por testdisk
, notaremos que 512 * 251657216 é 128848494592, que é 512 bytes mais do que o tamanho do arquivo da imagem "bruta". Isso parece promissor, pensei comigo mesmo.
Eu gerava esses arquivos há alguns anos, então não tenho certeza se os criei como imagens esparsas. No entanto, se qemu-img info
mostrar dessa maneira, pensei comigo mesmo, vamos tentar converter o formato da imagem. Tenha em mente que isso não altera o arquivo original!
qemu-img convert -O raw input output
faz esse trabalho, ainda que lentamente.
Executar testdisk
novamente nesse arquivo funcionou surpreendentemente bem, embora eu ainda não conseguisse convencer o mount a usar um superbloco diferente, apesar de -o sb=...
.
TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <[email protected]>
http://www.cgsecurity.org
Disk bigdata/vm_disk_vdb.img - 128 GB / 120 GiB - CHS 15666 255 63
Partition Start End Size in sectors
>P ext3 0 1 1 15664 239 62 251657216 [DATA]
Structure: Ok.
Keys T: change type, P: list files,
Enter: to continue
ext3 blocksize=4096 Large file Sparse superblock, 128 GB / 119 GiB
Depois disso, consegui copiar testdisk
para os arquivos em um diretório e compará-los com meus backups.
Houve algumas corrupções, como:
ext2fs_read_inode(ino=384492884) failed with error 2133571369.
e também outros problemas menores, mas os problemas estavam afetando apenas cerca de 0,1% de todos os arquivos e pastas. Inicie testdisk
da seguinte forma para poder descobrir quais arquivos devem ser considerados danificados:
testdisk /log imagefile.img