今天在一台服务器上装完CentOS7.4后,在上面安装oracle,修改了一些配置,例如关闭Transparent HugePages、修改内核参数、修改/etc/pam.d/login等操作。
然后重启了服务器,然后通过crt连接能进来,但是服务器里面的内容都变掉了,比如主机名变了,不存在的用户oracle现在却是有的,内核参数仍然存在,但是不是我重启之前改的值了,还有一些莫名其妙的文件系统挂载等。反正就是系统完全变了个样子。在问过一圈可能动到这个主机的人都没有动过,就去机房查看机器了。
去机房也是这个样子,开始怀疑是装了双系统,重启后进了第二个系统。果断又重启了一遍,发现并没有双系统的选择界面。然后重启完成后准备输入root用户和口令时,报了:
module is unknown
无法登陆!
解决办法:
一、设置主板启动项
设置主板启动顺序,本例是从U盘装的系统,找到插上U盘,更改启动顺序为
legacy only -->usb storage-->hard disk0 -->hard disk1
主要是前两个要设置正确,我们要进入到U盘安装系统的那个界面。
依次在界面中选择:
Troubleshooting—>Rescue a CentOS system—>1)Continue
进入到急救模式命令行后,执行命令:
# chroot /mnt/sysimage
就进入到了原系统shell命令行,后面的操作就是在原系统shell中操作。
二、查看登陆日志
# vi /var/log/secure
按CTRL+G跳转到日志最后,查看出错的模块是哪个:
sguap0010 login: PAM adding faultymodule: /lib/security/pam_limits.so Jan
sguap0010 login: pam_unix(login:session): session openedforuser rootbyLOGIN
我这边能看到这样的信息,主要是模块:/lib/security/pam_limits.so找不到。
三、注释掉有问题的模块
# vi /etc/pam.d/login
# session required /lib/security/pam_limits.so
保存退出。
然后退出当前系统shell:
#exit
回到急救模式下的命令行后重启系统从本地磁盘引导重启即可。
#reboot