外部命令需要依赖于很多包才能执行 列出程序库文件的文件列表,用ldd:
例如:ldd /usr/bin/cp
有很多库文件是通用的,如 /lib/libc.so.6。这样的库文件一旦丢失,将会影响外部命令的运行,对于内部命令没影响。如果这样的文件丢失,我们除了可以用恢复快照的方法,也可以用下面这种
实验:将/lib64/libc.so.6 转移到 /root 下之后,很多命 令无法执行,如何恢复
1.重新启动客户机
2.在这个进度条正在进行的瞬间按下ESC
注意:
《1》:英文输入法模式下
《2》:鼠标点进Linux虚拟机
3.选择CD-ROM Drive
光盘引导程序进行,前提是光盘已经挂载上
4:选:Rescue installed system
救援模式安装系统
5:这几步默认
6:选择NO
因为此故障与网络没关系,所以不需要配置网络
7:默认继续
之后将自动去寻找操作系统的根之前操作系统有不同的分区,每个分区都有不同的文件内容,分区和目录的对应关系为
/dev/sda1 ===》 /boot
/dev/sda2 ===》 /
/dev/sd3 ===》 /app
/dev/sda5 ===》 swap
这些根据自己的配置,使用df命令可以查看这个步骤之后,救援环境将试图去找操作系统的根并将它挂载到 /mnt/sysimage 下,那现在分区和目录的关系就变为:
/dev/sda1 ===》 /mnt/sysimage/boot
/dev/sda2 ===》 /mnt/sysimage/
/dev/sd3 ===》/mnt/sysimage/app
/dev/sda5 ===》swap
那我们现在需要做的就是将文件从/mnt/syaimage/root 移动到原来的位置 /mnt/sysimage/lib64
8:已经找到系统的根
还有个提示信息就是说,如果你想要还原到原来的操作系统环境可以执行chroot /mnt/sysimage这样相当于切根,将根从 /mnt/sysimage 切换到 /
9:默认选择
开启了一个终端,这样就可以敲命令了
10:这时查看到的当前目录 /,是一个虚根
ls 可以查看根下的一级目录,与原来的目录不一样,/app目录也不存在
11:这个也可以很好地说明这是一个虚根,/root下什么都没有
12:这样将这个文件移回去就OK了
或者是先切根,再移文件
13:最后exit退出重启一下就好了
(如果当时切根的话就要执行两次exit退出切根状态,再退出shell)
Centos7.3中的恢复方式与Centos6.9类似