Назад | Перейти на главную страницу

Как можно восстановить поврежденный файл ntbackup (.bkf)?

У меня есть поврежденный файл ntbackup, который не открывается в ntbackup.

При поиске в Google появляются различные утилиты, которые говорят, что они могут восстановить файлы. Нужно ли мне использовать один или есть простой способ использовать для этого ntbackup?

Обновить: Это ветка форума на tek-tips есть очень полезная информация, например

Большое спасибо Майклу (aka mpears) за то, что порекомендовал мне бесплатное программное обеспечение NTBkup на http://www.fpns.net/willy/msbackup.htm. Используя это программное обеспечение, я смог восстановить тысячи файлов из поврежденного файла BKF размером 20 ГБ, сэкономив сотни долларов и бесчисленное количество часов на воссоздании различных документов.


В качестве альтернативы вы можете попробовать это коммерческое программное обеспечение для BKF восстановление.

Восстановление файла ядра BKF - восстанавливает и восстанавливает файлы из поврежденных архивов BKF, поврежденных из-за прерывания резервного копирования, вирусных атак, ошибок CRC или повреждения программного обеспечения резервного копирования. Это позволяет получить доступ к поврежденным файлам bkf, которые невозможно восстановить с помощью исходного программного обеспечения для резервного копирования из-за любого вида повреждения.

Также есть проект с открытым исходным кодом на SourceForge: JMTF

Удачи!

Если файлы резервных копий в BKF не сжаты и не зашифрованы, то довольно просто - ну не слишком сложно - извлечь отдельные файлы вручную с помощью grep, hexedit и dd.

Формат MTF: http://laytongraphics.com/mtf/MTF_100a.PDF

Пример (предполагается использование оболочки bash): извлеките 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 байтов (с прямым порядком байтов), которые начинаются на 4 байта после «STAN», поэтому в этом примере 00 44 bc 55 00 00 00 00 или 0x55bc4400 байт. Файл начинается через 22 байта после начала STAN, вы можете увидеть магическое число «! BDN» в заголовке PST. Чтобы извлечь файл:

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

Это займет некоторое время, если файл большой ... готово!