Handling Disk Errors

less than 1 minute read

You can verify that your hard disk does not contain any defect sectors by performing a disk selftest using SMART (replace /dev/sda in the examples with your drive):

  smartctl -t long /dev/sda

After some time you can access the results with

  smartctl -a /dev/sda

A faulty block will be indicated by a “read failure”:

 SMART Self-test log structure revision number 1  
 Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error  
 # 1  Extended offline    Completed: read failure       40%      7516         976697037

What you need to do is forcing your disk to reallocate this sector.

This also means that the data on this sector will be lost (which is the reason why the disk does not automatically reallocate the sector).

A detailed guide for how to deal with this situation is provided by the Bad block HOWTO for smartmontools.

Strangely, the steps suggested in the HOWTO did not work with my drive, so that I performed the following steps:

hdparm --yes-i-know-what-i-am-doing --repair-sector 976697037 /dev/sdb
sg_verify --lba=976697037

Which finally fixed the defect sector.