Как вызвать переназначение секторов, о которых сообщалось в SMART C5 (Текущее число ожидающих секторов)?


38

Значение SMART C5 моего жесткого диска Samsung HM640JJ (в ноутбуке HP Pavilion dv6) - «желтый статус = осторожность»

С5 вчера было 10, а сегодня 21.

C4 (Reallocation Event Count) = 0 а также 05 (Reallocated Sectors Count) = 0

Как заставить прошивку перераспределить их?

  • Я удалил разделы, воссоздал их снова и отформатировал весь диск.
  • Я побежал chkdsk /r /f
  • Я запустил утилиту проверки диска BIOS и другие инструменты диагностики / восстановления

Я использую загрузочный диск spinrite6 на уровне 2, чтобы сделать это .... grc.com/intro.htm
Moab

Ответы:


118

Краткий ответ: напишите что-то новое для сектора (даже нули - что делает длинный формат).

Длинный ответ

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

Жесткий диск знает, является ли значение, которое он прочитал, действительным или нет, потому что диск использует код с исправлением ошибок (ECC) для проверки правильности прочитанного содержимого. Если накопитель обнаружит, что содержимое сектора недопустимо, он попытается повторить чтение. Надежда состоит в том, что если он просто прочитает его снова, он может получить правильное содержимое сектора. Он будет повторять попытки до тех пор, пока не получит правильное значение или не достигнет своего предела времени (формально известного как ограничение времени выполнения команды или CCTL ).

Во время этих попыток диск будет казаться мертвым; так как он больше не отвечает на команды .

Запасные сектора

Большинство современных приводов содержат несколько «запасных» секторов (например, 1024 запасных сектора). Если диск распознает сектор как плохой, он прекратит его использование. Любые запросы на чтение или запись в этот поврежденный сектор будут прозрачно перенаправлены в резервный сектор. Это выделение поврежденного сектора и перераспределение его данных в резервный сектор называется событием перераспределения . И общее количество перераспределенных секторов (а также, сколько ваших резервных секторов было использовано) - это количество перераспределенных секторов .

В этом примере с одного из моих жестких дисков было обнаружено, что 64 сектора повреждены. Это означает, что 64 из свободных секторов привода были задействованы:

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ===
(05) Reallocated Sector Count  192      192    140        64

На этом же жестком диске было 4 события перераспределения . Это означает, что в четырех случаях диск помечал сектора как плохие и использовал вместо них запасные.

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ===
(05) Reallocated Sector Count  192      192    140         64
(C4) Reallocated Event Count   196      196    0            4

Что если он не сможет прочитать данные?

Эти действия перечитывания секторов, потребления запчастей за спиной компьютера - это хорошо. Это означает, что операционной системе хоста не приходится сталкиваться с проблемой сбойных секторов. Сам привод может обрабатывать эти детали сам.

Бонусная болтовня : в старые времена ваш жесткий диск поставлялся с наклейкой, прикрепленной к нему. Эта наклейка содержала список заводских дефектов ; список всех известных плохих мест на диске.

введите описание изображения здесь

Если вы выполнили низкоуровневое форматирование диска, вам пришлось использовать инструмент для ввода всех местоположений « Цилиндрическая головка-сектор» в «плохих точках».
Диски SCSI имеют команду, IOCTL_DISK_REASSIGN_BLOCKSчтобы сказать им, чтобы перераспределить плохое место на диске после того, как операционная система обнаружит его. В дисках IDE все это происходит автоматически, без необходимости вмешательства операционной системы.

В идеале диск должен распознавать сбой сектора, перемещать данные в резервный сектор и никогда больше не использовать исходный сектор. Но что произойдет, если накопитель не сможет успешно прочитать сектор?

Это то Pending Sectors, что есть. Диск обнаружил, что сектор отказывает, и его необходимо переназначить на резервный. Но он не может этого сделать, пока не сможет успешно прочитать данные. Когда накопитель знает, что сектор неисправен, и его необходимо переназначить, но он пока не может этого сделать, потому что он ожидает, чтобы получить хорошее чтение из сектора: это называется Счетчик ожидающих секторов :

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ====
(05) Reallocated Sector Count  192      192    140          64
(C4) Reallocated Event Count   196      196    0             4
(C5) Current Pending Sector    100      100    0             2

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

введите описание изображения здесь

Откажитесь от ожидающего сектора, и он будет перераспределен

Существует два способа, которыми накопитель может наконец перераспределить сектор и использовать другой резервный сектор:

  • это наконец получает хорошее чтение
  • вам все равно, что в секторе больше

Если накопитель наконец прочитал сектор, то он знает, что может перераспределить сектор.

Другой способ, которым накопитель может перераспределить сектор, - это если вы дадите ему понять, что содержимое этого сектора не имеет значения; что тебе все равно, что в нем больше. Как ты это делаешь?

Написав что-то новое для сектора.

Всякий раз, когда вы читаете или записываете сектор на жестком диске, вы должны читать / записывать весь 512-байтовый сектор 1 . Вы не можете написать только часть сектора. Когда ОС записывает данные в сектор, она должна указывать все 512 байт. Если вы скажете жесткому диску, что вы хотите, чтобы это новое содержимое заменило этот поврежденный сектор, то накопитель узнает, что вам все равно, что находится в поврежденном секторе. Затем он может перераспределить неисправный сектор на одну из запчастей, и этот сектор больше не находится в состоянии ожидания .

Вот почему, когда люди спрашивают о наличии Current Pending Sectorsтаких продуктов, общий совет - использовать инструмент (например, Data LifeGuard от Western Digital) для записи всех нулей на диск.

введите описание изображения здесь

Записывая нули в каждый сектор на диске, вы сообщаете диску, что он может наконец перераспределить все эти надоедливые ожидающие секторы . После вайпа все ваши Pending Sectorsстанут Reallocated Sectors:

ID                             Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ====
(05) Reallocated Sector Count  192      192    140          66
(C4) Reallocated Event Count   196      196    0             5
(C5) Current Pending Sector    100      100    0             0

Примечание: не обязательно использовать инструмент низкого уровня, такой как Data LifeGuard от Western Digital. Если вы дадите команду Windows выполнить полный формат тома (то есть не быстрое форматирование), она будет записывать нули в каждый сектор тома.

Система регистрации ОС поддерживает маркировку секторов как плохих

Вооружившись этими знаниями, мы рассмотрим наиболее запутанный сценарий.

До появления Integrated Drive Electronics (IDE) операционная система хоста отвечала за обнаружение поврежденных секторов, повторное считывание, перенос данных в другой сектор и маркировку старых секторов как поврежденных.

Если бы вы запускали с chkdsk /r c:использованием операционной системы хоста, он распознал бы, что «ожидающие» сектора являются плохими, и пометил бы их как плохие сам по себе, и никогда не пытался бы использовать их снова:

> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.

        12 KB in bad sectors.

Таким образом, предполагая 512-байтовый секторный жесткий диск, 12 КБ «ожидающих секторов» или в этом примере 12 КБ, помеченных ОС как «поврежденные секторы», которые будут соответствовать десятичному 24 или шестнадцатеричному 0x18, как было бы показано утилитой SMART disk такие как информация о Crystal Disk:

ID   Attribute Name            Current  Worst  Threshold  Raw  
=============================  =======  =====  =========  ====
(C5) Current Pending Sector    100      100    0            18

Примечание . Утилита Data LifeGuard v1.31 компании Western Digital (последняя на 31.08.2017), по-видимому, неправильно отображает текущие значения счетчика SMART «Raw».

Теперь, если вы выполняете полный формат (который записывает нули в каждый сектор тома) :

введите описание изображения здесь

Это означает, что все те сектора, которые были Pending, будут перераспределены. Теперь для файловой системы безопасно снова использовать эти сектора. Чтобы проинструктировать систему регистрации, что эти сектора больше не являются «плохими» , вы выполняете опцию, где она переоценивает плохие сектора:

>chkdsk c: /B

где в документации команды написано

/B              NTFS only: Re-evaluates bad clusters on the volume
                (implies /R)

Или

Согласно: https://technet.microsoft.com/en-us/library/cc730714(v=ws.11).aspx

/B              NTFS only: Clears the list of bad clusters on the volume and 
                  rescans all allocated and free clusters for errors. /b includes
                  the functionality of /r. Use this parameter after imaging a
                  volume to a new hard disk drive.

Это была целая лотерея и скриншоты, которые никогда не будут прочитаны.


У меня есть файл 200 МБ, который имеет проблему на 87%. Я получил 3 ожидающих сектора. Я попытался хэшировать файл, чтобы получить хорошее чтение и получить перераспределенные сектора, но они не перераспределяются! Результаты хеширования: окей, провал, ок, ок, провал, провал. Каждый раз, когда ОС генерировала несколько ошибок диска в средстве просмотра событий, и при нормальном хешировании она зависала в течение полминуты на уровне 87%. Все хэши равны. С5 все еще 3, а С4 все еще 0. Что вы думаете об этом?
Марк Иеронимус

@MarkJeronimus Попробуйте использовать очиститель файлов, который запишет все нули (или все случайные данные) в файл. Это должно побудить вас осознать, что вы больше не заботитесь об этих секторах.
Ян Бойд

Я сделал полный формат, но все еще без изменений.
Марк Иеронимус

2
Одна вещь, которую я не совсем понимаю: возможно ли (а) показать, какие файлы содержат текущие секторы С5, и (б) «обнулить» эти сектора, т.е. переместить их в С6, и перестать пытаться их читать? Я не хочу, чтобы мой жесткий диск застревал в бесконечном цикле сбоя чтения; предпочел бы затемнить эти сектора и удалить соответствующие файлы (вручную восстановить их из какого-либо другого источника, если они важны).
ММ

1
Я не хочу обнулять весь диск, просто обойти плохую часть. Посмотрите на эту программу, спасибо
ММ

5

Вам не нужно ничего делать - пока. Счет перераспределения означает «диск обнаружил дефектный сектор и успешно перераспределил его». Прошивка уже исправила проблему.

Вам просто нужно знать, что диск начинает выходить из строя. В какой-то момент в будущем на диске не останется свободных секторов для перераспределения, и вы потеряете данные. Если какой-то важный блок потерян, вы можете потерять все данные на диске.

Так что следите за этим значением или купите новый диск прямо сейчас, чтобы вы могли забыть об этом.


3

У меня был хороший опыт работы с методом, описанным здесь https://www.smartmontools.org/wiki/BadBlockHowto . Мой диск шумел и перестал работать, поэтому я использую умный отчет и формулу для вычисления плохого блока и использую dd для его очистки. Мне повезло, потому что смарт все еще сообщает о текущем количестве секторов, но диск работает уже 2 года или около того. Я купил замену, но я никогда не использовал ее. Мне кажется, что умный тоже не так точен.


oflag = прямая опция для dd при записи нулей в плохие места для принудительного перераспределения (как предложено в этой ссылке) - это та часть, которую я искал. Благодарность!
Антон

2

Может быть, вы не знаете этот инструмент: HD Sentinel

Hard Disk Sentinel (HDSentinel) - программное обеспечение для мониторинга и анализа SSD и HDD с несколькими ОС. Его целью является поиск, тестирование, диагностика и устранение проблем с жесткими дисками, создание отчетов и отображение состояния SSD и HDD, снижения производительности и сбоев. Hard Disk Sentinel дает полное текстовое описание, советы и отображает / сообщает наиболее полную информацию о жестких дисках и твердотельных дисках внутри компьютера и во внешних корпусах (жесткие диски USB / жесткие диски e-SATA). Для обеспечения максимальной безопасности ваших ценных данных доступно множество различных предупреждений и параметров отчетов.

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


1

Вам нужно использовать инструмент, который пишет в каждый сектор диска. Иначе, нет способа сделать это. Если диск выделил резервный сектор и переназначил его, какие данные он должен поместить в резервный сектор? Он понятия не имеет, поскольку попытка чтения из существующего сектора не удалась. Только операция записи может очистить ошибку.


Форматирование всего жесткого диска - это операция записи в каждый сектор? Я уже отформатировал диск (команда форматирования на основе Windows, нет «быстрого форматирования»). Спасибо
edteke

2
Быстрый формат - это не операция записи в каждый сектор, а обычный формат. Вы всегда можете использовать DBaN . Обычный формат хотя бы уменьшил количество?
Дэвид Шварц

Я сделал обычный формат (не быстрый формат), я ожидал обратный отсчет или переназначение после формата, но число было таким же. Спасибо
edteke

Это очень странно, на самом деле. Был ли раздел отформатирован по размеру всего диска?
Дэвид Шварц

@edgh: Обычный формат не помогает, когда у вас есть такая ошибка. Я предлагаю вам попробовать мой метод.
Gigamegs

1

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


1

Попробуйте загрузочные компакт-диски Spinrite 6 или HDD. Они пишут поверхностные тесты, поэтому он должен очистить ожидающие сбойные секторы и увеличить перераспределенное количество.


0

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

Victoria - это графический интерфейс низкого уровня для вашего диска, который включает (если вы действительно этого хотите!) Фактическое побайтное редактирование диска, принудительное переназначение секторов при сбоях, поддерживает USB-накопители и эти дешевые USB-2-sata в китайском отсеке адаптеры, изменение заводских настроек, интеллектуальные атрибуты и функции и многое другое.

Недостаток - он разработан российским разработчиком, и я оставляю вас, чтобы открыть коробку Pandora, если у вас есть проблемы с ней ...

С Викторией я схватил первый сектор, который не удалось переназначить, запустил сканирование «Чтение» каждого сектора после этого с принудительным переназначением. Затем я запустил «Проверка» всего диска, повторно запустил смарт-проверку, и теперь все в порядке ...

... Но у меня есть запасные диски, поэтому я сейчас их заменяю. Это было немного страшно, так как я тоже между решениями для резервного копирования, всех времен!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.