Reallocate bad sector [Linux]

I try to reallocate a bad sector. After reading this Question my understanding is, that the hard-drive tries to reallocate automatically. To trigger the process I tried to write to the sector with dd but nothing changed at all.

$ smartctl -a /dev/sda
...
5 Reallocated_Sector_Ct   ...       0
197 Current_Pending_Sector  ...       1
...

The bad sector is: 215040

$ dd if=/dev/sda of=/dev/null bs=512 count=1 skip=215040
io-error on reading

Why is the sector not allocated when I write to it?

$ dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=215040
io-error on writing

How can I cause the sector to be rewritten?


Try a low-level write using hdparm:

sudo hdparm --yes-i-know-what-i-am-doing --write-sector 215040 /dev/sda

… where 215040 is the sector number you want to overwrite (and possibly remap) and /dev/sda is the device to which you want to write.

From the hdparm man page:

--write-sector

Writes zeros to the specified sector number. VERY DANGEROUS. The sector number must be given (base10) after this flag. hdparm will issue a low-level write (completely bypassing the usual block layer read/write mechanisms) to the specified sector. This can be used to force a drive to repair a bad sector (media error).