Nick R Asked: 2009-05-16 02:44:56 +0800 CST2009-05-16 02:44:56 +0800 CST 2009-05-16 02:44:56 +0800 CST 如何修复损坏的 ntbackup (.bkf) 文件? 772 我有一个损坏的 ntbackup 文件,无法在 ntbackup 中打开。 谷歌搜索出现了各种实用程序,表明它们可以修复文件。我需要使用一个还是有一种使用 ntbackup 的简单方法来执行此操作? windows backup 2 个回答 Voted Best Answer splattne 2009-05-16T02:55:26+08:002009-05-16T02:55:26+08:00 更新:这个关于 tek-tips 的论坛帖子有一些非常有用的信息,比如 非常感谢 Michael(又名 mpears)在 http://www.fpns.net/willy/msbackup.htm向我推荐免费的 NTBkup 软件。使用该软件,我能够从损坏的 20 GB BKF 文件中恢复数千个文件,在重新创建各种文档时节省了数百美元和无数小时。 作为替代方案,您可以尝试使用此商业软件进行BKF 恢复。 内核 BKF 文件修复 - 从因备份中断、病毒攻击、crc 错误或备份软件损坏而损坏的 bkf 存档中恢复和修复文件。它允许访问由于任何类型的损坏而无法使用原始备份软件恢复的损坏的 bkf 文件。 SourceForge 上还有一个开源项目: JMTF 祝你好运! Zrin 2015-07-20T13:30:27+08:002015-07-20T13:30:27+08:00 如果 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 Header 中看到“!BDN”幻数。要提取文件: OFFSET=$(( OFFSET / 512 * 512 + 0x18e )) FSIZE=$(( 0x55bc4400 )) dd if=corrupt.bkf of=Outlook.pst bs=1 skip="$OFFSET" count="$FSIZE" 如果文件很大,这将需要一些时间......完成!
更新:这个关于 tek-tips 的论坛帖子有一些非常有用的信息,比如
作为替代方案,您可以尝试使用此商业软件进行BKF 恢复。
SourceForge 上还有一个开源项目: JMTF
祝你好运!
如果 BKF 中的备份文件既没有压缩也没有加密,那么使用 grep、hexedit 和 dd 手动提取单个文件相当容易 - 也不太难。
MTF 格式: http: //laytongraphics.com/mtf/MTF_100a.PDF
示例(假设使用 bash shell):提取 Outlook.pst
检查 offsets.txt,找到后跟“NACL”“CSUM”和“STAN”的偏移量
STAN 表示“标准流”,字节数以 8 字节(小端序)为单位,从“STAN”之后的 4 个字节开始,因此在本例中
00 44 bc 55 00 00 00 00
为 0x55bc4400 字节。该文件在 STAN 开始后的 22 个字节处开始,您可以在 PST Header 中看到“!BDN”幻数。要提取文件:如果文件很大,这将需要一些时间......完成!