I know how to to check / repair my hard drive but I don't know a way how to see the number of bad sectors on my hard drive.
P.S. It looks like my hard drive will die soon :-(
There are two ways to detect bad sectors in Linux: you can use the disk utility (gui), or you can use the badblocks command to check your hard disk for bad sectors:
sudo badblocks -v /dev/{device}
That should answer the question but for anyone else interested in how to mark them it can be done with 2 simple commands...
You add the bad blocks to a file...
sudo badblocks /dev/sdb > {/dir/to/filename}
and then tell fsck
to mark these as unusable with ...
sudo fsck -l {/dir/to/filename} /dev/{device}
e2fsck
has a -c
option which calls badblocks
itself and takes care of the block size. One apparently has to be really careful that those match if you do it your way.
Jul 21, 2014 at 14:39
badblocks
+fsck
to mark bad blocks could be dangerous. From badblocks
man page: "Important note: If the output of badblocks is going to be fed to the e2fsck or mke2fs programs, it is important that the block size is properly specified, since the block numbers which are generated are very dependent on the block size in use by the filesystem. For this reason, it is strongly recommended that users not run badblocks directly, but rather use the -c option of the e2fsck and mke2fs programs." See @john-mehorter answer.
Jan 17, 2015 at 18:58
Use fsck.ext3 (e2fsck) for instance and use the -cc option
-c This option causes e2fsck to use badblocks(8) program to do a read-only scan of the device in order to find any bad
blocks. If any bad blocks are found, they are added to the bad block inode to prevent them from being allocated to a
file or directory. If this option is specified twice, then the bad block scan will be done using a non-destructive
read-write test.`
fsck -cc /dev/sda1