昨天不小心将/lib64下的一个动态库文件libc.so.6(很多命令都依赖的)给移动到了/root下,然后除了一些内部命令可用外,其余命令都不能用了,然后就想着看看重启可不可以修复,结果重启后就再也开不了机了,心想着这可咋整,要不用最快的方式进行快照恢复吧,结果老师就说了,不能使用快照,让我们使用Rescue营救模式进行恢复,然后在恢复的过程中就发现一个问题,
这个库文件的改变分两种:1.将它移动了位置;2.将它改名字了;在这里这两种情况归为一种解说,还有另外一种就是删除,而且Centos 6与Centos 7的营救模式还有点不一样,接下来分别讲一下:
本文总共分两部分:
一:在Centos 6下 恢复/lib64/libc.so.6
二:在Centos 7下 恢复/lib64/libc.so.6
一:在Centos 6下 恢复/lib64/libc.so.6:
如下图所示,将/lib64/libc.so.6移动到了/root/下。然后,像ls、ll命令已经不能用了,接下来,我们就去Rescue模式
首先我们要重启一下虚拟机,接下来就考验手速了:在出现如下图所示的界面时,立即将鼠标点进去并快速的按一下Esc键,(这个界面出现的时间比较短,一定要记得快速按键)
然后就会进入如下图所示的界面:这里选择第三项(用上下键进行移动)CD-ROM Drive(虚拟光盘设备),因为我们现在虚拟环境里已经没有了动态库文件libc.so.6,所以我们要借助虚拟光盘进行将我们的文件找回;
然后进入下面的界面,选择第三项营救模式下,enter键继续
接下来的两步都直接默认,enter继续,到第三个界面时提醒是否开启网络,点YES也行,这里我选择NO
接下来的这个选项就要好好看看,大概意思就是告诉你这里挂载在/mnt/sysimage目录下,(也就是说我们之前的根/,就是现在/mnt/sysimage),下面的四个选项,这里我们要做一些操作,所以这里选择默认的Continue选项;
接下来会再次告诉你,你现在在/mnt/sysimage下,如果你想改变你的root的目录,使用chroot /mnt/sysimage这条命令进行,我们只是想找回libc.so.6这个文件所以这里就直接OK就好了;
这里它会反复提醒你根目录的所在位置/mnt/sysimage,进去后要想进入/root下就要敲/mnt/sysimage/root
现在点击OK的话就会进入一个shell
如下图所示,这里可以看到第一个lib64下也可以看到libc.so.6,因为我们把libc.so.6移动到了/root下,所以我们可以再将它移回来,那我们要是在终端上将/lib64/libc.so.6删除了,在/mnt/sysimage/root下就没有这个文件了,所以我们这时就需要把刚进入shell时的目录下的lib64下的libc.so.6拷贝一份(cp lib64/libc.so.6 /mnt/sysimage/lib64/)就可以了,然后输入exit退出;再enter进入shell环境后,输入reboot重启虚拟机就好了(因为我们将文件破坏了,所以重启的时候可能有点慢,耐心等待呦。)
二:在Centos 7下 恢复/lib64/libc.so.6
这里可以结合上面的那张图一起看,我们一会要从虚拟环境中的lib64下 的libc.so.6给cp(拷贝)到/mnt/sysimage/lib64(也就是现在的/lib64/);
现在重启虚拟机,跟Centos 6差不多,手速要快哦,当出现滚动条后,立刻鼠标点进去并快速按下Esc键,出现的界面和Centos 6的一样,都是选择第三项进入CD-ROM Drive(虚拟光盘设备);enter之后,这里就和Centos 6 有所不同,没有直接将Rescue模式列出来,而是通过点击第三项Troubleshooting(错误排查);
然后进入如下界面,这里点击第二项Rescue模式,然后接下来的界面与Centos 6有所不同,Centos 6是弹框显示,这里直接就是命令行显示
这里的提示和Centos 6一样,所以这里要输入“1”,进行Continue,然后点击Enter,
这里提示和Centos 6里一样,都是告诉你挂载目录在/mnt/sysimage下,之前所有以根(/)起始的目录在这里都要以/mnt/sysimage起始;然后按Enter键,就可以进入shell环境了。
如下图所示,进入shell后,将当前目录下的lib64下的libc.so.6拷贝到/mnt/sysimage/lib64即可
最后一步比Centos 6 稍微少一步,就是在Centos 7下直接输入exit,按Enter键就可以直接重启, 不需要exit后再reboot重启(这个过程也需要几分钟的等待时间呦)。
OK,等重启结束,这个示例也结束了,用Rescue模式还原我们丢失的一些文件,而不用像快照恢复一样,因为快照拍摄后我们可能又建了很多文件,这时若使用快照恢复的话,那么这些文件就会丢失,当然,你也可以将它备份到其他虚拟机上,等快照恢复后再拷回来,这个需要根据具体情况而定,毕竟每个东西的存在都有它的价值。
原创文章,作者:M.Sun,如若转载,请注明出处:http://www.178linux.com/85235