公司的一台centos 6.0 X64系统测试机,把root密码给了好几个组的人用。天晓得他们在上面折腾什么!过了几天我要测试mysql-cluster,刚好少一台机器。结果发现登录不上了,我原以为其他组的人改了密码。问了他们,他们也说登录不了。本想重启下或重置下密码就能解决了!结果按上显示器以后才发现,系统启动到starting automount停住不动了。

不过这个服务用处也不大,用于自动挂载用的。很多生产环境的优化上有提示把该服务停掉。于是回到单用户模式 chkconfig autofs off 停掉了该服务。再重启机器

双发现停到了staring postfix处不动了。TNND,还耗上了。反正邮件服务我也不用。接着回到单用户模式 chkconfig postfix off ,把postfix服务也停掉。

再重新启动,这次可以加载到login登录提示处了,本以为这样问题就解决了。可输入用户名密码后,等了半天没有反应。过了一会儿出来一个提示:login time out after 60 seconds

看来问题没有这么简单啊!再重启回到单用户模式吧。本想通过passwd命令修改root密码为空。发现没反应。只有修改/etc/shadow文件了,将root后的那一大串关于密码的内容置为“!!”,同时又使用useradd test增加了一个密码为空的用户。

再重启,问题依旧。看来问题有点棘手,准备系统修复或重装了。不过系统修复之前,还是先回到单用户模式下看看/boot/grub/meau.1st、/etc/fstab等几个重要的配置文件是否被人动了。

先看了下配置文件/boot/grub/menu.1st文件,下面的配置引起了我的注意:

1initrd /initramfs-2.6.32-71.el6.x86_64.img

感觉有点奇怪啊,之前记得应该是下面的才对啊:

1initrd /initrd-2.6.32-71.el6.x86_64.img

注:此处是我知识面太窄了,Centos到6.0版本以后,由原来的initrd引导镜像换成了initradfs引导镜像。不过也多亏我看到了这点。问题最后才得以顺利解决。

1-rw-r--r--. 1 root root 13430705 Aug 28 14:06 initramfs-2.6.32-71.el6.x86_64.img
2-rw-r--r--. 1 root root  5114375 Sep 14 12:27 initrd-2.6.32-71.el6.x86_64kdump.img

到/boot目录看了下,启动镜像有上面两个,于是修改/boot/grub/menu.1st文件将启动镜像修改为了initrd-2.6.32-71.el6.x86_64kdump.img,再重启系统。竟然能正常引导并且输出密码能正常进入系统了。但进入系统以后,通过passwd修改密码时,提示错误。具体出错代码忘了记了,大致是由于selinux引起出错,无法修改。通过 setenforce 0 关闭selinux依然无法修改密码。此时,我通过查看另外一台装了centos 6的主机。对于此导项,才发现确实是由initrd换成了initramfs镜像。后来又去网上查了下两者之间的区别。在此就不再列举。

不过心想,即然能进入系统了,事情应该就好办好了,先升级下内核和软件再说。直接yum -y update ,安装了有300多M的更新。再去/boot目录下查看。发现新的内核和引导镜像已经更新

1-rw-r--r--. 1 root root 15758087 Sep 14 12:31 initramfs-2.6.32-279.5.2.el6.x86_64.img
2-rw-r--r--. 1 root root 13430705 Aug 28 14:06 initramfs-2.6.32-71.el6.x86_64.img
3-rw-------. 1 root root  5327562 Sep 14 12:44 initrd-2.6.32-279.5.2.el6.x86_64kdump.img
4-rw-r--r--. 1 root root  5114375 Sep 14 12:27 initrd-2.6.32-71.el6.x86_64kdump.img

而引导文件menu.1st也已经更新。引导镜像又重新换成了高版本的initramfs引导。再重启系统,顺利进入系统。且可以正常修改密码。查看了下系统版本也由原来的6.0升级成了6.3 。

至此,问题完全解决。