11

Емкость моего жесткого диска составляет 500 ГиБ. 150 ГБ данных были удалены случайно. После этого инцидента я не записал ни одного байта на диск, поэтому мои данные гарантированно будут там. Я пробовал такие приложения, как Recuva, все приложения показывают, что данные есть, и позволяют мне сохранять данные в другом месте, но проблема в том, что я не хочу этого делать.

Я просто хочу, чтобы файлы снова были помечены как не удаленные в MFT. Есть ли какое-либо приложение для этой цели? Я много искал, но ничего не нашел, можно ли пометить файлы как удаленные в MFT или я что-то упустил? Я мог бы написать приложение для этого, если бы знал, как сделать это вручную.

2 ответа2

5

Удаление файлов на томе NTFS не так просто, как перевернуть один бит. Это правда, что разница между удаленным и не удаленным файлом составляет всего один бит в MFT, но необходимо также восстановить содержимое файла, которое хранится в виде потоков, а также повторно пометить удаленные сектора, как используется в псевдофайл $ Bitmap, который содержит один бит на сектор, каждый бит указывает, используется ли соответствующий кластер (выделен) или свободен (доступен для выделения).

Сложность работы такова, что все инструменты восстановления предпочитают не записывать на поврежденный том. Например, маркировка сектора в $ Bitmap как использованная может привести к перекрестной цепочке, если этот сектор уже использовался другим файлом.

Эта статья очень хорошо продемонстрировала проблему с шестнадцатеричными дампами:
Серия «Восстановление файлов» в Windows: часть 5 Восстановление удаленного файла из файловой системы NTFS вручную.

В другой статье даже содержится исходный код программы, которую можно изменить, чтобы отключить "удаленный" бит: восстановить файл в NTFS.

Существует довольно много дисковых редакторов NTFS, которые могут редактировать MFT, чтобы перевернуть этот бит. Некоторые из них, которые я нашел через Google (но, к счастью, никогда не использовал):
WinHex
NTFS Data Recovery Toolkit
DMDE
Бесплатная Active Disk Editor

Возможное решение, которое могло бы даже работать, состояло бы в том, чтобы отменить удаленный бит в MFT, а затем использовать утилиту chkdsk, чтобы попытаться восстановить содержимое. Эта утилита может восстановить сектора-цепочки файлов, сектора которых были ошибочно помечены как доступные для перераспределения, и исправит $ Bitmap.

Однако всегда есть вероятность, что эта процедура может уничтожить ваш диск.

Вот почему вы и все вышеперечисленные комментаторы (в том числе и я) не нашли ни одного продукта, способного к восстановлению на месте. Возможности испортить ваш диск просто слишком велики для тех, кто не является сотрудником Microsoft, работающим над NTFS.

Моя лучшая рекомендация для вас - приобрести второй жесткий диск и восстановить файлы на нем. Я полагаю, вы обнаружили, что одного резервного диска недостаточно. У меня уже было несколько случаев, когда друзья просили меня восстановить их единственную резервную копию, и я всегда советую им (иногда слишком поздно) иметь два резервных диска.

Кроме того, по крайней мере один из двух резервных дисков должен быть отключен от компьютера. Я советую это, услышав о случае, когда компьютер «поджарил» себя и каждое подключенное USB-устройство, оставив владельца без данных и без резервного копирования за один удар.

2

Как я уже говорил вчера, вы всегда можете попробовать сделать это вручную с помощью шестнадцатеричного / дискового редактора, если есть только несколько файлов для восстановления, но я, конечно, не рекомендовал бы это.

После нескольких минут исследований и тестирования мне в итоге удалось пометить файл как не удаленный в $MFT , но проблема в том, что этого недостаточно, вы также должны пометить кластеры, которые он использует, в $BITMAP . Это задание оказалось слишком сложным и слишком много работы, чтобы найти и сделать, и я в конце концов сдался. Я подумал запустить chkdsk /f чтобы увидеть, обнаружит ли он несоответствие и правильно ли пометить кластеры, но это было слишком рискованно, поскольку в разделе NTFS, на котором я тестировал, было несколько других файлов, которые я не хотел потерять.

(Также обратите внимание, что, в отличие от FAT *, NTFS сохраняет цепочку кластеров для файла в $MFT , но это не гарантирует, что у вас будет доступ ко всей цепочке кластеров во время восстановления, поэтому фрагментированный файл может закончиться быть невосстановимым. Даже если вы ничего не записали на диск после случайного стирания, это не значит, что Windows этого не сделала. Например, он мог записать в \System Volume Information , особенно если запущена служба теневого копирования/ предыдущих версий.)

Очевидно, что ручное восстановление не является ни решением, ни ответом на ваш вопрос, поэтому я разместил его только в качестве комментария. К сожалению, все мои поиски оказались пустыми, и краткий ответ на ваш вопрос: нет, нет общедоступных программ, которые могут просто пометить файл как не удаленный на томе NTFS.

(Существуют - дорогие - криминалистические программы, которые могут делать причудливые вещи с дисками и восстанавливать файлы и представлять необработанные данные через фильтр, чтобы показать структуры и тому подобное, но даже они не помогут, потому что они специально не доработка оригинального диска.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .