Краткий ответ: Запишите что-нибудь новое в сектор (даже нули - что делает длинный формат).
Длинный ответ
Жесткие диски сегодня пытаются скрыть плохие сектора от главного компьютера. Хост-компьютер просто просит диск вернуть содержимое определенного номера сектора. Обычно накопитель читает сектор, возвращает его хост-машине, и все в порядке.
Жесткий диск знает, верно ли прочитанное им значение, потому что диск использует Код исправления ошибок (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
А что, если он никогда не сможет прочитать данные?
Эти действия по повторному считыванию секторов, потреблению запасных частей, все это за спиной компьютера - хорошо. Это означает, что операционная система хоста не должна иметь дело с проблемой отказа секторов. Сам накопитель может справиться с этими деталями. 0x2 и 0x2 и > Бонусная болтовня : В старые добрые времена, ваш жесткий диск поставляется с наклейкой, прикрепленной к нему. Эта наклейка содержала список Factory Defect List (Список заводских дефектов); список всех известных проблемных мест на диске.
Если вы выполняли низкоуровневый формат диска, вам пришлось использовать инструмент для ввода всех направлений “Головной сектор цилиндра ” плохих мест.
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 секторов, которые диск распознает как плохие, но не может быть перемещен. Если бы вы прочитали один из этих “незавершенных секторов”, накопитель, скорее всего, повторил бы попытку (и повторил, и повторил), а в конечном итоге вернул бы операционной системе хост-системы ошибку чтения:
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
Откажитесь от отложенного сектора, и он получит перераспределенные
Есть два способа, которым диск может, наконец, рераспределить сектор, и потреблять другой запасной сектор:
- он, наконец, получает хорошее чтение
- вам уже все равно, что в секторе
Если диск, наконец, прочитал сектор, то он знает, что он может перераспределить сектор.
Другой способ, которым диск может перераспределить сектор - если вы дадите ему понять, что содержимое этого сектора не имеет значения; вам больше не важно, что в нем находится. Как это сделать?
Записывая что-то новое в сектор.
Всякий раз, когда вы читаете или записываете в сектор на жестком диске, вы должны читать/записывать вентиль 512-байтовый сектор1. Вы не можете записать только часть сектора. Когда операционная система записывает данные в сектор, она должна указать вентиль 512-байт. Если вы сообщите жесткому диску, что хотите, чтобы это новое содержимое заменило этот плохой сектор, то диск будет знать, что вам даже не важно, что в данный момент находится в плохом секторе. Затем он может переместить плохой сектор в один из запасных частей, и этот сектор больше не будет непрерывным.
Вот почему, когда люди спрашивают о том. Имея некоторые 0x6 и *, общий совет заключается в использовании инструмента (например, Western Digital’s Data LifeGuard), чтобы записать все нули на диск. 0x2 и 0x2 и 0x1 и 0x2 и 0x2 и 0x2 и, записывая нули в каждый сектор на диске, вы говорите диску, что он может, наконец, перераспределить все эти надоедливые *подлежащих секторов. После протирания, все ваши Current Pending Sectors
станет Pending Sectors
: 0x2 и 0x2 и 0x1 и 0x2 и 0x2 и 0x2 и Заметка: Это не обязательно использовать “низкий уровень” инструмент, как Western Digital’s Data LifeGuard. Если вы инструктируете Windows выполнять тома в формате full (т.е. не в формате Quick), он записывает нули в каждый сектор тома.
Файловая система ОС поддерживает маркировку секторов как плохих
Вооружившись этим знанием, мы рассмотрим часто запутанный сценарий.
До появления Integrated Drive Electronics (IDE) операционная система хоста отвечала за обнаружение плохих секторов, повторную попытку чтения, перемещение данных в другой сектор и маркировку старых секторов как плохих.
Если бы вы запустили Reallocated Sectors
с помощью хостовой операционной системы, она бы признала, что “отложенные” сектора плохие, и сама пометила бы их как плохие, и никогда не пыталась бы использовать их снова:
> 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, как это показано в S. Утилита диска M.A.R.T., такая как Crystal Disk Information (Информация о кристаллических дисках):
ID Attribute Name Current Worst Threshold Raw
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18
Заметка : Утилита Data LifeGuard v1.31 компании Western Digital (последняя на момент 8/31/2017) не отображает корректно текущие значения счетчика S.M.A.R.T. ‘Raw’.
Теперь, если вы выполните полный формат (который записывает нули в каждый сектор тома):
>chkdsk c: /B
Это означает, что все те сектора, которые были chkdsk /r c:
, будут перераспределены. Теперь для файловой системы безопасно снова использовать эти сектора. Чтобы указать файловой системе, что эти сектора больше не являются “плохими”, вы выполняете опцию, при которой она переоценивает плохие сектора:
/B NTFS only: Re-evaluates bad clusters on the volume
(implies /R)
, где в документации команды написано
/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.
Или
Согласно https://technet.microsoft.com/en-us/library/cc730714(v=ws.11).aspx
Это была целая куча написания, и целая куча скриншотов, для чего-то, что никогда не будет прочитано.