Como você pode reparar um arquivo ntbackup (.bkf) corrompido?

5

Eu tenho um arquivo ntbackup corrompido que não abre no ntbackup.

Existem vários utilitários que aparece uma pesquisa no google que dizem que eles podem reparar os arquivos. Preciso usar um ou há uma maneira simples de usar o ntbackup para fazer isso?

    
por Nick R 15.05.2009 / 12:44

2 respostas

4

Atualizar : este tópico do fórum em dicas-tek tem algumas informações muito úteis, como

Many thanks to Michael (aka mpears) for referring me to the free NTBkup software at http://www.fpns.net/willy/msbackup.htm. Using this software, I was able to recover thousands of files from a corrupted, 20-GB BKF file, saving hundreds of dollars and an untold number of hours in re-creating various documents.

Como alternativa, você pode experimentar este software comercial para recuperação de BKF .

Kernel BKF File Repair - Recovers and repairs the files from damaged bkf archives corrupted due to backup interruption, virus attacks, crc errors or backup software corruption. It allows access to corrupt bkf files which can not be restored using the original backup software due to any kind of corruption.

Há também um projeto de código aberto no SourceForge: JMTF

Boa sorte!

    
por 15.05.2009 / 12:55
0

Se os arquivos de backup dentro do BKF não forem compactados nem criptografados, é bastante fácil - bem, não muito difícil - extrair arquivos individuais manualmente usando grep, hexedit e dd.

Formato MTF: link

Exemplo (assume o uso do shell bash): extraia o arquivo Outlook.pst

grep -a -o -P 'O\x00u\x00t\x00l\x00o\x00o\x00k\x00\.\x00p\x00s\x00t' corrupt.bkf >offsetts.txt

Inspecione offsets.txt, encontre o deslocamento seguido por "NACL" "CSUM" e "STAN"

OFFSET=123456
dd if=corrupt.bkf bs=512 skip=$(( OFFSET / 512 )) | hexdump -C | less

00000000  46 49 4c 45 00 00 00 00  88 00 0e 02 00 44 bc 55  |FILE.........D.U|
00000010  00 00 00 00 2d 8e 77 00  00 00 00 00 00 00 00 00  |....-.w.........|
00000020  00 00 00 00 88 0a 00 00  00 00 00 00 18 00 70 00  |..............p.|
00000030  02 00 88 9b 00 08 00 00  1f 7a 74 17 73 1f 61 a2  |.........zt.s.a.|
00000040  b2 d7 00 00 00 00 00 1f  7a 74 17 73 54 00 00 00  |........zt.sT...|
00000050  33 0a 00 00 16 00 58 00  4f 00 75 00 74 00 6c 00  |3.....X.O.u.t.l.|
00000060  6f 00 6f 00 6b 00 2e 00  70 00 73 00 74 00 00 00  |o.o.k...p.s.t...|
...
00000170  12 1e 62 a3 33 bf 00 00  53 54 41 4e 00 00 20 00  |..b.3...STAN.. .|
00000180  00 44 bc 55 00 00 00 00  00 00 00 00 8e 0b 21 42  |.D.U..........!B|
00000190  44 4e c1 7c 3c 6a 53 4d  17 00 13 00 01 01 40 00  |DN.|<jSM......@.|

STAN significa "Standard stream", a contagem de bytes é em 8 bytes (little endian) que começam 4 bytes depois de "STAN", portanto, neste exemplo 00 44 bc 55 00 00 00 00 ou 0x55bc4400 bytes. O arquivo começa em 22 bytes após o início do STAN, você pode ver o número mágico "! BDN" no cabeçalho PST. Para extrair o arquivo:

OFFSET=$(( OFFSET / 512 * 512 + 0x18e ))
FSIZE=$(( 0x55bc4400 ))
dd if=corrupt.bkf of=Outlook.pst bs=1 skip="$OFFSET" count="$FSIZE"

Isso levará algum tempo se o arquivo for grande ... pronto!

    
por 19.07.2015 / 23:30