解决误删/bin/bash问题

Posted l75790

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决误删/bin/bash问题相关的知识,希望对你有一定的参考价值。

出现原因:由于当时误操作把 /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

技术分享图片

 进入系统后,自己测试一下看有什么问题没有:

[[email protected] ~]# cd /bin/
[[email protected] 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
[[email protected] bin]#

 

备注:

 如果不确定能不能挂载上,或是不想用这个方式,而且你知道网络上有一台服务器,里面某个目录里有这个安装包,此时只需要连接该服务器切换到这个目录里,将其下载到本地安装即可(这个是教程说的,我没试,但是也是一种解决办法)

 


以上是关于解决误删/bin/bash问题的主要内容,如果未能解决你的问题,请参考以下文章

玩转Bash变量

-bash: ./centos-7.6.sh: /bin/bash^M: bad interpreter问题解决

解决VScode缺少git bash的问题

Mysql误删了root用户怎么办

如何让docker以daemon方式运行/bin/bash

/bin/bash^M: bad interpreter: No such file or directory 解决办法