问题描述:
使用了错误的配置命令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
这下一切正常了。