问题描述
这两天遇到一个问题,就是整个公司的办公大楼经历一次全面的网络升级和两次消防演练断电,导致公司内部经常使用的一台服务器【就是一台安装了centos7.*系统的工作站】再也无法正常启动了。技术支持组的同事打电话说,这台机器自从上次断电之后,再也启动不了了,接入键盘和显示器看了一下, 发现开启之后一直卡在用户登录页面之前,无法正常启动成功。
他们自己的解决思路
重装系统【这个linux系统是使用硬盘直接安装了,重装操作他们组没有人会整,也没有人会整,折腾了大半天功夫,问题的解决进度为0,毫无进展】,他们就联系了我们开发组寻求支援,没办法,最后这个事自然就落在我头上了,接了那也没办法,那就给他解决呗。。
排查过程
1、系统在启动的时候一直卡住的原因?
服务器从他们那里拿回到我们部门后,开整
启动了一下,发现的确启动到最后卡住了,看了一下启动打印的日志,发现有几处Failed报错信息
看到上面这个报错信息,我的猜想大致如下:
极有可能系统上面安装了两个redis服务,端口用的是同一个,redis开机自启的时候端口已经被占用了,开机自启失败了,死循环retry导致的问题。
棘手问题:
因为网络升级,现在网段变了,这台服务器设置了静态IP,我们的机器跟它不在一个网段,网络不通,就算远程登录开启了, 我们也连不上去。。。坑
猜测验证
通过那个启动日志我发现,开机启动多了一项服务, 就是那个gitlab,大家都知道gitlab-ce安装的时候会默认安装redis和nginx依赖,我们之前用这台机器做开发的时候已经在上面安装过redis了, 所以我就跟技术支持组的同时沟通了一下, 他们说最近的确新安装了gitlab在那个台机器上,啥参数都没改。。。好家伙,好吧, 问题基本定位到了,下面说说怎么解决。
问题解决
现在知道问题在哪儿了,只要能登录上服务器,把之前安装的redis那个开机自启的端口修改成其他自定义的端口就行了,怎么登录呢?
1、进入单用户模式
进入开机页面,在内核选择时,按e选择启动内核
到图中红线标注的该行,在行尾添加 init=/bin/sh
按住Ctrl+x执行以后,即可进入单用户模式,对系统内文件进行操作。
在这里插入图片描述
单用户模式下可能没有存在没有文件的写权限的问题。这是需要重新挂载文件系统
mount -rw -o remount /
这样就可以修改文件了,找到redis的配置文件,修改端口,因为现在我们开发已经不使用这台机器了, 所以我这里选择的是直接取消之前我们安装的redis的开机自启systemctl disable redis.service
,修改完成,重启, 系统可以正常启动了,反反复复重启了5次,都可以正常启动,OK,搞定!