First: Find the location of the backup superblocks for your filesystem.
The location of the backup superblock is dependent on the filesystem block size. For filesystems with 1k blocksizes, a backup superblock can be found at block 8193; for filesystems with 2k blocksizes, at block 16384; and for 4k blocksizes, at block 32768.
Additional backup superblocks can be determined by using the mke2fs program using the -n option to print out where the superblocks were created.
mke2fs -n /dev/hda1
Second: Check filesystem using alternative superblock and fix primary superblock.
e2fsck -b 32768 /dev/hda1
If an alternative superblock is specified and the filesystem is not opened read-only, e2fsck will make sure that the primary superblock is updated appropriately upon completion of the filesystem check.