番外篇
当我打出sudo rm -rf /bin命令的时候,我内心其实丝毫没慌。话说当时,我正在~目录下,由于需要安装ffmpeg,按照官方教程我在~下新建了/bin文件。等我输入完密码,/bin文件被删除,突然发现ls命令没用了,此时我已经意识到似乎发生了可怕的事。手贱的我,继续输入exit退出了ssh。接着我尝试再次远程连接,发现再也登入不上去了 (没关闭ssh的情况就比较好解决了) !紧接着我就去找了leader,他过来一看:????你怎么把/bin文件给删除了?????,此时leader的内心:
原地开除!!
解答篇
接上文,啥也不多说了,赶紧恢复吧。
捶胸分析:
- 首先~路径和/路径的区别
- ~代表:/home/user/
- /代表:就是系统根目录了
- 恢复/bin的方法简单来说就是需要找到和原先系统一模一样的/bin,然后想办法弄回去。
- 第一步:先重启服务器,引导系统先查看服务器使用的linux内核(
为啥?因为后面我们找到对应服务器版本才能重新拿到/bin文件),内核版本如下:

知道linux内核就可以找到4.4.0-31对应的ubuntu版本是14.04.5(另外,你应该知道自己是desktop还是server版本)
-
第二步:制作U盘启动盘(ubuntu14.04),去服务器用U盘启动,此时不要安装系统,而是点击试用进入。
在进入试用之前,希望你可以先做第一步 -
第三步:进去文件系统看服务器硬盘挂载在哪里。如下:

这时候你一般可以看到原来服务器挂载在哪里了,一般情况下长这样:/media/xxxx,你就可以发现原来的/bin文件在哪里找不到了。
-
第四步:找个虚拟机安装和你原来服务器一模一样的系统,安装系统后,把虚拟机的/bin文件压缩后放到另外一个u盘(你需要两个U盘,一个启动盘一个放新的/bin文件)
-
第五步:放着新bin文件的U盘插入服务器(确保U盘可以被系统识别),这时候你还在U盘启动盘那个试用版本ubuntu里,进入命令行:
sudo cp /media/usb/bin.tar /media/xxx
然后cd去服务器的硬盘里,解压tar -xvf bin.tar
这边原理就是要把U盘的新的bin文件放到原来的服务器里
大功告成!!!!
如果我的回答解决了你的问题,请点个赞谢谢!有问题可以留言,我会尽快回复!
参考文献:
在尝试安装ffmpeg时误删了~/bin文件,导致无法正常登录SSH。通过重启服务器,查找相同版本的Ubuntu(14.04.5),制作U盘启动盘并恢复/bin文件至原系统中,成功解决此问题。详细步骤包括:分析路径区别、确定内核版本、制作U盘启动、虚拟机中获取/bin文件并解压至服务器。
318





