Спроба видалити / діагностувати єдиний Current_Pending_Sector у даних SMART


18

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

Спочатку я спробував перевірити за допомогою smartmontools ... Мій жорсткий диск Seagate повідомляє про поточний сектор, що очікує на розгляд, і один нерегульований офлайн (імовірно, той самий). Кількість перерозподілених секторів дорівнює нулю.

5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
...
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1

Однак самовипробування SMART (короткі, довгі, офлайн, перенесення) не виявляють помилок.

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      6631         -
# 2  Conveyance offline  Completed without error       00%      6630         -
# 3  Extended offline    Completed without error       00%      6622         -
# 4  Short offline       Completed without error       00%      6600         -
# 5  Extended offline    Completed without error       00%      6632         -

Я також спробував запустити на диску накопичувачі -wsv (повний тест прочитання 4 записів ), і поганих блоків не знайдено. Потім я дотримувався керівництва (наскільки це можливо, оскільки я видалив свою файлову систему після запуску поганих блоків), знайдений тут: http://smartmontools.sourceforge.net/badblockhowto.html

Там написано, що якщо я перезапилюю сектор з усіма нулями, диск повинен переміщати (перерозподіляти) очікуваний сектор. Шаблон запису останнього блоку - це всі нулі, так що слід було це зробити. однак нічого не змінилося. У мене все ще є кількість відкладених секторів 1.
Я потім спробував з’ясувати, який сектор є проблематичним, і у висновку SMART є журнал помилок:

Error 2 occurred at disk power-on lifetime: 5344 hours (222 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  84 51 7c 1b 1a 02 ae  Error: ABRT at LBA = 0x0e021a1b = 235018779

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  20 20 7f 18 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 17 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 01 00 00 a0 00      00:08:59.830  READ SECTOR(S)
  91 20 3f 01 00 00 af 00      00:08:59.826  INITIALIZE DEVICE PARAMETERS [OBS-6]
  10 20 01 01 00 00 a8 00      00:08:59.678  RECALIBRATE [OBS-4]

Error 1 occurred at disk power-on lifetime: 5009 hours (208 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 b7 8c 02 e0  Error: UNC at LBA = 0x00028cb7 = 167095

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 20 1e 9e 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 80 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 62 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 44 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 26 8c 02 e0 00      00:02:20.690  READ DMA EXT

Отже, мабуть, у накопичувача було дві помилки.

84 51 7c 1b 1a 02 ae  Error: ABRT at LBA = 0x0e021a1b = 235018779

і

40 51 00 b7 8c 02 e0  Error: UNC at LBA = 0x00028cb7 = 167095

Тож я припустив, що це номери секторів: 167095 та 235018779. І я спробував написати нулі з dd:

dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=167095

Тепер, коли один зробив добре. Однак коли я намагався з іншим сектором:

dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=235018779

Я отримую dd: '/ dev / sda': не можу шукати: Неправильний аргумент . Потім я помітив, що мій жорсткий диск має лише 234441658 секторів. Тож це поза діапазоном. Але тоді чому SMART повідомив про помилку за цією адресою ?!

Хтось може допомогти мені зрозуміти це, а також порадити мені, як це зробити правильно, якщо я роблю це неправильно? Я підозрюю, що, можливо, я помиляюся у використанні блоку розміру 512 з dd. Це розмір сектора, про який повідомляє SMART. можливо, ці адреси LBA є байтами, а не блоками. Я намагався встановити bs = 1 і записати лише один байт на ці адреси на жорсткому диску. Це спрацювало (процес запису dd)… Однак очікувана кількість сектору все ще не змінилася після цього. Я також закликав синхронізацію та smartctl -t offline / dev / sda, щоб спробувати "примусити" накопичувач перерозподілити сектор. Нічого ...

Ось мій повний smartctl --all / dev / sda вихід:

smartctl 5.43 2012-06-30 r3573 [i686-linux-2.6.32-358.el6.i686] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.9
Device Model:     ST3120811AS
Serial Number:    6PT1N4VZ
Firmware Version: 3.AAE
User Capacity:    120,034,123,776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Nov 18 12:03:00 2013 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  430) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    (  51) minutes.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   084   077   006    Pre-fail  Always       -       185600113
  3 Spin_Up_Time            0x0003   095   095   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   098   098   020    Old_age   Always       -       2185
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   073   055   030    Pre-fail  Always       -       25890559714
  9 Power_On_Hours          0x0032   093   093   000    Old_age   Always       -       6632
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   098   098   020    Old_age   Always       -       2229
187 Reported_Uncorrect      0x0032   099   099   000    Old_age   Always       -       1
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   071   056   045    Old_age   Always       -       29 (Min/Max 25/29)
194 Temperature_Celsius     0x0022   029   044   000    Old_age   Always       -       29 (0 13 0 0 0)
195 Hardware_ECC_Recovered  0x001a   052   046   000    Old_age   Always       -       194244099
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   066   219   000    Old_age   Always       -       34

SMART Error Log Version: 1
ATA Error Count: 2
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 2 occurred at disk power-on lifetime: 5344 hours (222 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  84 51 7c 1b 1a 02 ae  Error: ABRT at LBA = 0x0e021a1b = 235018779

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  20 20 7f 18 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 17 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 01 00 00 a0 00      00:08:59.830  READ SECTOR(S)
  91 20 3f 01 00 00 af 00      00:08:59.826  INITIALIZE DEVICE PARAMETERS [OBS-6]
  10 20 01 01 00 00 a8 00      00:08:59.678  RECALIBRATE [OBS-4]

Error 1 occurred at disk power-on lifetime: 5009 hours (208 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 b7 8c 02 e0  Error: UNC at LBA = 0x00028cb7 = 167095

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 20 1e 9e 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 80 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 62 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 44 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 26 8c 02 e0 00      00:02:20.690  READ DMA EXT

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      6631         -
# 2  Conveyance offline  Completed without error       00%      6630         -
# 3  Extended offline    Completed without error       00%      6622         -
# 4  Short offline       Completed without error       00%      6600         -
# 5  Extended offline    Completed without error       00%      6632         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

ОНОВЛЕННЯ:

Як було запропоновано у відповіді від rob, я спробував перезаписати весь жорсткий диск нулями. Перевірив значення SMART, а потім почав читати весь HDD. Знову перевірили значення SMART. Результат: значення SMART щодо кількості очікуваних / перерозподілених секторів не змінюються в обох випадках відразу після запису, а потім після зчитування. Перерозподілено 0. У очікуванні 1.


1
Я думаю, що на вашому приводі є 234441658 секторів, але резервні сектори, які перезавантажені замість поганих секторів, не враховуються до цієї кількості.
gronostaj

Хм, так що помилка в секторі 235018779 означала б помилку в резервних секторах… Чи це можливо?
Іван Ковачевич

1
Ну, резервні сектори теж можуть бути корумпованими. Інакше ми зробимо "безсмертні" жорсткі диски лише з резервних секторів.
gronostaj

:) ... Ну, моє міркування було те, що резервні сектори не використовуються (і для цього є безпечними). Я припускав, що поверхня жорсткого диска може пошкодитися лише в тому випадку, якщо голова (и) диска зроблять (-ла) неналежні дії через відключення живлення або щось таке.
Іван Ковачевич

1
Якщо припустити, що 235018779 сектор є резервним сектором. Це означає, що у мене повинно бути принаймні 235018779 - 234441658 = 577121 резервних секторів. Це майже 282 Мб у резервних секторах. Мені здається багато (занадто багато). Або це? Просто думаючи вголос, можливо, це не резервний сектор, а неполадка в SMART-діагностиці?
Іван Ковачевич

Відповіді:


15

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

Під час запуску badblocks -wкожен шаблон спочатку записується, а потім читається. Можливо, що запис у пластівчастий сектор вдається, але наступне читання не вдається, що знову додає його до очікуваного списку секторів. Я б спробував записати нулі на весь диск dd if=/dev/zero of=/dev/sda, перевірити стан SMART, потім прочитати весь диск dd if=/dev/sda of=/dev/nullі перевірити стан SMART знову.

Оновлення:

На основі ваших попередніх результатів badblocks -w, я б очікував, що очікуваний сектор буде очищений після запису всього диску. Але оскільки цього не сталося, можна впевнено сказати, що цей диск веде себе не так, як очікувалося.

Розглянемо опис поточної кількості очікуваних секторів :

Кількість "нестабільних" секторів (чекає їх перезавантаження, через непоправні помилки читання). Якщо згодом нестабільний сектор буде успішно прочитаний, сектор переосмислюється і це значення зменшується. Помилки читання в секторі не перезавантажують сектор негайно (оскільки правильне значення неможливо прочитати, тому значення для повторного перезапису невідоме, а також воно може стати читабельним пізніше); натомість прошивка диска пам’ятає, що цей сектор потрібно переробити, і перезавантажить його наступного разу, коли це буде написано. [29] Однак деякі диски не одразу перезаписують такі сектори при написанні; натомість накопичувач спершу спробує записати в проблемний сектор, і якщо операція запису буде успішною, то сектор буде позначений добре (у цьому випадку "Кількість подій перерозподілу" (0xC4) не збільшуватиметься).

Тепер розглянемо важливі моменти:

... прошивка накопичувача пам’ятає, що цей сектор потрібно переробити, і перезавантажить його наступного разу, коли це буде написано. [29] Однак деякі диски не одразу перезаписують такі сектори при написанні; натомість накопичувач спершу спробує записати в проблемний сектор, і якщо операція запису буде успішною, то сектор буде відзначений хорошим.

Іншими словами, відкладений сектор повинен був бути або перезавантажений негайно, або диск повинен був намагатися записати в сектор, і одна з двох речей повинна була відбутися:

  1. Запис не вдався, і в цьому випадку сектор, що очікує, повинен був бути перероблений.
  2. Запис вдався, і в цьому випадку очікуваний сектор повинен був бути очищений ("позначено хорошою").

Я натякав на це раніше, але опис Вікіпедії поточного очікуваного сектору говорить про те, що поточна кількість очікуваних секторів завжди має бути нульовою після повного запису на диску . Оскільки це не так, ми можемо зробити висновок, що або (a) Wikipedia неправильна (або принаймні неправильна для вашого диска), або (b) вбудована програма не може належним чином впоратися з цим станом помилок (що я вважаю б помилкою програмного забезпечення) ).

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

Оскільки поточний підрахунок сектору, що очікує, залишається незмінним після прочитання всього диска, ми можемо стверджувати, що або (a) сектор не вдалося прочитати успішно, або (b) сектор був успішно прочитаний і позначений добре, але сталася помилка при читанні різний сектор. Але оскільки кількість перерозподілених секторів після читання все ще дорівнює 0, ми можемо виключити (б) як можливість і зробити висновок, що сектор, що очікує, був ще нечитабельним.

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

Хоча я б рекомендував не продовжувати користуватися цим накопичувачем, це здається, що ви, можливо, готові прийняти пов'язані з цим ризики (а саме, що він може продовжувати діяти нерівномірно та / або може надалі погіршуватись або виходити з ладу катастрофічно). У такому випадку ви можете спробувати встановити Linux, завантажившись із рятувального компакт-диска, а потім (при відключенні файлових систем) використовувати ім'я файлу e2fsck -l, щоб вручну позначити відповідний блок як поганий. (Переконайтеся, що ви підтримуєте хороші резервні копії!)

e2fsck -l ім'я файлу

Додайте номери блоків, перелічені у файлі, вказані за ім'ям файлу, до списку поганих блоків. Формат цього файлу такий самий, як у форматі, створеному програмою badblocks (8). Зауважте, що номери блоків засновані на розмірі блоків файлової системи. Отже, непотрібним блокам (8) слід надати розмір блоку файлової системи, щоб отримати правильні результати. У результаті набагато простіше та безпечніше використовувати параметр -c для e2fsck, оскільки це гарантуватиме, що правильні параметри передаються програмі з поганими блоками.

(Зверніть увагу, що e2fsck -cце віддано перевагу e2fsck -l filename, і ви можете навіть спробувати його, але, виходячи з ваших результатів, я дуже сумніваюся, що e2fsck -c знайде погані блоки.)

Звичайно, вам доведеться виконати деяку арифметику, щоб перетворити LBA несправного сектора (як це передбачено SMART) у номер блоку файлової системи. Як погані блоки HowTo надають зручну формулу:

  b = (int)((L-S)*512/B)
where:
b = File System block number
B = File system block size in bytes
L = LBA of bad sector
S = Starting sector of partition as shown by fdisk -lu
and (int) denotes the integer part.

HowTo також містить повний приклад, використовуючи цю формулу. Після встановлення ОС ви можете підтвердити, чи займає файл лускатий сектор, використовуючи налагодження (докладні інструкції див. У HowTo).

Інший варіант: розділ навколо підозрюваного поганого блоку Під час встановлення ОС ви також можете спробувати розділити навколо помилки. Якщо я зробив своє арифметичне право, помилка становить приблизно 81,589 Мбайт, тож можна або зробити / завантажувати трохи невеликий і запустити наступний розділ після сектора 167095, або пропустити перший 82 Мб або так повністю.

ABRT 235018779 На жаль, що стосується помилки ABRT у секторі 235018779, ми можемо лише міркувати, але специфікація ATA8-ACS дає нам деякі підказки.

З робочого проекту AT-додатку 8 - Набір команд ATA / ATAPI (ATA8-ACS) :

6.2.1 Abort (ABRT) Біт помилки 2. Abort встановлюється на один, якщо команда не підтримується. Аборт може бути встановлений на один, якщо пристрій не в змозі виконати дії, про які вимагає команда. Аборт також повинен бути встановлений як один, якщо запитується адреса за межами діапазону доступних для користувача адрес, якщо IDNF не встановлений на один.

Дивлячись на команди, що ведуть до ABRT (декілька ЧИТАТИ СЕКТОР (S) з подальшим повторним калібруванням та реініціалізацією) ...

Якщо перервати, команда не підтримується. - Це здається малоймовірним.

Аборт може бути встановлений на один, якщо пристрій не в змозі виконати дії, про які вимагає команда. - Можливо, P-список перерозподілених секторів зміщує доступні для користувача адреси досить далеко, щоб доступну для користувача адресу переклав у сектор 235018779, і операція читання не змогла завершитись (з якої причини ми не знаємо ... але помилки CRC не було, тому я не думаю, що можна зробити висновок, що сектор 235018779 поганий).

Аборт також повинен бути встановлений як один, якщо запитується адреса за межами діапазону доступних для користувача адрес, якщо IDNF не встановлений на один. - Мені це здається найімовірнішим, і я, мабуть, інтерпретую це як результат програмної помилки (або вашої ОС, або якоїсь програми, яку ви працювали). У такому випадку це не є ознакою насущної приреченості на жорсткому диску.

Про всяк випадок, якщо ви ще не втомилися від запуску діагностики ...

Ви можете спробувати smartctl -t long /dev/sdaще раз побачити, чи створює він більше помилок у журналі SMART або ви можете залишити цей файл як нерозв’язаний X-файл ;) та періодично перевіряти журнал SMART, щоб побачити, чи не повториться він. У будь-якому випадку, якщо ви продовжуєте використовувати накопичувач, не отримуючи його для перерозподілу чи очищення очікуваного сектора, ви вже ризикуєте.

Використовуйте файлову систему контрольної суми

Для більшої безпеки ви можете скористатися файловою системою контрольної суми, такою як ZFS або btrfs, щоб захистити від пошкодження даних низького рівня. І не забудьте виконувати часті резервні копії, якщо у вас є щось, що неможливо легко відтворити.


Гарна ідея, я зараз спробую це.
Іван Ковачевич

1
А як спробувати це тільки з тим поганим сектором 167095? :)
тиждень

Ні, це занадто нудно: D. Спершу спробую з підозрілим сектором, безумовно, розумною порадою, якщо це нічого не зробить, я дозволю йому працювати на весь привід на всякий випадок…
Іван Ковачевич

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

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

5

Стаття Поганий сектор Повторне описує використаний алгоритм.

На жорсткому диску є два списки дефектів:

  • P-список - це дефекти, виявлені під час виготовлення, а також відомі як Первинні дефекти. Вони послідовно слідують за нормальними секторами. Поганий сектор вказує на його заміну, використовуючи номер зсуву (спочатку - +1, потім +2 тощо).
  • G-List - це дефекти, які розвиваються при звичайному використанні накопичувача і відомі під назвою Grown Defects. Не існує обмежень щодо їх розподілу, і їм не потрібно послідовно слідувати дефектам списку P. Поганий сектор вказує на його заміну, використовуючи простий номер сектора.

Тому той факт, що ваш поганий сектор на 577121 секторах перевищує звичайний останній сектор, не означає, що у вас є 577121 поганих секторів, якщо тільки це не є дефектом P-списку. Дефект списку G може бути розміщений де завгодно, тому цілком можливо, що прошивка виділила його в кінці простору запасного сектора.

З Вікіпедії Відомі атрибути ATA SMART :

Кількість перерозподілених секторів

Кількість перерозподілених секторів. Коли жорсткий диск виявляє помилку читання / запису / перевірки, він позначає цей сектор як "перерозподілений" і передає дані в спеціальну зарезервовану область (запасну область). Цей процес також відомий як перекомпонування, а перерозподілені сектори називаються "перенастроювання". Значення сировини зазвичай являє собою кількість поганих секторів, які були знайдені та перероблені.

Поточна кількість відкладених секторів

Кількість "нестабільних" секторів (чекає їх перезавантаження, через непоправні помилки читання). Якщо згодом нестабільний сектор буде успішно прочитаний, сектор переосмислюється і це значення зменшується. Помилки читання в секторі не перезавантажуватимуть сектор негайно (оскільки правильне значення неможливо прочитати, тому значення для перенастроювання невідоме, а також воно може стати читабельним пізніше); натомість прошивка диска пам’ятає, що цей сектор потрібно переробити, і перезавантажить його наступного разу, коли буде записано.

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

Документ діагностичний інструмент жорсткого диска MHDD дуже низького рівня пояснює коди помилок як:

UNC : data is uncorrectable
ABRT : command was aborted

Таким чином, сектор 167095 є нерегульованим, а читання / запис до 235018779 перервано.

Оскільки повідомлення в обох секторах не змінило статус з очікуваного на переоформлене, мені здається, що сектор заміни також поганий. Моя теорія полягає в тому, що сектор 167095 був переобладнаний на сектор 235018779, але, на жаль, останній також поганий, і що прошивка не знає, як переробити погані запасні сектори. Результат - нерегульований поганий сектор.


Приємна стаття, я дізнався щось нове однозначно! Однак це все ще не пояснює, чому поганий сектор, про який повідомляється в журналах SMART, навіть повідомляється у зоні запасного сектору, а не у нормальному зручному просторі, і чому лічильник секторів, що очікує на розгляд, все ще 1 та перерозподілений лічильник секторів 0. Якщо все працювало як слід ці два лічильники повинні були перевернути свої значення.
Іван Ковачевич

1
Дивіться мою редакцію вище.
harrymc

Спасибі! Чудова інформація! Тепер у мене виникає запитання: оскільки 167095 не був перекомплектований, чи доцільно використовувати цей жорсткий диск? Чи жорсткий диск просто позначив цей сектор як поганий і уникнути його використання в майбутньому. В основному мені потрібно вирішити: чи можу я продовжувати та встановлювати Linux, чи слід викинути цей жорсткий диск, придбати новий і встановити Linux, чи можу я щось зробити (виконувати команду), щоб позначити цей сектор як поганий вручну та встановити Linux (мій улюблений варіант).
Іван Ковачевич

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