Недавно ошибка при перемещении большого файла по сети привела к удалению оригинала до завершения перемещения.

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

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

Есть ли способ прочитать или назначить только сектора, которые НЕ являются частью существующего файла?

2 ответа2

0

Сначала это не будет быстрым или легким.

Сделайте резервную копию образа на случай, если что-то пойдет не так, или, скорее всего, вы случайно ошиблись.

Здесь вычитающий процесс.

Если вы представляли все, это должно быть установлено.

Смонтируйте его, если вы не можете сделать это в Windows, Linux сделает это. mount -o loop /image.img / точка монтирования

Получить или написать программу перезаписать каждый файл с 0 для точного количества байтов размера файла. Программа, вероятно, может быть написана на C за 30-60 минут с небольшим тестированием. Удалите файл, который вы только что написали.

Теперь повторите для каждого файла в изображении.

За исключением удаленных данных и небольшой части инфраструктуры, остальная часть сектора будет равна 0.

Я забыл о зомби. Конечно, он удалит все выделенные файлы, но есть вероятность, что есть гигабайты остатка файла от ранее удаленных файлов. Файлы, которые были удалены и частично перезаписаны и удалены, и так далее, чтобы иметь дело с.

0

Еще сложнее, возможно, на это уйдут недели:

В Linux есть встроенные библиотеки для NTFS. Я никогда не делал этого, поэтому я не знаю, насколько легко / сложно это будет.

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

Написание указанной программы может занять несколько недель.

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