у меня есть жесткий диск 3 ТБ, который имел 16 плохих секторов в соответствии с интеллектуальными данными. Я провел поверхностный тест с HDSentinel, который увеличил это число примерно до 100. Затем я непосредственно скопировал каталоги на здоровый жесткий диск емкостью 3 ТБ в порядке важности (используя Robocopy или SynchronizeIt, которые сохраняют все метки времени, включая каталоги), что еще больше увеличило количество плохих секторов до 416. Я думаю, что лучшим курсом действий было бы полностью клонировать его на другой жесткий диск, для того, чтобы спасти как можно больше данных, как это возможно, так как каждая попытка чтения плохой сектор, кажется, сделать проблему хуже, но всегда есть риск жесткого диска полностью провал, прежде чем процесс закончится, и некоторые каталоги здесь гораздо важнее, чем другие – во всяком случае, что сделано, и я успешно восстановил то, что имело значение больше всего.
в ходе проверки поверхности, HDSentinel предоставлен список нечитаемых секторов, с которых я выделил 6 файлов пострадали плохие сектора; я их переместил в специальную папку и старался их пока не трогать-ну, говорю пробовал, потому что сначала я хотел переместить их с помощью Проводника Windows 7, но эта глупая вещь настаивала на их разборе, когда они были выбраны, чтобы отобразить предварительный просмотр, который заморозил систему на некоторое время и добавил еще несколько плохих секторов к подсчету, поэтому мне пришлось переместить эти файлы из командной строки...
побочный вопрос : как я могу превентивно отключить просмотр в таком случае ?
теперь, у меня есть несколько вариантов, которые я знаю, чтобы иметь дело с этими файлами:
- либо попробуйте скопировать их непосредственно с Roadkil Unstoppable Copier (который должен пропускать плохие сектора и спасать то, что можно спасти).
- или запустите ddrescue, чтобы извлечь конкретно диапазон секторов, занятых поврежденными файлами (плюс первые 10 ГБ, чтобы иметь системные файлы, включая MFT, которые должны позволить мне извлечь фрагментированные файлы без головной боли – эти поврежденные файлы в основном догоняющих телевизионных передач (больше не в интернете), которые были загружены одновременно, и я думаю, что именно поэтому они были написаны чересстрочной разверткой, с тысячами фрагментов каждый, несмотря на жесткий диск, имеющий много свободного места).
во втором случае (который, вероятно, является самым безопасным в этот момент), чтобы быть уверенным, что я ничего не пропускаю, я хотел бы получить список файлов, имеющих хотя бы один сектор в потенциально поврежденном районе. Первый плохой сектор был определен номер 4131708368, последний был 4157865694, поэтому я хочу определить, какие файлы находятся между секторами 4131440000 и 4158400000, чтобы иметь хороший запас прочности.
после прочтения этой теме, я пробовал два метода :
-
С nfi.exe (принимает значения секторов в качестве входных данных, я поставил Шаг 8, чтобы получить только одно значение на 4 КБ cluster)
FOR /L %N in (4131440000,8,4158400000) DO nfi.exe R: %N >>"G:nfi ST3000DM001 4131440000-4158400000.txt"
но это не работает, он отображает отрицательные значения. Это, кажется, проблема в 32-битный предел для пошагового расчета, несмотря на чисел до 2^32. Сделав тесты, я обнаружил, что проблема появилась в 2147483648, что ровно 2^31. Почему так ?
-
С fsutil (требует значений кластера в качестве входных данных, полученных путем деления значений секторов на 8) :
FOR /L %N in (516430000,1,519800000) DO fsutil volume querycluster R: %N >>"G:fsutil querycluster ST3000DM001 516430000-519800000.txt"
это работает, и презентация более упорядочена, чем с nfi.exe (одна строка на кластер), но это мучительно медленно : около 1 секунды на значение, это займет 936 часов, чтобы закончить. Кажется, гораздо быстрее, если значения кластера вводятся в строку в одной строке, но я бы не знал, как сделать инкрементный подсчет, чтобы добавить все значения в одной строке, не вводя их, и я думаю, что бедный маленький cmd.exe бы подавиться с 3370000 значений по той же команде...
есть ли лучший способ получить то, что я хочу ?
Звучит ли это как безопасный и разумный подход к такого рода проблеме ?
спасибо.