ld.so.1库文件被破坏和删除导致异常的解决方法

盖国强 2019-05-08
21
0 0
摘要:用户现有session没有断开的情况下的恢复情况,如果系统当前session断开后,用户是无法再登录系统的,这时只能重启系统(而且运行reboot命令也会提示错误,只能通过按钮重启),通过光盘启动的方法恢复了

问题描述

一个同事在一台Solaris测试机上测试时,误将/usr/lib/ld.so.1文件给覆盖了。进而导致系统中命令无法使用:

bash-2.03# ls
Bus Error
ls: Cannot read /usr/lib/ld.so.1
Killed
# dmesg
dmesg: Cannot read /usr/lib/ld.so.1
Killed


专家解答

不过还好,这时没有将当前的session断开,否则就只有通过光盘恢复了。下面是恢复命令:

/usr/sbin/static/cp /etc/lib/ld.so.1 /usr/lib/

使用/usr/sbin/static/cp静态命令将/etc/lib目录下的ld.so.1备份文件拷贝到ld.so.1目录下即可。

 

上面的情况是用户现有session没有断开的情况下的恢复情况,如果系统当前session断开后,用户是无法再登录系统的,这时只能重启系统(而且运行reboot命令也会提示错误,只能通过按钮重启),通过光盘启动的方法恢复了:

恢复的方法,用光盘或者其他方式启动安装界面,在界面上直接启动一个终端程序。

1. 当前的usr/lib目录下是光盘中mount的目录。可以做为恢复系统中损坏的ld.so.1文件用。

2. 接下来要做的是找到原来系统中usr/lib目录,一般这个设备是在/dev/dsk下c1t*的设备文件,一般不会是c1t0d0s0的。如果以前有各个目录的设备名记录可以直接mount,不然只有一个一个来了。有可能在mount的时候会提示需要fsck,fsck命令是:fsck -F ufs /dev/rdsk/c1t0d0s0(设备名称,根据实际情况来改)

mount命令:mount /dev/rdsk/c1t0d0s0 /mnt   (设备名称也是要一个一个改的哦)

mount成功后需要到mnt目录下查看,是不是有lib目录,因为我们找的就是这个。

3. 找到这个设备后,就先ls -l 看一下,是不是没有运行权,没有当然加一下喽。方法:chmod +x  ld.so.1  

4. 这里要做的是先umount后再重新启动机器。

Umount命令: umount /mnt 

Fsck也可以用在发生系统不能启动的情况下,可以一个一个修复设备,一般的小问题都可以解决。


「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
近期活动
全部
相关课程
全部