Ontem, a unidade NVME antiga no laptop Windows da minha irmã começou a morrer e se corromper. A maioria das coisas estava armazenada na nuvem, mas algumas coisas não estavam, então eu queria tentar recuperar o que eu pudesse. Não é grande coisa se não pudermos. Eu fiz uma dd
da unidade, mas eu tolamente fiz isso partição por partição (sem perceber que você pode apenas dd
o dispositivo inteiro). Agora eu tenho três imagens de partição: backup-nvme0n1p1.img, backup-nvme0n1p2.img e backup-nvme0n1p3.img. A terceira tem 237 GB e contém os dados reais. Eu tenho backups dos arquivos de imagem, então eu posso mexer neles conforme necessário.
Eu apenas refazeria a imagem corretamente, exceto que agora formatamos a unidade e reinstalamos o Windows (como uma medida de emergência temporária para que ela possa usar o laptop - não estamos contando com a unidade para armazenar nada permanente, desde que ela possa funcionar para executar o Windows por alguns dias).
Tentei montar a imagem da partição diretamente em uma VM Ubuntu com:
sudo mount -t ntfs -o loop backup-nvme0n1p3.img /mnt/test
...porém o sistema de arquivos parece estar corrompido (o que já presumimos):
ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
Record 0 has no FILE magic (0xffffffff)
Failed to load $MFT: Input/output error
Failed to mount '/dev/loop9': Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.
ntfsfix
também não aprova:
ntfsfix backup-nvme0n1p3.img
Mounting volume... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
Record 0 has no FILE magic (0xffffffff)
Failed to load $MFT: Input/output error
FAILED
Attempting to correct errors... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
Record 0 has no FILE magic (0xffffffff)
Failed to load $MFT: Input/output error
FAILED
Failed to startup volume: Input/output error
Checking for self-located MFT segment... ntfs_mst_post_read_fixup_warn: magic: 0xffffffff size: 1024 usa_ofs: 65535 usa_count: 65535: Invalid argument
OK
Unrecoverable error
Volume is corrupt. You should run chkdsk.
Ok, então eu provavelmente quero tentar montá-lo no Windows e executar chkdsk. Se fosse uma imagem de todo o drive, presumo que eu poderia montá-lo como um disco virtual com algo como ImDisk , mas não sei o que posso fazer com três partições separadas.
Então minha pergunta é: É possível inventar uma nova tabela de partição e montar essas três partições em uma imagem de disco válida? Ou melhor ainda, ignorar as duas primeiras partições e criar uma imagem de disco completa com a terceira?
Acontece que eu deveria ter testado o ImDisk . Ele é realmente capaz de montar as imagens de partição NTFS diretamente. Infelizmente, o chkdsk não está feliz com a partição de dados corrompida, então é hora de usar as habilidades de programação e analisar manualmente os dados NTFS e comparar com as partições de recuperação/qualquer coisa que estejam funcionando! (Na verdade, eu tenho feito isso há alguns dias; surpreendentemente, não é tão difícil.)