Автоматизировать сравнение поврежденных файлов

241
GabrielB

После неудачного анализа CHKDSK, который повредил много файлов на жестком диске 3 ТБ (ошибочно определен как 746 ГБ, вероятно, из-за несовместимости контроллера USB2 с емкостью более 2 ТБ), я хотел бы провести точное сравнение этих файлов (с их правильными аналогами). на резервном жестком диске) и извлеките поврежденные области для дальнейших исследований, прежде чем удалять их.
Пока что я действовал так:

  • Откройте обе версии файла в WinHex. Активируйте экран «Синхронизировать и сравнить».
  • Запустите сравнение со смещением 0, сохраните отчет (обязательно с этим программным обеспечением, нет возможности напрямую найти следующую разницу) с именем файла, укажите ограничение в 10000 ошибок (чтобы избежать слишком больших отчетов).
  • Как только он остановится (достигнув конца файла или ограничения в 10000 различных байтов), откройте отчет TXT, скопируйте смещение первой разницы в меню WinHex «Перейти к смещению». Отметить первую ошибку (которая всегда находится на границе сектора) как начало блока.
  • Чтобы найти конец поврежденной области, выполните прокрутку вниз или, если добавление 1 МБ или 100 КБ займет слишком много времени, пока я выйду, а затем выполните прокрутку вверх (я не нашел способа облегчить это в WinHex). Отметьте конец последнего сектора поврежденной области как конец блока.
  • Извлеките блок как новый файл с шаблоном «Name_of_the_file [1111-2222]», где «1111-2222» - это начальные смещения.
  • Возобновите сравнение в конце ранее выявленной поврежденной области, чтобы искать другие, до конца файла ...

Теперь, есть ли способ автоматизировать этот кропотливый и трудоемкий процесс? Существуют ли другие шестнадцатеричные редакторы, лучше подходящие для сравнения файлов? Или я мог бы использовать скрипт, чтобы сделать это все сразу? Я нашел замечательный инструмент командной строки под названием dsfok (DS File Ops Kit), который может извлечь блок данных между двумя значениями смещения (среди других функций, которые я еще не тестировал). Поэтому мне понадобится другой инструмент командной строки для сравнения и получения этих значений смещения, а также советы по написанию сценария для совместной работы этих инструментов. Благодарю.

0
Почему вас это волнует, если у вас есть резервные копии? harrymc 6 лет назад 1
Помимо вопроса, почему вас это волнует, если у вас есть резервная копия; либо найдите инструмент, который не требует ручного процесса, либо вы можете настроить что-то вроде скрипта AutoIt / AHK, чтобы сделать это за вас. Seth 6 лет назад 0
Ну, хороший вопрос ... Я думаю, из любопытства. Я пытаюсь понять, как инструмент «сшивания», такой как CHKDSK, может испортить данные, которые были совершенно безупречны, и как он это делает на уровне файловой системы. Я занимаюсь восстановлением данных как случайная, полупрофессиональная деятельность и пытаюсь приобрести новые навыки, когда сталкиваюсь с непредвиденными проблемами. Я задаюсь вопросом: что можно было сделать, если бы у меня не было резервной копии, или если бы кто-то принес мне жесткий диск в таком состоянии, попросив меня восстановить как можно больше поврежденных файлов? Может быть, это бесполезное усилие, но я хотел бы попробовать ... GabrielB 6 лет назад 0
Я начал изучать AutoIt, но до сих пор не знаю, как и если бы я мог сделать то, что я хочу таким образом. Например, как я могу загрузить каждый файл с обоих жестких дисков в цикле? Как я могу определить начальное смещение (считанное из файла TXT) и конечное смещение извлекаемого блока (из-за этого WinHex должен найти как минимум 5 равных байтов и выбрать предыдущий)? Это тот случай, когда мне хотелось бы сэкономить время и силы, попробовав что-то автоматизированное, но совершенно новое, вместо того, чтобы делать это вручную через процесс, который я теперь хорошо знаю и могу сделать довольно эффективно ... GabrielB 6 лет назад 0

0 ответов на вопрос

Похожие вопросы