remapping bad spinning disk storage blocks
Monday, December 18th, 2017Your good, old-fashioned rotating hard disk storage starts to develop bad sectors?
Dec 17 10:49:47 server kernel: end_request: I/O error, dev sdb, sector 300037184
One of the most easiest, quick and dirty ways to remap them on Linux (e.g. easier than fumbling with dd if= of=)?
Double check:
hdparm –read-sector 300037184 /dev/sdb
And if it is the block and still fails:
hdparm –write-sector 300037184 /dev/sdb –yes-i-know-…
Obviously this zeros the sector and all 512 or 4096 bytes that lived at that place are gone forever, and give way for fresh zeros from a spare, remapped reserve block.
Use only when you know what you are doing, your milage may vary.
Update: If you init a fresh Linux MD RAID, you may want to increase the min speed limit to get things going into production a bit faster:
echo 100000 > /proc/sys/dev/raid/speed_limit_min
Update2: If you are running in some error correcting RAID mode (e.g. not striped RAID 0 ;-) the Linux code will apparently re-write sectors and thus already automatically trigger a remap of those sectors:
end_request: I/O error, dev sdb, sector 301373665
ata2: EH complete
raid1:md0: read error corrected (8 sectors at 301373600 on sdb1)
raid1: sdb1: redirecting sector 301373600 to another mirror