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

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

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

谷歌搜索显示有多种实用程序声称可以修复文件。我需要使用其中一种吗?或者有没有一种简单的方法可以使用 ntbackup 来执行此操作?

答案1

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

非常感谢 Michael(又名 mpears)向我推荐了免费的 NTBkup 软件 http://www.fpns.net/willy/msbackup.htm。使用该软件,我能够从损坏的 20 GB BKF 文件中恢复数千个文件,从而节省了数百美元和重新创建各种文档所花费的无数小时。


或者你可以尝试这个商业软件为了BKF 恢复

内核 BKF 文件修复 - 恢复并修复因备份中断、病毒攻击、crc 错误或备份软件损坏而损坏的 bkf 档案中的文件。它允许访问因任何类型的损坏而无法使用原始备份软件恢复的损坏的 bkf 文件。

还有开源项目在 SourceForge 上:联合机动特遣队

祝你好运!

答案2

如果 BKF 中的备份文件既未压缩也未加密,那么使用 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,找到后面跟着“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.........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 表示“标准流”,字节数以 8 个字节(小端字节序)为单位,从“STAN”后 4 个字节开始,因此在此示例中00 44 bc 55 00 00 00 00为 0x55bc4400 字节。文件从 STAN 开始后 22 个字节开始,您可以在 PST 标头中看到“!BDN”魔数。要提取文件:

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

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

相关内容