SOLVED: either superblock or file system table is corrupted
debian testing (squeeze)
I backup my root which is /dev/sda1 using "dd if=/dev/sda1 |gzip -c > root.img.gz"
and when I restored the image by "gunzip -c root.img.gz | dd of=/dev/sda1"
and tried boot up my system told me
filesystem size is 448890 blocks
the physical size is 45680 blocks
either superblock or file system table is corrupted!
regardless of how i used the
dumpe2fs | grep superblock
to lookup the backup superblock and then
e2fsck -b the_backup_superblock_number
it is returned the same error!
then I read about mounting dd image and cpio
I use either ubuntu or clonezilla liveCD to boot
I then gunzip the root.img.gz
mount the root.img to a mount_point
mkfs.ext3 my /dev/sda1
mount /dev/sda1 target_drive
find . -print | cpio -dumpv ../target_drive
grub > find /boot/grub/stage1
grub > root (hd0,0)
grub > setup (hd0)
grub > exit