今天在工作的时候需要对比两個两个不同的方式编译出的本地库的差异,这个本地库存放的位置是/usr/local/lib于是我将lib改名为lib_bak,然后手动重新编译一个库查看其差异性当时由於脑子短路,忘记lib里面还有很多系统执行的动态库改了名字导致原本的很多命令都不能正常使用,基本上算是所有的命令都不能用了會报一个缺少.so的动态连接库文件,其实这个时候,你的ssh以及正常的root登录都已经不能用了,所以这个时候千万不能重启如果此时你还沒有重启,赶快将修改过的文件改回原来的文件如果你和我一样,重启了而且遇到了root用户登录不进去的情况,那么就要按照如下的步驟来操作了
- freebsd在加载bios的时候,会弹出选择多用户模式还是单用户模式(single-user mode)每次我们正常登录是默认按照多用户模式登录,此刻我们选择單用户模式登录好像是选择2,具体的提示页面上会显示多用户模式和单用户模式的区别就是,多用户模式可以登录读写全部的文件系統而单用户模式只能对根目录下的文件进行操作,并且只能进行读操作此时系统只有root用户。
- 当我们登录进入的时候命令是以#开头的,此时发现在这里基本的一些命令都可以正常使用并且可以查看根目录下的全部文件,此时我们只有读权限没有写权限,对于我现在嘚问题来说需要修改lib_bak为lib,所以要赋予写权限
使用mount可以赋予写权限,这个时候就可以修改需要的文件然后在重启就可以了。
- 在执行第②步操作的时候可能会报一个错大概意思是需要我们先修复一下文件系统,然后才可以赋予写权限
我只是在freebsd上遇到了这种问题并尝试著解决,在centos或者ubuntu上没有试过不过应该有同样的修复方式。