Як примусити переробляти сектори, про які повідомляється в SMART C5 (поточний очікуваний рівень сектора)?


38

Значення SMART C5 мого жорсткого диска Samsung HM640JJ (у ноутбуці HP Pavilion dv6) - "жовтий статус = обережність"

C5 вчора був 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 ).

Під час цих спроб привід видаватиметься мертвим; так як він більше не відповідає на команди .

Запасні сектори

Більшість сучасних накопичувачів містять ряд «запасних» секторів (наприклад, 1,024 запасних секторів). Якщо привід визнає сектор поганим, він припинить його використовувати. Будь-які запити на читання або запис у цей пошкоджений сектор прозоро будуть перенаправлені на запасний сектор. Це відмітка поганого сектору та перенаправлення його даних у запасний сектор називається подією перерозподілу . А загальне число секторів , які були перерозподілені (і так як багато хто з ваших запасних секторів витрачено) є графом Reallocated сектора .

У цьому прикладі з одного з моїх власних жорстких дисків було виявлено погано 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

Що робити, якщо він ніколи не може прочитати дані?

Ці дії перечитування секторів, споживання запасних частин, все за спиною комп'ютера - це добре. Це означає, що хост-операційна система не повинна вирішувати питання несправних секторів. Сам привід може сам обробляти ці деталі.

Бонусна балаканина : за старих часів ваш жорсткий диск постачався із закріпленою на ньому наклейкою. Ця наклейка містила список фабричних дефектів ; список усіх відомих поганих місць на диску.

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

Якщо ви виконали формат накопичувача низького рівня, вам довелося скористатися інструментом для введення всіх місць поганих місць у Cylinder-Head-Sector .
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, загальна порада - використовувати інструмент (наприклад, LifeGuard даних Digital 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 , виконати повний формат (тобто не- Швидкий формат) томи, він буде записує нулі в кожному секторі в обсязі.

Система подачі в ОС підтримує маркування секторів як поганих

Озброївшись цими знаннями, ми вивчимо часто заплутаний сценарій.

До появи інтегрованої електроніки приводу (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 наприклад, інформація про кристалічний диск:

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

Примітка : Утиліта Data DigitalGuard 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%. Усі хеші рівні. C5 все ще 3, а C4 - все-таки 0. Що ви ставитесь до цього?
Марк Єронім

@MarkJeronimus Спробуйте скористатися файловим склоочисником, який запише у файл всі нулі (або всі випадкові дані). Це має наштовхнути на розуміння, що ви більше не переймаєтесь цими секторами.
Ян Бойд

Я зробив повний формат, але все одно ніяких змін.
Марк Єронімус

2
Я не дуже розумію одне: чи можна (а) показати, які файли містять поточні сектори C5, і (b) "запустити" ці сектори, тобто перенести їх на C6, і перестати намагатися їх читати? Я не хочу, щоб мій жорсткий диск застряг у нескінченному циклі зчитування; скоріше заблокуйте ці сектори та видаліть файли, про які йдеться, (відновити їх вручну з іншого джерела, якщо вони важливі).
ММ

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

5

Вам нічого не потрібно робити - поки. Підрахунок перерозподілу означає "диск виявив несправний сектор і успішно його перерозподілив". Прошивка вже вирішила проблему.

Вам просто потрібно пам’ятати, що накопичувач починає виходити з ладу. У якийсь момент у майбутньому накопичувачі не залишиться запасних секторів для перерозподілу, і ви втратите дані. Якщо якийсь важливий блок буде втрачено, ви можете втратити всі дані на диску.

Тому слідкуйте за цією цінністю або купуйте новий привід відразу, щоб ви могли забути про це.


3

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


oflag = прямий варіант для dd, коли записувати нулі у погані локації, щоб змусити перерозподіл (як це пропонується у цьому посиланні) - це частина, яку я шукав. Спасибі!
Антон

2

Можливо, ви не знаєте цього інструменту: HD Sentinel

Sentinel на жорсткому диску (HDSentinel) - це програмне забезпечення для моніторингу та аналізу SSD та HDD з декількома ОС. Його мета - знайти, протестувати, діагностувати та усунути проблеми з жорстким диском, повідомити та відобразити стан здоров'я SSD та HDD, погіршення продуктивності та збої. Жорсткий диск Sentinel дає повний текстовий опис, підказки та дисплеї / звіти найбільш вичерпної інформації про жорсткі та твердотілі диски всередині комп'ютера та у зовнішніх корпусах (жорсткі диски USB / жорсткі диски SATA). Для забезпечення максимальної безпеки ваших цінних даних доступно безліч різноманітних попереджень та варіантів звітів.

Це здається чудовим інструментом для таких дій. Але будьте обережні, деякі варіанти запуску можуть повністю знищити дані.


1

Потрібно використовувати інструмент, який записує до кожного сектора накопичувача. В іншому випадку цього немає ніякого способу зробити. Якщо накопичувач виділив запасний сектор і перезаписав, які дані він повинен містити у запасному секторі? Поняття не має, оскільки його спроба прочитати з існуючого сектору не вдалася. Тільки операція запису може усунути помилку.


Форматування всього жорсткого диска - це операція запису в кожен сектор? Я вже відформатував накопичувач (команда форматів на основі Windows, немає «швидкого формату»). Спасибі
edteke

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

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

Це насправді дуже дивно. Чи був розділ, який ви відформатували, розмір всього диска?
Девід Шварц

@edgh: звичайний формат не допомагає, коли у вас є така помилка. Я пропоную спробувати мій метод.
Gigamegs

1

Нульовий запис, інакше відомий як Формат низького рівня. Зробити це можна лише за допомогою утиліти диска виробника, як правило. Якщо виникла помилка на жорсткому диску, вона може повернутися майже відразу.


1

Спробуйте завантажувальні компакт-диски з регенератором Spinrite 6 або HDD. Вони пишуть поверхневі випробування, тож слід усунути очікувані погані сектори та збільшити кількість перерозподілених рахунків.


0

Щоб додати ще одне рішення, нещодавно я використав Victoria для ремонту 2 дисків, які не вдалися до відкладених секторів, але диск не перезавантажив їх автоматично самостійно.

Вікторія - це графічний інтерфейс низького рівня до вашого диска, який включає (якщо ви дійсно хочете!) Фактичний байт шляхом редагування байтів диска, примусовий перезапуск сектору на помилки, підтримує USB-накопичувачі та ті дешеві USB-2-sata China-bay USB-2 адаптери, зміна заводських налаштувань розумних атрибутів та функцій тощо.

Мінус - він розроблений російським розробником, і я залишаю вам відкрити скриньку тієї Пандори, якщо у вас є проблеми з нею ...

З Вікторією я схопив перший сектор, який не вдалося здійснити повторний перезапуск, провів сканування "Прочитати" кожного сектору після цього із силовим переплануванням. Потім я запустив "Перевірити" всього диска, повторно запустив смарт-перевірку, і це вже нормально ...

... Але у мене є запасні диски, тому я зараз перебуваю в їх заміні. Це було трохи страшно, оскільки я також між резервними рішеннями, усіх часів!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.