Как мне найти файлы в определенном плохом секторе?

778
Chloe

Я клонировал свой сбойный жесткий диск с помощью Clonezilla с --rescueопцией, и в ней было много плохих секторов. Некоторые плохие сектора были 3194529280, 3194529792, 3194530304, 3194530816. Как я могу узнать, какие файлы были в этих поврежденных секторах?

Я жду ответа как

> whichfileisatsector.exe 3194529280 c:\Users\Chloe\Pictures\cat.jpg 

Я видел блог, в котором упоминалась nfi.exeссылка на Microsoft, но он больше не доступен и ссылка не работает.

Windows 8.1

3
Кажется, что просмотр диска через sysinternals https://docs.microsoft.com/en-us/sysinternals/downloads/diskview скажет вам, что это за файл, если это не системный файл, и по сути скажет вам, если это система файл или нет, если вы хотите убедиться, что это не личный файл. Damon 6 лет назад 0
@Damon Это заставляет вас щелкнуть пиксель и показывает файл в этом месте. Это не то же самое, что указать точный сектор. Нажатие на карту пикселей - это процесс проб и ошибок, чтобы найти правильный сектор, и один пиксель может даже иметь много секторов и файлов! Chloe 6 лет назад 0
Не совсем методом проб и ошибок, так как карта не случайна; вероятно, потребуется больше времени, чтобы отобразить ваш диск, чем найти сектор. Я согласен, что было бы неплохо иметь какую-то магическую команду, но в то же время вы можете довольно быстро найти нужную информацию; Это может занять некоторое время навигации. Я просто нанёс на карту свой диск, и он показался мне довольно быстрым и легким. Damon 6 лет назад 0

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

3
GabrielB

- Вы найдете nfi.exe здесь:
http://www.jumpjet.info/Application-Software/Windows/win2k.htm
Загрузите «oem3sr2.zip», он там есть. Команда:

nfi X: [sector number] (Replace "X:" with the relevant drive letter.) 

Вы также можете получить полный список всех файлов в данном разделе, если вы не указали номер сектора:

nfi X: >"D:\nfi listing.txt" (Replace "X:" with the relevant drive letter. Adjust the name/path of the output file.) 

(Результирующий текстовый файл может быть огромным, если в анализируемом разделе много файлов. Для жесткого диска объемом 3 ТБ, над которым я сейчас работаю, он извлек файл списка размером 425 МБ.)

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

fsutil volume querycluster X: [cluster number] (Replace "X:" with the relevant drive letter.) 

Здесь входные данные должны быть в кластерах, поэтому вы должны разделить номер сектора на количество секторов в кластере, обычно 8 для общего размера кластера 4 КБ. Представление результата более упорядочено, чем в nfi.exe, что может сбивать с толку, если в файле много фрагментов (очевидно, один файл может быть представлен в виде нескольких номеров файлов в MFT, а nfi отображает только одну из этих частей, Я еще не совсем понял, как это работает); кроме того, он может дать короткое имя вместо полного имени, что потребует дополнительных шагов для точной идентификации этого файла (например, я получил «2017_0 ~ 3.MP4», в папке, полной видеофайлов с полным именем, начинающимся с «2017_0»). С fsutil вы получаете одну строку, которая дает вам только ту информацию, которая вам нужна, надежно:

Cluster 0x000000001ec1ba42 utilisé par ----D \fichiers corrompus\2017_07_2122_49 - Arte - 101 - Depeche Mode.mp4::$DATA 

(Номер кластера всегда отображается в шестнадцатеричном формате, но вы можете ввести его в десятичном формате; здесь я запросил кластер 516012610. Он на французском языке, потому что я во Франции!: ^ P)
С обоими инструментами вы должны предоставить логический сектор или номер кластера, чтобы получить правильный результат, поэтому, если Clonezilla предоставил вам список абсолютных или физическихномера секторов (что, вероятно, имеет место, хотя я и не пробовал, поскольку программное обеспечение для клонирования предназначено для копирования всего, что не имеет отношения к схеме разделения), необходимо удалить смещение раздела. Например, с жестким диском на 3 ТБ, над которым я работаю, есть только один раздел, начинающийся в секторе 264192, поэтому, если у меня есть абсолютное число поврежденных секторов (предоставленных, например, HD Sentinel - см. Ниже), скажем, 4128365072, и я хочу знать, к какому файлу он принадлежит, мне нужно набрать 4128365072 - 264192 = 4128100880 с помощью nfi.exe и 4128100880/8 = 516012610 с помощью fsutil.

Другие известные мне инструменты, которые могут предоставить такую ​​информацию:

- Hard Disk Sentinel (не бесплатный, но это лучшее из известных мне программ для оценки работоспособности жесткого диска) предоставляет абсолютные или физические номера секторов (относительно всего физического устройства, а не данного раздела). Когда вы запускаете сканирование поверхности, нажимаете на данный блок, он отображает шестнадцатеричное представление первого сектора из этого блока, затем вы можете перейти в любой другой сектор, нажав «Перейти» (вы также должны указать абсолютное значение). номер сектора), и если вы щелкнете по полю «Определить информацию о файле для сектора», он покажет, какой файл занимает этот сектор, и полный список секторов, занятых этим же файлом. Однако у него есть предостережение: он будет пытаться фактически прочитать каждый сектор, запрошенный таким образом (чтобы отобразить его содержимое), что может излишне подчеркнуть уже поврежденную область и расширить ее, не восстанавливая ничего, как пытается сделать программа клонирования. (У меня есть похожая проблема, чтобы иметь дело спрямо сейчас ; в моей ситуации количество плохих секторов увеличилось, когда я пробовал этот метод, хотя я пытался идентифицировать затронутые файлы, обращаясь к соседним секторам, вместо того, чтобы напрямую запрашивать те, которые уже определены как плохие).

- Recuva предоставляет список номеров логических кластеров для каждого файла на вкладке «Информация». Он не делает напрямую то, что вам нужно: он предоставляет список кластеров, занятых данным файлом, но не позволяет определить, какой файл находится в каком секторе. Тем не менее, эта менее известная функциональность Recuva может использоваться в сочетании с указанными выше инструментами: когда вы знаете, какой файл занимает данный поврежденный сектор, может быть полезно узнать, какие секторы также заняты этим файлом, чтобы увидеть, записан ли он. например, последовательно или сильно фрагментированными (в моем случае несколько затронутых файлов сильно фрагментированы, поэтому я практически не мог извлечь их из частичного восстановления после аварийного восстановления соответствующего диапазона секторов без информации о файловой системе, как я изначально предполагал).
Обязательно запустите быстрое сканирование(метод по умолчанию), этого достаточно для анализа MFT и получения индексов выделенных в данный момент файлов, и он не будет перегружать жесткий диск, полностью анализируя его, если поврежденные области будут расположены дальше (как в случае с моим: все плохие сектора находятся около отметки 2TB). Если файл с плохими секторами достаточно велик, а плохие секторы находятся не в самом начале, он должен быть безвредным, но с небольшими файлами или, если плохие сектора находятся в начале, просто нажмите на них, чтобы получить список кластеры, которые они занимают, могут увеличить урон, поскольку Recuva попытается отобразить предварительный просмотр или, по крайней мере, заголовок.

- Defraggler от Piriform (той же компании, которая разрабатывает Recuva): при нажатии на конкретный блок на карте тома он отобразит список файлов, содержащихся в этом же блоке (даже не фрагментированные файлы). А если щелкнуть имя файла на вкладке «Список файлов» (на которой отображаются только фрагментированные файлы), будут выделены все блоки, содержащие хотя бы один сектор, принадлежащий этому файлу. К сожалению, нет цифровой индикации интервалов смещения / сектора / кластера. (Я написал их, чтобы запросить несколько улучшений, которые сделали бы эту замечательную функцию более практичной.)

- R-Studio (тоже не бесплатная, но это одна из лучших программ для восстановления, которую я пробовал) может отображать сектора, занятые любым файлом в дереве восстановления (даже те, которые находятся в «Дополнительные найденные файлы», которые в настоящее время не выделены, но вырезаны в соответствии с их структурой верхнего / нижнего колонтитула), открыв шестнадцатеричное средство просмотра и щелкнув по вкладке «Сектора», - но в настоящее время он не предоставляет способа экспорта этого списка (вы можете копировать значения по одному с помощью сочетаний клавиш CTRL + C, но не выбирать их все с помощью Recuva или HD Sentinel можно скопировать весь список для дальнейших исследований).
Вы также можете определить, какой файл находится в данном секторе с помощью этого метода:
1) В дереве восстановления нажмите File => «Показать файлы в HexEditor».
2) Затем вернитесь на вкладку представления устройства, щелкните правой кнопкой мыши на томе, который вы исследуете, затем «Просмотр / редактирование»: откроется HexEditor (который является более шестнадцатеричным средством просмотра, по умолчанию он находится в режиме только для чтения, как и должно быть в целях восстановления данных). Здесь вы можете ввести номер сектора и отобразить его, а также получить имя файла, к которому он принадлежит. Однако существует несоответствие: для отображения содержимого сектора необходимо ввести его логический номер, но чтобы получить имя файла, к которому он принадлежит, необходимо ввести его абсолютное число, добавив или удалив смещение раздела.
Опять же, в случае сбоя жесткого диска (аппаратного сбоя) этот метод является рискованным, поскольку программное обеспечение будет пытаться получить доступ к дефектным секторам.

- С помощью ddru_ntfsfindbad, инструмента из набора инструментов ddr_utility, вы можете получить список файлов, занимающих сектора, которые ddrescue (программа клонирования командной строки, специально предназначенная для восстановления данных из сбойных блоков хранения) не смогла прочитать. Он работает с лог-файлом, сгенерированным ddrescue. В этом случае вы уже клонировали отказавший жесткий диск с помощью Clonezilla, но если есть только несколько поврежденных секторов, все равно можно создать собственный файл журнала из шаблона, не проходя процедуру клонирования заново. Его преимущество заключается в предоставлении подробной информации, в частности, о размере поврежденных данных для каждого затронутого файла. Хотя он работает на Linux, что является еще одним предупреждением, так что это не самое простое решение в вашем случае, но оно может помочь другим, кто действительно сделал восстановление с помощью ddrescue.