You should also check the SMART attributes of the drive either with the Disks utility, or with smartctl
on the command line. Since badblocks
has identified the bad blocks it found, you can now attempt to repair them by writing zeros to them:
sudo dd if=/dev/sda of=/dev/null bs=1024 count=1 skip=190698244
If that returns an error, then you got the numbers right, and confirmed the sector can not be read. Now try to write zeros to it and the drive will try to repair it:
sudo dd if=/dev/zero of=/dev/sda bs=1024 count=1 seek=190698244
Notice the difference between the two commands, especially seek instead of skip. Make sure you type it correctly or bad things will happen. After doing this, repeat the first command to read-test the sector again and this time it should not fail. Also check the SMART stats on the drive. The important numbers to look at are the counts of pending, reallocated, and offline sectors. If there was nothing physically wrong with the disk, the count of pending sectors should go down, and there should still be zero reallocated or offline sectors. If the count of reallocated sectors goes up, then the drive switched to using a spare sector for that block instead of the damaged area. If there are more than a handful of these, or any offline sectors, you should replace the drive.