Did you repartition the drive before doing this? If so, you need to
reboot to have the changes take effect (sad, I know).
> # badblocks -c64 -svw /dev/hdc3
>
> Checking for bad blocks in read-write mode
> >From block 0 to 1044225
> Writing pattern 0xaaaaaaaa: done
> Reading and comparing: 104422472/ 1044225 <--- WTF ????
>
> #at the end of each "Writing pattern 0x...."
> Dec 3 20:25:39 kernel: attempt to access beyond end of device
> Dec 3 20:25:39 kernel: 16:03: rw=0, want=1044226, limit=1044225
Hmm, kind of strange that the very last block is "bad". More likely
it is an error somewhere in the partitioning code (or no reboot, as
above) which is reporting the wrong size for the partition. Now that
I think about it, Linux is unable to use the last 512 bytes of any
partition, so it should never tell you that the partition has an odd
number of sectors in it. What does /proc/partitions say?
> Well after I was done with badblocks -o I went on to e2fsck with 1024byte
> blocks (I am gonna have lots of small files). But that wouldn't fly. The
> output below tells why, but I am not sure why it would be having short
> reads that early into the partition...
>
> # mke2fs -b 0124 -m 1 /dev/hdc3
>
> Filesystem label=
> OS type: Linux
> Block size=1024 (log=0)
> Fragment size=1024 (log=0)
> 131072 inodes, 1044225 blocks
^^^^^^^ This is very strange. Above, fdisk says the units
are 512-byte sectors, yet this says 1024-byte blocks?
> Could not write 8 blocks in inode table starting at 8:
> Attempt to write block from filesystem resulted in short write
No idea about this part.
> So I tried 2048byte blocks, but I got yet another problem this time! It
> ignores the badblock (1044224) saying it's out of range!? (even though the
> partition has 1044225 blocks, and even though I never specified the
> start/end blocks myself (i let it auto-figure it out)). Any ideas ?
Probably because mke2fs expects the bad blocks list to be in the same
units as the filesystem blocksize. If you created the bad blocks list
with a 1024-byte blocksize, it will not work with a 2048-byte filesystem.
You need to divide all the block numbers by 2. So, no real bug here.
Cheers, Andreas
-- Andreas Dilger http://sourceforge.net/projects/ext2resize/ http://www-mddsp.enel.ucalgary.ca/People/adilger/- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/