Невозможно записать нули в поврежденные сектора / жесткий диск без учета перераспределенных секторов

4088
MetaNova

У меня есть диск, который сообщает, что текущие ожидающие секторы "45". Я использовал badblocks для идентификации секторов и пытался записать в них нули с помощью dd .

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

Однако на этом диске необработанные значения 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 может записывать данные в сектора, которые ранее были недоступны. Это приводит меня к нескольким другим вопросам:

  • Почему перераспределения не записываются диском? Я предполагаю, что перераспределение произошло, поскольку теперь я могу записывать данные непосредственно в сектор, а раньше не мог.

  • Почему шред вызвал перераспределение, а не дд? Имеет ли значение тот факт, что shred записывает случайные данные, а не просто нули?

10
Каковы другие значения SMART? Является ли `Неисправимый счетчик секторов 'больше нуля? Synetech 10 лет назад 0
Offline_Unc корректируемый, который я предполагаю, то же самое, имеет необработанное значение 25. MetaNova 10 лет назад 0
Да, это так, и кажется, что диск действительно в плохой форме. Вы можете сравнить значения с [этой таблицей] (http://en.wikipedia.org/wiki/SMART#Known_ATA_S.MART_attributes), обращая особое внимание на красные строки (критические для здоровья значения). Лучше всего скопировать (а не переместить) все ценное / незаменимое куда-то еще, перезагрузить, чтобы дать ему цикл питания, и, если он все еще работает, хорошенько стереть его (желательно с его собственными [выделенными инструментами] (http: / /support.wdc.com/product/download.asp?groupid=608&sid=3) и оставьте его в качестве резервного хранилища для неважных данных, таких как загруженные видео. Synetech 10 лет назад 0
Спасибо за ваш ответ. Мой главный вопрос, вероятно, должен заключаться в том, почему он не может перераспределить эти сектора. Разве он не должен просто обнаруживать плохие сектора, избегать их в пустоте, перераспределять и двигаться дальше? Я не беспокоюсь о каких-либо данных на диске, так как он уже давно очищен. Мой друг не хочет иметь 1,5 ТБ пресс-папье, если они могут избежать этого. MetaNova 10 лет назад 0
Это похоже на то, чего можно ожидать, но может случиться так, что у него плохая голова. Если это так, то попытка чтения диска будет работать до тех пор, пока вы не попытаетесь получить доступ к диску с плохой головой, тогда вы получите кучу ошибок чтения, потому что без головки для чтения весь диск недоступен. Конечно, он говорит, что сектор 45 плохой, что может быть потому, что он уже перераспределен, но SMART не был обновлен. [Гарантия истекла] (http://websupport.wdc.com/warranty/warrantycheck2.asp?req=385567&rnd=03914148) несколько месяцев назад, но вы можете попробовать отправить их по электронной почте и, возможно, они сделают любезную замену. Synetech 10 лет назад 0
Сектор прямо перед 217152 доступен для чтения dd, и `badblocks 'показывают, что после него осталось всего ~ 7 плохих секторов. Я не знаю о местонахождении других, так как я не делал полное сканирование, но это должно оставить как минимум 8 поврежденных секторов, которые можно перераспределить, не так ли? Кроме того, извините, если я не ясно, я имел в виду, что 45 секторов были плохими, а не 45 секторов. MetaNova 10 лет назад 0
Ах, хорошо, что это проблема в том или ином. Вы пытались просто запустить сканирование диска, чтобы отметить плохие кластеры в файловой системе, чтобы они полностью игнорировались? Остальная часть диска должна быть пригодна для использования без проблем (по крайней мере, на данный момент). Synetech 10 лет назад 0
Это то, что я пытался сделать. Из того, что я прочитал, попытка записи нулей в плохой сектор должна вызвать перераспределение и привести к игнорированию плохого сектора. Проблема в том, что dd не может это сделать, что говорит о том, что что-то не так в процессе перераспределения или просто не запускается, так как Reallocated_Sector_Ct и Reallocated_Event_Count равны нулю. MetaNova 10 лет назад 0
Вы пытаетесь заставить диск перемещать неисправный сектор в программном обеспечении. Я имел в виду, что файловая система помечает кластер, содержащий его как программный. Я не знаю о Linux, но, например, использование `chkdsk / r` в Windows на разделе FAT32 определит, когда сектор недоступен, и пометит кластер, содержащий его, как` BAD` вместо `FREE` в FAT. Сектор остается плохим, и попытка доступа к нему не удастся, но он помечен на высоком уровне, и ОС вообще пропускает его. Synetech 10 лет назад 0
У меня нет файловой системы на этом диске вообще. Я записываю необработанные нули на диск с помощью dd, как и полагается во многих руководствах. Я полагаю, что файловая система ext4 имеет какой-то высокоуровневый способ справиться с этим, но это все равно никак не влияет на тот факт, что мой жесткий диск не может выполнить довольно важную функцию. MetaNova 10 лет назад 0
Точно, диск имеет физическую проблему, и вы не можете записать в эти сектора. Они мертвы, и если вы не можете написать им, вы ничего не можете с этим поделать, кроме как пометить их. Если у него нет файловой системы, то вы должны иметь возможность отформатировать его и позволить файловой системе пометить их как плохие. Затем скрестите пальцы на том, что плохими являются только те несколько секторов, тем более что данные SMART указывают на то, что они не могут даже перераспределить плохие сектора. Опять же, попробуйте выключить и снова включить и выключить его, чтобы проверить, не подталкивает ли это что-нибудь и не шатается ли что-то вроде тупика в прошивке. Synetech 10 лет назад 0
Нет кости. : / Я полагаю, что лучшее, что я могу сделать на этом этапе, - это контролировать привод и посмотреть, получу ли я быстрое увеличение перераспределений ожидающих секторов. Я оставлю вопрос открытым немного дольше, чтобы посмотреть, сможет ли кто-нибудь еще просветить нас. :П MetaNova 10 лет назад 0
Если ничего не помогает, вы можете использовать его как запасной диск для неважных вещей. Это то, что я сделал со своим старым WD на 100 ГБ, когда у него началось слишком много проблем. Synetech 10 лет назад 0

2 ответа на вопрос

9
Sergey Vlasov

The WD15EARS drive (and most other recently produced drives) uses Advanced Format, which means that the real physical sector size of this drive is 4 KiB, and the traditional 512-byte sector size is just emulated. Because of this, if a single 4 KiB physical sector goes bad, all 8 corresponding emulated 512-byte sectors become unreadable at once.

(The Sector Size: 512 bytes logical/physical output from smartctl is not correct, because some WD15EARS drives report wrong physical sector size — apparently your drive has a firmware version which is broken in that respect.)

Moreover, when a single emulated 512-byte sector is written, the Advanced Format drive actually needs to read the whole 4 KiB physical sector, change the corresponding 512-byte part of it, then write the whole physical sector to the media. If the media is good, this read-modify-write operation just causes a significant slowdown compared to a drive with real 512-byte physical sectors. However, if the 4 KiB physical sector is bad and cannot be read, any write operation which does not rewrite the sector completely will fail. Because of this, you cannot force sector reallocation on such drives using dd with bs=512 count=1 — you must use at least bs=512 count=8 and make sure that the sector number in the seek= option is a multiple of 8. (This assumes that the “Windows XP Compatible” jumper is not installed, otherwise the alignment offset added by this jumper must also be taken into account.)

Another reason why forcing the reallocation with dd might fail is that by default Linux uses a cache in the block layer to access block devices, and this may cause read-modify-write operations in software, which would also fail when an unreadable sector is encountered. You can add the oflag=direct option to bypass this cache for the device specified by of=... (there is also the iflag=direct option, which applies to the input device).

Спасибо, спасибо, это было так полезно. Я читаю этикетку на диске и там написано "предварительный формат". Теперь я знаю, что это значит ... Ты хоть представляешь, что диск не сообщает о перераспределенных секторах? MetaNova 10 лет назад 0
«текущие ожидающие секторы» не обязательно являются плохими секторами, просто у диска были небольшие проблемы с его чтением, прежде чем он выполнял проверку на холостом ходу, возможно, из-за отсутствия записи в течение длительного времени и начала исчезать данных (то есть ослабление магнитного поля ). Запись новых данных в этот сектор обновляет данные в этом секторе новыми данными, которые сильно сформированы на диске. Таким образом, если вы записываете в ожидающий сектор, диск предполагает, что теперь все в порядке. Вы должны попробовать прочитать данные из этих секторов, чтобы убедиться, что они стабильны. BeowulfNode42 10 лет назад 1
для тех людей, которые не заботятся о каких-либо данных на диске и не хотят найти точный список секторов или подсчитать количество секторов, просто добавьте весь диск с размером блока, кратным 4 КБ, например, 16 МБ. Затем используйте размер блока 4 КБ для последней части диска, которая меньше, чем ранее выбранный размер блока. BeowulfNode42 10 лет назад 0
0
emil

Мне пришлось сделать это недавно, и я обнаружил, что запуск клочков на всем диске работает очень хорошо. Хотя крошка бесполезна по своему прямому назначению, кроме как на дискетах, она делает только то, что требуется для самовосстановления плохих блоков.