У меня есть диск, который сообщает, что текущие ожидающие секторы "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 записывает случайные данные, а не просто нули?