2019-12-16

lib64文件误删除的解决方法

lib64文件简介

根目录下的所程序的共享库目录。
此目录下包含系统引导和在根用户执行命令时候所必需用到的共享库。做个不太好但是比较形象的比喻,点类似于Windows上面的system64目录。理说,这里存放的文件应该是/bin目录下程序所需要的库文件的存放地,也不排除一些例外的情况。类似的目录还/usr/lib64,/usr/local/lib64等等。

lib64文件被删除后出现的报错

[root@log01 lib64]# ls -l
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
[root@log01 lib64]#

意思就是找不到库文件和共享文件. 如果报错是这样基本都lib类错误, 使用以下方法都是可以修复的,但是修复命令不尽相同.

解决方法总结

以下修复方法按照推荐顺序及逆行排序, 越靠后的方法限制越少, 操作越繁琐; 最有后一种方法几乎包治百病.

  1. 以root身份登陆系统的专属修复操作
  2. 预装Busybox程序的专属修复操作
  3. 使用对应系统版本的装机U盘进入recovery模式进行操作(不推荐)
  4. 使用Ubuntu装机试用进行文件管理操作(GUI强烈推荐)
  5. 使用Ubuntu装机试用版+对应版本的centos完整系统(移动硬盘上安装)包治百病.
    下面就为大家详细介绍怎么操作.

Root账户的专属修复操作

  • 指定动态库路径
    LD_LIBRARY_PATH=/usr/lib64 /usr/lib64/ld-linux-x86-64.so.2 /bin/ln -s /usr/lib64/ /lib64
  • 原理解释
    Linux在执行文件的时候必然要调用lib64里面的库函数, 默认情况下系统自动到 /lib64文件夹下去寻找.但是由于此时lib64已经被误删除了;使用LD_LIBRARY_PATH可以指定系统到/usr/bin目录下进行寻找. 后面跟的命令是同样的意思.
    ln -s 命令是建立符号链接, 类似于windows的快捷方式, 原先系统就是建立的这样的符号链接.当然选择cp命令也可以, mv命令不推荐因为下次再犯错就没有修复的机会了.

Busybox的专属修复操作

预装了busybox的可以直接busybox cp /usr/lib64 /lib64
这条命令来自 http://www.voidcn.com/article/p-qoddzmax-bs.html 具体用法我也不清楚, 各位可以自行谷歌参悟

Recovery修复模式(不推荐)

  • step1: 寻找一的>8G的U盘使用 http://rufus.ie/ rufus软件制作对应系统版本的安装光盘, centos镜像网址 http://mirror.centos.org/.
    Tips: 当镜像不能用时换其他镜像, 记不住自己的系统版本就别看了, 直接看一下一个方法吧.
  • step2: 潜入服务器机房, 插上U盘, 重启服务器后按住F8, F9, F10, F11, F12中的某一个案件, 具体是哪个按键由主板决定. 进入引导源选择界面, 选择你的U盘
  • step3: 进入U盘后选择troubleshooting进入后进入recovery, 在出现的命令行里按照英文提示操作.
    Tips: 作者的服务器进入recovery模式后显示无法挂载系统盘, 找不到动态文件umount /mnt.sysimage.因此我并不觉得这方法好使

Ubuntu适用系统修复法(强烈推荐)

  • step1:寻找一的>8G的U盘使用 http://rufus.ie/ rufus软件制作对应系统版本的安装光盘, Ubuntu镜像网址 https://ubuntu.com/download.
    Tips: 当镜像不能用时换其他镜像, Ubuntu16.04朝上应该都可以, 作者用的是Ubuntu16.04, 保险起见推荐大家下载16.04.
  • step2: 潜入服务器机房, 插上U盘, 重启服务器后按住F8, F9, F10, F11, F12中的某一个案件, 具体是哪个按键由主板决定. 进入引导源选择界面, 选择你的U盘
  • step3: 进入U盘后选择try Ubuntu without install. 然后进入图形化的Ubuntu界面, 打开文件夹, 把每个磁盘都看, 找到你的系统磁盘, 在terminal里面进入这个目录, sudo ln -s ./usr/lib64/ ./lib64. 不放心的话会回去check 一下是不是lib64重出江湖了.重启之后系统会进入检错模式, 等他跑完就行了.

Tips: 默认情况下centos的系统盘大小是54G, 检错模式持续约30分钟.

屠龙术(仅供参考)

既然Ubuntu能够无损的打开centos的文件系统, 那么只要常备一个和实际使用的系统一样的备份系统(系统盘默认只有54G, 就算一天保存一次好像问题也不大的样子), 那么无论对系统做出了怎样的毁灭性的操作都是可以参照上述步骤成功恢复系统的.
简直就是保命利器.

疑惑

考虑到Ubuntu使用的文件系统是ext4, centos7以后使用的都是xfs. 所以想要在Ubuntu上按照常规的命令行使用lsblk,blkid,mount UUID='xxxxx'来挂载centos系统盘是不可能的.
但是现实却是GUI系统自动挂载成功了(无GUI的kali系统多次挂载均失败)目前还不知道原因.

你可能感兴趣的:(2019-12-16)