问题描述:

使用了错误的配置命令crle,造成系统无法登录,也无法执行su(丢失了/lib和/usr/lib)等很多系统命令
crle -c /var/ld/ld.config -l /var/ld/ld.config:/oracle/lib32

 

-bash-3.00$ su -
ld.so.1: su: 致命的: /var/ld/ld.config/libcmd.so.1: 不是一个目录
被杀掉


正确的配置命令应该是(其实最好是-u还不是-c,不过因为先前有人把ld.config文件手工改坏了,只能重建。郁闷啊。错上加错,雪上加霜)
crle -c /var/ld/ld.config -l /lib:/usr/lib:/oracle/lib32

其实恢复的办法就是重新运行crle或者删除错误的ld.config文件,

倒霉的是改完了就退出了特权环境。没法再恢复了。

上网查了半天,说是要吃哦那个奇到单用户模式恢复。

晕啊,线上系统要重启,要通知现场工程支持,还要请示用户配合去现场机房。。。。。

一边折腾得鸡飞狗跳,一遍不甘心地继续查其它解决方法

在crle地man里面发现一个$LD_NOCONFIG环境变量,说是可以跳过ld.config的配置。。。

赶紧

-bash-3.00$ LD_NOCONFIG=1
-bash-3.00$ export LD_NOCONFIG

有门

-bash-3.00$ su 
口令: 
ld.so.1: bash: 致命的: /var/ld/ld.config/libcurses.so.1: 不是一个目录
被杀掉

比刚才好点,可以输入口令了,不过还是不行,因为su需要登录,登录还是不行。

幸好还有sudo命令

sudo crle -l /lib:/usr/lib

这下一切正常了。

09-29 17:30