分类:
2005-12-28 16:04:53
11-2日,linux(redhat as3.0)网站服务器瘫痪,无法正常启动
故障现象:linux网站服务器无法启动,通过光盘引导后,发现网站中的一个5g的分区存放了6g的日志,同时在磁盘管理工具中看到该分区的大小为16t,将log目录删除后,重启启动无法启动,对linux进行了重新安装,对其他分区进行了保留,只对/进行了格式化,安装后,发现存放网站数据的分区找不到了
故障解决:
思路1、首先使用df 查看系统可以识别的系统分区,发现有cciss/c0d0p3、cciss/c0d0p6、cciss/c0d0p7三个分区没有找到,通过使用fdisk /dev/cciss/c0d0可以看到这三个分区中存在数据,分区大小为5g 10g 5g,利用率为61% 1% 1%.
2、对分区进行加载,可是提示错误
mount /dev/cciss/c0dop3 /opt
提示需要制定分区格式,从此可以判断分区信息存在了破坏,因为原分区格式为ext3,无需制定格式即可加载。
mount -t ext2 /dev/cciss/c0dop3 /opt
提示分区不存在或者superblock错误。
3、对系统进行了重装,到了硬盘管理的步骤,看到这三个分区的格式为linux native ,而其他分区都可以识别为ext3.
(经过试验,对一个正常的服务器的linux进行重新安装,其他分区为此不便,在安装过程中redhat可识别出分区类型ext3,安装完系统后可以自动加载;redflag识别为linux native ,安装完系统后,手工可以加载。)
进行系统后,分区还是无法加载,排除系统可能存在的软件故障。
4、判断可能是分区由于被数据撑爆,造成superblock损坏,或者分区表纪录有问题,所以对其执行了fsck
fsck –yc /dev/cciss/c0d0p3
提示superblock bad ,使用备份superblock.
然后进行分区检测,出现很多inode的size非常巨大,实际大小应改为0,进行重置,(这与客户反映情况一致,说明磁盘分区信息出现了错误),这样修复后发现分区转变为了ext2分区格式,mount –t ext2 /dev/cciss/c0d0p3 /opt 成功,可以看到了分区下面的数据
同样对c0d0p6的数据进行了恢复。
但是在执行c0dop7的时候,提示superblocak错误,
Group descriptors look bad... trying backup blocks...
fsck.ext2: Invalid argument while checking ext3 journal for /var
(实际上再进行fsck之前可以对分区的数据做一个镜像,这样可以减少数据修复丢失的风险 dd if=/dev/ida/c0d0p7 of=/big/var.bak.dd)
然后对c0d0p7分区使用mke2fs -S /dev/ida/c0d0p7进行分区文件系统重建
然后使用fsck –yc /dev/cciss/c0d0p7
mount –t ext2 /dev/cciss/c0dop7 /opt2
这样就找到了原来的数据