出现原因:由于当时误操作把 /bin/bash 命令解释器二进制文件移到了/root 家目录里面,再重新登录系统之后,登陆进去什么也干干不了。
解决办法:让系统重启,以挂载光盘模式进入系统BIOS,选择CD-ROM为第一启动项。之后重启系统。
系统重启的时候选择救援模式,进入救援模式的命令行。
通过光盘重新安装bash命令解释器(网上说也可以通过远程下载bash rpm包来安装,这个方法我没有试过,不知道行不)。
下面我就具体说明操作步骤:
步骤一:连上光盘,让系统重启,进入BIOS界面,选择CD-ROM为第一启动项,重启电脑。
步骤二:电脑重启之后,进入系统安装时的界面,我们选择第三个,进入系统救援模式(注意:这里如果进入单用户模式的话,我测试了一下不行)
步骤三:之后操作直接下一步,在网卡选择的时候选择NO,其他选择项参考博文(https://www.cnblogs.com/l75790/p/9403336.html),之后进入命令行模式。如图
步骤四:接着就是找到bash的安装包然后安装即可(此时的光盘已经是挂载的了,而且最好不要再挂载光盘到/mnt目录下)。 ls /dev会显示设备列表,但是其中并没有CD-ROM,看的教程上说CD-ROM一般模拟的都是hd的设备,而且CD-ROM是指向hdX的一个链接,我的/dev目录中没有hd设备,反而是/dev/dvd这个设备(最笨的方法就是实在无法确认的话就大致找几个貌似对的,先挂载,然后进去找,如果有安装包列表就是对的)。如图
步骤五:根目录下(不是/mnt/sysimage而是这个小系统的根)创建一个目录,然后将/dev/dvd挂载到该目录下,进入该Packages包目录,
通过命令 “ls | grep bash” 找到该bash安装包。
步骤六:这一步骤就是安装bash包。这里我是把bash安装包拷贝到根(/)目录下面,在重新安装的。大家也可以直接在该目录里面安装。
安装命令:rpm -ivh --replacepkgs --root /mnt/sysimage /bash-4.1.2-48.el6.x86_64
其中:
--replacepkgs:指定替换原来的bash包;
--root /mnt/sysimage:指定将包装在根下(前面进去救援模式时告诉你的此时的根在/mnt/sysimage);没有此选项说明你把bash包装到当前的这个小系统中去了,并不是装到原系统中去,如图:
步骤七:切换到真正的根上去查看是否装上了,完成到这一步就说明问题已经解决了;如图
步骤八:重新启动,选择boot from local drive启动,进入/bin目录下可以重新找到bash
进入系统后,自己测试一下看有什么问题没有:
[root@PandaLi ~]# cd /bin/
[root@PandaLi bin]# ll | grep bash
-rwxr-xr-x. 1 root root 868596 Aug 29 2012 bash
lrwxrwxrwx. 1 root root 4 Jul 26 02:46 sh -> bash
[root@PandaLi bin]#
备注:
如果不确定能不能挂载上,或是不想用这个方式,而且你知道网络上有一台服务器,里面某个目录里有这个安装包,此时只需要连接该服务器切换到这个目录里,将其下载到本地安装即可(这个是教程说的,我没试,但是也是一种解决办法)