在执行linux时难免会遇到操作错误导致系统无法正常启动,此篇文章笔者借助一个软件安装包,模拟了几个常见的小错误。

下载此安装包后,进行安装:
rpm -ivh rhce-ts-5.4.0-3.noarch.rpm

安装此软件包后,执行命令进行破坏。

1)执行tsboot break后,开机页面变成如下:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_bash

此时说明无法进入boot引导,难道系统就这样崩溃了吗?不要着急,我们可以使用此版本相同的系统引导进入救援模式。(笔者这里使用一个boot引导光盘已经无法进入,最后经过浩渊兄的指正,使用系统光盘引导才得以进入,注意此时还需要调整光盘的启动顺序。)

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_02

进入救援模式

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_重启_03

救援模式中这个画面也比较重要:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_重启_04

此时您也许还无法知道系统是哪里出错了,而和系统启动的几个重要文件我们都需要查看是否存在或遭到破坏,常见的几个文件有:/etc/grub/grub.conf 及/etc/grub/目录下的文件, /etc/rc.d/rc.sysinit ,/etc/inittab,/etc/fstab

检查后都没有出错,而此时有错误了,注意:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_05

无法运行/bin/sh命令,而sh又是指向bash的链接,找到问题了,说明是bash出问题了。

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_重启_06

此时发现多了一个bash.gotcha文件,是不是被改名了呢?试试吧。

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_07

已经可以切换到根目录下了,去掉光盘再重启看能否正常运行。

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_08

恭喜您,成功了!

2)执行tsinit break命令,重启后的界面

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_09

 此时不知问题所在,首先我们来尝试能否进入单用户模式,

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_10

能够成功进入单用户模式,我们再来查看上文提到的关键文件是否存在或者被破坏。最后发现/etc/inittab文件有错误,如下:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_bash_11

应该改为:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_12

重启系统,能够成功登录:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_linux_13

恭喜您,又成功了!

3)执行tslogin break命令,重启后输入超级用户root帐号和密码时,会快速的闪回登录界面,此时判定root账户出现问题,我们进入单用户模式,查看root用户的帐号信息,如下:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_bash_14

用户帐号已经过期,我们需要修改/etc/shadow文件:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_重启_15

修改为,并强制保存退出:wq!:

服务器sudo reboot之后连不上了 linux服务器reboot后起不来_重启_16

重启系统,我们发现超级用户root已经可以成功登录。

4)执行tsnetwork break命令后,重启系统,登录我们发现网络地址被修改,我们可以以超级用户登录系统,修改网络配置命令即可。

5)执行tssudo break命令后,是把sudoers文件修改了,以visudo进入编辑模式,修改即可。

后记:在linux中操作尽量不要以超级用户身份执行rm -f  之类的命令,其中linux的管理也会遇到各种问题,希望大家一起讨论,共同进步。

下面我会上传那个软件包,仅供模拟实验使用!