40

how to check bad sector on HDD 6TB

koko@Rumah:~$ sudo badblocks -v /dev/sda2
[sudo] password for koko: 
badblocks: Value too large for defined data type invalid end block (5751976960): must be 32-bit value
Ivan
  • 809
  • 2
    Duplicate of http://unix.stackexchange.com/questions/152171/badblocks-only-takes-32-bit-integer-as-start-end-values – Jan Nov 12 '14 at 23:05
  • 1
    that not help at all :( any specific solution for ubuntu x64 14.04? – Ivan Nov 12 '14 at 23:22
  • 1
    I read that link and it looks like it's definitely specific to this. – thomasrutter Nov 13 '14 at 00:48
  • Ivan, the link mentioned explains that badblocks can't cope with HDDs that large. You'll not get it to run on your 6TB HDD, no matter what you'll do. – Jan Nov 13 '14 at 07:39
  • ok so if 6 TB HDD, what should i do ? or make partition 2 tb? or 1tb? – Ivan Nov 15 '14 at 18:56

2 Answers2

75

for me the trick was to simply increase the blocksize:

badblocks -b 4096 -v /dev/sda
Markus
  • 851
  • 1
    Thank you. This worked for my 10TB drive. Hopefully for my 16TB drive soon – Dave Dec 21 '20 at 21:14
  • Didn't work with my 18 (in fact, 16+) Tb HDD :( – PocketSam Dec 16 '21 at 07:35
  • 2
    @PocketSam that's because 4096 x (2^32) = 17592186044416, or 16 TiB. Your 18 TB disk (18,000,000,000,000 bytes) is 16.37 TiB, so 0.37 TiB too large for 4096 byte blocks at 32-bit. You'll need a larger block size, e.g. 8192 bytes, though I'm not sure what exact size is ideal to use beyond 4096. – Adambean Oct 26 '22 at 09:37
1

I wanted to run badblocks with the actual blocksize of the disk which I found by running sudo -n blockdev --getbsz /dev/disk

My solution was to create a bunch of partitions of size 2TB and badblocks them individually, avoiding the int32 overflow.

Simon
  • 131