如何修复损坏的ntbackup(.bkf)文件?

我有一个损坏的ntbackup文件,不会在ntbackup中打开。

有谷歌search出现的各种实用程序,说他们可以修复文件。 我需要使用一个还是有一个简单的方法使用ntbackup来做到这一点?

更新 :这个tek-tips的论坛主题有一些非常有用的信息,比如

非常感谢迈克尔(又名mpears)把我推荐给免费的NTBkup软件http://www.fpns.net/willy/msbackup.htm 。 使用这个软件,我能够从损坏的20 GB BKF文件中恢复数千个文件,节省了数百美元,并且在重新创build各种文档时花费了大量的时间。


作为替代,你可以尝试这个商业软件 BKF恢复 。

内核BKF文件修复 – 恢复和修复由于备份中断,病毒攻击,crc错误或备份软件损坏而损坏的bkf文件中的文件。 它允许访问由于任何forms的损坏而无法使用原始备份软件恢复的损坏的bkf文件。

SourceForge上还有一个开源项目 : JMTF

祝你好运!

如果BKF中的备份文件既没有压缩也没有encryption,那么使用grep,hexedit和dd来手动提取单个文件相当容易 – 不会太困难。

MTF格式: http : //laytongraphics.com/mtf/MTF_100a.PDF

示例(假定使用bash shell):提取Outlook.pst

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

检查offsets.txt,find“NACL”,“CSUM”和“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.........DU| 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.sa| 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.....XOutl| 00000060 6f 00 6f 00 6b 00 2e 00 70 00 73 00 74 00 00 00 |ook..pst..| ... 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 |.DU.........!B| 00000190 44 4e c1 7c 3c 6a 53 4d 17 00 13 00 01 01 40 00 |DN.|<jSM......@.| 

STAN表示“标准stream”,字节数在“STAN”之后4个字节开始的8个字节(小端),所以在本例中为00 44 bc 55 00 00 00 00或0x55bc4400字节。 STAN开始后,文件从22个字节开始,您可以在PST Header中看到“!BDN”幻数。 提取文件:

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

如果文件很大,这将需要一些时间…完成!