LINUX.ORG.RU

Диск тихо пропускает блоки при записи

 , ,


0

2

Обнаружил любопытный дефект у диска

Model Family:     SAMSUNG SpinPoint T166
Device Model:     SAMSUNG HD321KJ
User Capacity:    320 072 933 376 bytes [320 GB]
badblocks -w -t "0xB16B00B5" -b "512" "$DEV"
yes > "$DEV"
hexdump -C "$DEV"

выдаёт на диске такое:

00000000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
3298d9b600  b1 6b 00 b5 b1 6b 00 b5  b1 6b 00 b5 b1 6b 00 b5  |.k...k...k...k..|
*
3298da4000  79 0a 79 0a 79 0a 79 0a  79 0a 79 0a 79 0a 79 0a  |y.y.y.y.y.y.y.y.|
*
4a85d56000

(badblocks тоже, разумеется, находит эти ошибки, но хексдамп нагляднее.)

69 блоков просто не были перезаписаны командой yes и остались старыми, записанными badblocks! «дырка» всегда в разных местах примерно в середине диска. Повторяется 100% при любых данных записанных любыми программами (dd, cat, yes) если диск пишется целиком. Ошибок нет, в dmesg чисто (вроде бы), в смарте reallocated/pending нет. Шлейфы и сата-порты менял.

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

★★★★★

Последнее исправление: legolegs (всего исправлений: 1)

сдай по гарантии.

повторяющийся паттерн может указывать на физическую нечитаемость зоны, и там изза особенностей кодирования(какой-нибудь скремблинг) читаются только нули или только единицы, которые после преобразования дают вот такое

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

Диску сто лет уже, я проверял, можно ли его для offsite бекапов использовать. Хз теперь, наверно всё равно буду, с par2 не страшно.

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

legolegs ★★★★★
() автор топика

Интересно, попробуй выключить кеш диска и повторить, положение дырки тоже «поплывет»?

xdeller
()

была похожая проблема, тоже диском самсунг, но на 1тб.

записывал данные, а потом через какое-то время они портились. после перезаписи, читались какое-то время, а потом снова ошибки. поменял в итоге. имхо, дефект поверхности

Rost ★★★★★
()
Ответ на: комментарий от system-root

В посте написано как обнаружил: записал один паттерн, затем второй, затем поискал не остался ли первый. А он кое где остался.

legolegs ★★★★★
() автор топика
Ответ на: комментарий от Rost

Ну это другое. У меня ничего само не портится.

legolegs ★★★★★
() автор топика
Ответ на: комментарий от system-root

На диске бекапы были. Хорошо что не понабились и хорошо, что я запараноил. Сейчас жду короткие шлейфы сата, может с ними норм станет.

legolegs ★★★★★
() автор топика
16 октября 2019 г.

Специально для @Woolf:

Вот дифф двух смартов сабжевого диска. Что, по твоему, произошло между ними?

[root@battlehummer HD321KJ_S0MQJ1KP500224_320]# diff -u smart.2017-12-13T0*
--- smart.2017-12-13T00:04+03:00        2017-12-13 00:04:10.588931911 +0300
+++ smart.2017-12-13T04:15+03:00        2017-12-13 04:15:13.562252691 +0300
@@ -12,7 +12,7 @@
 Device is:        In smartctl database [for details use: -P show]
 ATA Version is:   ATA8-ACS T13/1699-D revision 3b
 SATA Version is:  SATA 2.5, 3.0 Gb/s
-Local Time is:    Wed Dec 13 00:04:10 2017 MSK
+Local Time is:    Wed Dec 13 04:15:13 2017 MSK
 SMART support is: Available - device has SMART capability.
 SMART support is: Enabled

@@ -54,27 +54,27 @@
 SMART Attributes Data Structure revision number: 16
 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   253   100   051    Pre-fail  Always       -       0
+  1 Raw_Read_Error_Rate     0x000f   100   100   051    Pre-fail  Always       -       0
   3 Spin_Up_Time            0x0007   100   100   015    Pre-fail  Always       -       5824
   4 Start_Stop_Count        0x0032   093   093   000    Old_age   Always       -       7724
   5 Reallocated_Sector_Ct   0x0033   253   253   010    Pre-fail  Always       -       0
   7 Seek_Error_Rate         0x000f   253   253   051    Pre-fail  Always       -       0
   8 Seek_Time_Performance   0x0025   253   253   015    Pre-fail  Offline      -       9484
-  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       28832
+  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       28833
  10 Spin_Retry_Count        0x0033   253   253   051    Pre-fail  Always       -       0
  11 Calibration_Retry_Count 0x0012   253   100   000    Old_age   Always       -       0
  12 Power_Cycle_Count       0x0032   097   097   000    Old_age   Always       -       3825
 187 Reported_Uncorrect      0x0032   001   001   000    Old_age   Always       -       887
 188 Command_Timeout         0x0032   253   253   000    Old_age   Always       -       0
-190 Airflow_Temperature_Cel 0x0022   077   050   000    Old_age   Always       -       23
-194 Temperature_Celsius     0x0022   169   088   000    Old_age   Always       -       23
-195 Hardware_ECC_Recovered  0x001a   100   100   000    Old_age   Always       -       2994
+190 Airflow_Temperature_Cel 0x0022   069   050   000    Old_age   Always       -       31
+194 Temperature_Celsius     0x0022   145   088   000    Old_age   Always       -       31
+195 Hardware_ECC_Recovered  0x001a   100   100   000    Old_age   Always       -       86926500
 196 Reallocated_Event_Count 0x0032   253   253   000    Old_age   Always       -       0
 197 Total_Pending_Sectors   0x0012   253   100   000    Old_age   Always       -       0
 198 Offline_Uncorrectable   0x0030   253   253   000    Old_age   Offline      -       0
 199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
-200 Multi_Zone_Error_Rate   0x000a   253   100   000    Old_age   Always       -       0
-201 Soft_Read_Error_Rate    0x000a   253   100   000    Old_age   Always       -       0
+200 Multi_Zone_Error_Rate   0x000a   100   100   000    Old_age   Always       -       0
+201 Soft_Read_Error_Rate    0x000a   100   100   000    Old_age   Always       -       0
 202 Data_Address_Mark_Errs  0x0032   100   100   000    Old_age   Always       -       19

 SMART Error Log Version: 1
legolegs ★★★★★
() автор топика
Ответ на: комментарий от legolegs

Write Error Rate / Multi-Zone Error Rate (Western Digital) S.M.A.R.T. parameter indicates the total number of errors appearing while recording data to a hard disk. This may be caused by problems with disk surface or the read/write heads.

Собсна, такая бага возможна только в том случае, если существует конкретная бага в прошивке диска. Собственно, исправлено в версии CR100-13 - после обновления проблемные секторы просто переразметит.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ну вот в том-то и дело, что есть и косяки в прошивках и хреновые шлейфы и всякое другое вне пределов компетенции смарта, из-за чего и bit rot случается и носки пропадают и всякий подземный стук слышен.

Собственно, исправлено в версии CR100-13 Спасибо из инфу. Не уверен, что осилю это - обычно для прошивки девайсов вендоры дают утилиту под дос или винду, которых там и близко нет.

legolegs ★★★★★
() автор топика
Ответ на: комментарий от legolegs

С тем же успехом можно нарваться на специфическую багу в badblocks. Шит случается, случался и будет случаться. Такой случай - менее 0,1% вероятности.

Deleted
()
Ответ на: комментарий от Deleted

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

legolegs ★★★★★
() автор топика
Ответ на: комментарий от legolegs

Хреновый шлейф - 199 UDMA_CRC_Error_Count

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

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

бедблокс не может пытаться вычитать проблемный сектор до усрачки, он получает от ОС ошибку, записывает её и идёт дальше. Десктопные диски могут мучаться с нечитаемым сектором минуту, серверные сдаются гораздо быстрее.

Да, если с диском всё так плохо, что разумнее оставить его в покое после первой же ошибки - то я согласен, бедблокс не уместен. Тут уже либо ddrescue либо мусорка.

Но если диск пуст и вводится в работу - badblocks -w лучший вариант. Если он добьёт умирающий диск - так и хорошо, туда ему и дорога пусть сдохнет без данных!

legolegs ★★★★★
() автор топика
Ответ на: комментарий от legolegs

Но если диск пуст и вводится в работу - badblocks -w лучший вариант.

Специфика. На вкус и цвет. Просто меня вымораживает, когда люди видят бэды в смарт и начинают драконить диски чтениями из бэдблокса. Собственно говоря, это инструмент, не нужный в 99% случаев. Я понимаю, откуда взялись MHDD и Victoria под венды, под линуксом для этого есть из коробки более простые способы.

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

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.