Неможливо записати нулі на погані сектори / на жорсткий диск, не рахуючи перерозподілених секторів


10

У мене є привід, який повідомляє, що поточні очікувані сектори "45". Я використовував badblocks для виявлення секторів і я намагався писати нулі до них з дд .

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

Однак на цьому диску як необмежених значень Reallocated_Sector_Ct, так і Reallocated_Event_Count дорівнюють 0, і DD не дає помилок вводу / виводу, коли я намагаюся записати нулі в погані сектори. Адже добре працює, коли я пишу в хороший сектор.

# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error

Чи означає це, що мій привід, певним чином, не має запасних секторів, які можна використовувати для перерозподілу? Моя драйвова загалом жахлива людина? (Диск насправді не мій, я допомагаю другові. Можливо, вони просто придбали дешевий диск або щось подібне.)

У випадку, якщо це доречно, ось висновок smartctl -i :

Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD15EARS-00Z5B1
Serial Number:    WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity:    1,500,301,910,016 bytes [1.50 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

ОНОВЛЕННЯ:
Я запустив shredна диску, що призвело до того, що Current_Pending_Sector перейшов до нуля. Однак Reallocated_Sector_Ct та Reallocated_Event_Count досі дорівнюють нулю, і dd тепер може записувати дані в ті сектори, які раніше не змогли. Це підводить мене до кількох інших питань:

  • Чому дисковод не відновляється перерозподілу? Я припускаю, що перерозподіл відбувся, оскільки тепер я можу записувати дані безпосередньо в сектор і раніше не міг.

  • Чому клаптик спричинив перерозподіл, а не дд? Чи має значення факт, що клаптик записує випадкові дані замість просто нулів?


Якими є інші значення SMART? Чи Uncorrectable Sector Countбільше нуля?
Synetech

Offline_Uncorrectable, який я припускаю, що це одне й те саме, має вихідну цінність 25.
MetaNova

Так, і це здається, що привід справді в поганій формі. Ви можете перевірити значення в цій таблиці , звернувши особливу увагу на червоні рядки (критичні для здоров'я значення). Найкраще - скопіювати (не переміщувати) все цінне / незамінне кудись інше, перезавантажити, щоб забезпечити його цикл живлення, а якщо він все ще працює, добре протерти його (бажано, власними спеціалізованими інструментами) та відкласти його запасне сховище для неважливих даних, таких як завантажені відео.
Synetech

Дякую за Вашу відповідь. Моє головне питання, мабуть, має бути, чому він не може перерозподілити ці сектори. Чи не слід просто визначити сектори поганими, уникати їх у порожнечу, перерозподіляти та рухатися далі? Мене не турбують будь-які дані на диску, оскільки він давно очищений. Мій друг не прагне мати паперову вагу 1,5 ТБ, якщо зможе цього уникнути.
MetaNova

Це, здається, річ очікувати, але, можливо, у неї погана голова. Якщо так, то спроба прочитати накопичувач буде працювати, поки ви не спробуєте отримати доступ до тарілки, яка має погану голову, тоді ви отримаєте купу помилок читання, тому що без голови для читання вся тарілка недоступна. Звичайно, він каже, що сектор 45 поганий, що може бути, тому що він вже перерозподілений, але SMART не оновлювався. Гарантії минули кілька місяців тому, але ви можете спробувати відправити їх і , можливо , вони зроблять заміну ввічливості.
Synetech

Відповіді:


9

Привід WD15EARS (і більшість інших нещодавно виготовлених накопичувачів) використовує розширений формат , а це означає, що реальний розмір фізичного сектора цього диска становить 4 KiB, а традиційний розмір сектору 512 байтів просто імітується. Через це, якщо один фізичний сектор з 4 кіБ погано поширюється, всі 8 відповідних емульованих 512-байтних секторів стають нечитабельними одразу.

( Sector Size: 512 bytes logical/physicalВихід з smartctlневірний, тому що деякі диски WD15EARS повідомляють про неправильний розмір фізичного сектора  - мабуть, на вашому диску є версія прошивки, яка порушена в цьому відношенні.)

Більше того, коли записаний один емульований 512-байтовий сектор, накопичувачеві пристрої Advanced Format насправді потрібно прочитати весь фізичний сектор на 4 KiB, змінити відповідну його 512-байтну частину, а потім записати весь фізичний сектор у носій інформації. Якщо засоби масової інформації хороші, ця операція читання-зміни-запису просто спричиняє значне уповільнення порівняно з накопичувачем з реальними 512-байтовими фізичними секторами. Однак якщо фізичний сектор 4 КБ поганий і його неможливо прочитати, будь-яка операція запису, яка не перезаписав сектор, повністю завершиться. Через це ви не можете змусити перерозподіляти сектор на таких дисках, використовуючи за ddдопомогою bs=512 count=1 - ви повинні використовувати принаймні bs=512 count=8та переконайтесь, що номер сектору вseek= опція кратна 8. (Це передбачає, що перемичка "сумісний з Windows XP" не встановлена, інакше зміщення вирівнювання, додане цим перемикачем, також слід враховувати.)

Іншою причиною, через яку примусовий перерозподіл ddможе бути невдалим, полягає в тому, що Linux за замовчуванням використовує кеш у блоковому шарі для доступу до блокових пристроїв, і це може спричинити операції зчитування-змінення-запису в програмному забезпеченні, що також може вийти з ладу при виникненні нечитабельного сектора. Ви можете додати oflag=directопцію обходу цього кешу для вказаного пристрою of=...(є також iflag=directопція, яка стосується пристрою введення).


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

1
"поточні відкладені сектори" - це не обов'язково погані сектори, диск просто мав певні проблеми з його читанням перед тим, як його перевіряти на холостому ході, можливо, через те, що там довго не писали, а дані починають згасати (тобто ослаблення магнітного поля ). Запис нових даних у цей сектор оновлює дані у цьому секторі новими даними, які сильно формуються на диску. Таким чином, якщо ви пишете в очікуваний сектор, диск припускає, що зараз це нормально. Спробуйте прочитати дані з цих секторів, щоб підтвердити їх стабільність.
BeowulfNode42

для тих людей, яким не байдуже будь-які дані на диску і не хочуть знайти точний список секторів або чисельність сектору відповідає математиці лише dd, весь диск з розміром блоку, кратним 4KiB, наприклад 16MiB. Потім використовуйте розмір блоку 4KiB для останньої частини диска, меншої за раніше вибраний розмір блоку.
BeowulfNode42

0

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

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