分类: LINUX
2009-04-07 14:35:48
fdiks -l /dev/sdc果然什么样都看不到。但是,系统启动的时候正确的列出了磁盘的相关信息(大小等),而且fdisk也能够列出磁盘大小等相关物理信息,只是没有分区信息。因此初步判断,是磁盘的分区表丢失,不一定是磁盘物理损坏。
rescue上面是parted尝试根据给出起始尺寸和结束尺寸,在这个范围内寻找分区标志符,以决定是否重新写入分区表。可是奇怪的是,总共6个分区,parted只能按照这个办法找回一个分区,其他的都宣告一个提示,大致的意思是“分区结束符位于开始符之前”。
start? 0
end ? 4G
gpart /dev/sdc可喜的是,gpart经过一段时间的搜寻,列出了看起来有道理的分区信息!但是,按照管理员提供的clone盘,应该是找到6个分区(包括swap)才对,但是gpart只找到了4个。经过分析发现, gpart原来只是找到了主分区分析,扩展分区和逻辑分区没有找到。
gpart -W /dev/sdc /dev/sdc将分区信息重新写入到损坏盘中。虽然fdisk, parted可以列出分区信息,但是还是无法mount。于是怀疑文件系统也遭到了损坏。
reiserfsck --check /dev/sdc1
reiserfsck --fix-fixable /dev/sdc1
reiserfsck --rebuild-sb /dev/sdc1
reiserfsck --rebuild-tree /dev/sdc1
fsck.ext3 /dev/sdc1告知找不到superblock,于是:
fsck.ext3 -b 8193 /dev/sdc1尝试找回superblock,但是失败!于是在另外几个保存superblock的地方继续尝试:
fsck.ext3 -b 24577 /dev/sdc1
fsck.ext3 -b 40961 /dev/sdc1
fsck.ext3 -b 57345 /dev/sdc1
fsck.ext3 -b 73729 /dev/sdc1
dd if=/dev/zero of=/tmp/test bs=1024 count=160000
160000+0 records in
160000+0 records out
163840000 bytes (164 MB) copied, 4.35857 seconds, 37.6 MB/s
mke2fs /tmp/test
/tmp/test is not a block special device.
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
40000 inodes, 160000 blocks
8000 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
20 block groups
8192 blocks per group, 8192 fragments per group
2000 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.