CentOS6.5系统重启后宕机

刚接手新公司的业务,一天技术总监过来反映说,公司应用反应缓慢,通过检查发现,确有反应缓慢还时不时的关闭应用,查看日志文件发现是内存不足和内存溢出,步骤如下:

1、调整tomcat应用内存

vim bin/catalina.sh

JAVA_OPTS=”-server -Xms1024m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=1024m -Djava.awt.headless=true “

JAVA_OPTS=”-Xms1024m -Xmx1024m”

无明显效果;

2、用TOP和free 查询,发现服务器内存剩余不是很多,JAVA进程占用很大内存空间,在暂时不能增加内存的情况下,考虑用重启服务器来释放内存,使服务有更多的内存空间;

3、重启服务器就启动不起来了

《CentOS6.5系统重启后宕机》

上图中fsck.ext4:Unable to resolve ‘UUID=’,

原本是/dev/sda1:Unable to resolve ‘UUID=5lk456668886’等一长串UUID序列号

一直这个画面无法进入系统正常登陆页面

4、以防万一,备份服务器数据,并转移应用到另外服务器,大费一番周折(拿了一块移动硬盘去,不认,提示格式不对,移动硬盘是NTFS格式,因服务器挂了上不了网络,后用FAT32的U盘拷贝NTFS-3g软件到服务器,安装出错,没有安装成功,只有用现有U盘一点点备份数据,我也是醉了。。。。)

5、接下来的一个星期就花在了导数据,恢复,部署,查错等事情上了;

6、数据是导出到了备用服务器上了,应用基本恢复,总算轻松了一些,但还是心有不甘,想办法恢复宕机的服务器,查了很多资料,还是一头雾水,

single进入单用户模式fsck -y /dev/sda1 

                                  fsck.ext4 -y /dev/sda1

重启提示就是fsck.ext4:Unable to resolve ‘UUID=’

还是无法正常启动

找来光盘进入安全模式fsck.ext4 -y /dev/sda1

情况依然,无法恢复

网上查询到大量修复的是grub,但感觉使用在这个故障不合适

 

: 进入Linux rescue模式后有几种方法引导系统:

chroot /mnt/sysimage   默认是挂载到/mnt/sysimage

方法1:
1. 在系统提示符#后输入:fdisk -l
//显示硬盘的分区,以便确定安装Linux的分区。
//本例是第一个硬盘的第三个主分区hda3   
2. # grub-install /dev/hda
//重新安装GRUB引导程序在第一个硬盘上。
3. # exit;reboot
//退出并重启系统。

方法2:
1. # grub
//进入GRUB命令行模式,出现提示符:grub>
2. grub> root (hd0,3)
//定位安装Linux的根分区,root与参数(hd0,3)间有一个空格。
3. grub> setup (hd0)
//在重新安装GRUB引导程序在第一个硬盘上,setup与参数(hd0)间有一个空格。
4. grub> exit;reboot
//退出并重启系统。

方法3:
1. # grub
//进入GRUB命令行模式,出现提示符:grub>
2. grub> root (hd0,3)
3. grub> kernel (hd0,3)/boot/vmlinuz ro root=LABEL=/
//输入内核参数,注意内核的位置与名字。
4. grub> initrd (hd0,3)/boot/initrd-2.4.20-8.img
//传输映像文件,注意其所在的位置与名字。
5. grub> boot
//引导Linux系统启动。

有查询了UUID 大概明白是fstabs文件中/devsda1:UUID出了问题

7、进入single模式        

mount -o remount rw, /      现在宕机系统默认为只读,此为重新挂载

vim /etc/fstabs

我先将/dev/sda1 : UUID=“XXXXXXXXX”/boot更改为其他序列号,错误依然

其次将/dev/sda1 : UUID=“XXXXXXXXX”/boot注释掉,提示信息如下

《CentOS6.5系统重启后宕机》

这是因为注释掉上边一行,也就是没有了/boot,所以一直没有动作

再次将/dev/sda1 : UUID=“XXXXXXXXX”/boot中序列号XXXXXXXXX删除,保留/boot

重启成功,进入久违的登陆界面,进入系统

tune2fs -l /dev/sda1 |grep ‘UUID’   查询系统UUID

将查询到的UUID序列号手动写入/etc/fstabs

/dev/sda1 : UUID=“XXXXXXXXX”/boot


重启成功,大功告成


8、总结

这个故障是突然的断电或重启使系统UUID不一致引起的无法启动,因为UUID是每个系统唯一的标志

步骤;

1 single模式

2 mount -o remount rw, /

3 vim /etc/fstabs

删除或更改挂载目录/boot的UUID

4 重启,使系统重新加载

5 查询UUID tune2fs -l /dev/sda1 |grep ‘UUID’

   并更改到/etc/fstabs/boot的UUID

6 保存重启







本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1793904

点赞