linux

check hdd health

check secor size

lsblk -o NAME,PHY-SeC

In my setup of SAS drives I have a block size of 512, my SATA drive setup has 4096 block size, with a block size of 512 I get the following error:

# badblocks -svw -b 512 -c 65536 /dev/sda
badblocks: Value too large for defined data type invalid end block (5860533168): must be 32-bit value
# badblocks -svw -b 512 -c 32768 /dev/sda
badblocks: Value too large for defined data type invalid end block (5860533168): must be 32-bit value

Increasing the block size to 4096 helped.

badblocks

Check the health of a harddisk with badblocks, attention the w option will delete all data on the disk. Use the blocksize from above with the badblocks command.

badblocks -svw -b 4096 -c 400000 /dev/sda

It seems that the c option has a big impact on the runtime of badblocks.

smart

After running badblocks you can run a long selftest

smartctl -t long /dev/sda