首页 > 系统相关 >linux目录误删文件 /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

linux目录误删文件 /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

时间:2024-02-03 09:46:23浏览次数:27  
标签:文件 ld x86 删除 命令 usr linux 链接

  1. 背景
    接同事求助一台生产主机误删了文件导致几乎所有命令都无法使用,应用无法访问。

  2. 误删命令
    rm -f /*

  3. 现象
    除了cd命令可用,几乎所有的命令都报如下错误:
    ls
    bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

  4. 问题分析
    这个命令会删除根目录下面的所有文件,庆幸的是他的命令中没有r参数,这样目录其实都还存在,删除的只是普通文件和软链接文件,此服务器的操作系统是CentOS7.6,找一台同配置的主机对比看删除了哪些文件,主要删除了下面4个软链接文件:
    bin -> usr/bin
    lib -> usr/lib
    lib64 -> usr/lib64
    sbin -> usr/sbin

  5. 解决办法
    既然只是删除了软链接,那么重新创建不就好了,其实不然,当使用ln -s创建时同样会报如上的错误,原因是命令会加载被删除软链接的SO文件,这不就进入死循环了嘛,网上主要的建议是进入救援模式恢复文件,但是这台机器是公有云主机,这种处理方式不是很方便,无赖继续查找是否有其它解决办法,毕竟文件都是还存在的只是软链接被删了,现在的问题点是ln需要加载动态库,首先想到的是找到配置文件修改配置跳过动态库,发现vi命令都不能使用,所有这个办法也就行不通。查找资料发现了sln命令,使用此命令可以创建到源文件的符号链接目标文件,它是静态链接的,无需动态链接。
    /usr/sbin/sln /usr/lib64 /lib64
    ln -s /usr/bin /bin
    ln -s /usr/lib /lib
    ln -s /usr/sbin /sbin
    至此问题解决。

  6. 建议
    生产环境的维护必须指定专人运维,操作必须规范,按文档严格执行,尽量不要使用rm命令,可以使用mv命令把需要删除的文件挪到/tmp下,再定期清理/tmp目录的数据。

标签:文件,ld,x86,删除,命令,usr,linux,链接
From: https://www.cnblogs.com/wcxia1985/p/18004358

相关文章

  • linux系统mysql卸载
    一、首先查看mysql的启动情况,如果显示在启动,则执行命令停止运行我这里本来就是已经停止运行的状态就不在启动了systemctlstatusmysqld执行命令停止mysql运行:systemctlstopmysqld二、查看mysql安装目录并删除包rpm-qa|grepmysql1、删除各个包,使用下述命令yumremove......
  • XmlDocument 解决 Clone、CloneNode、ImportNode 等节点克隆后的标签自闭合问题
    前言:这两天在对Taurus.Mvc 做html 加载性能优化时,发现存在这个问题。具体优化的是CYQ.Data 组件的XHtmlAction 相关类。问题过程:之前XmlDocument 调用 LoadXml(xml)之后,缓存对象,再次使用时,都是重新LoadXml:XmlDocumentnewDoc=newXmlDocument();......
  • mac 下 Can't attach to the process. Could be caused by an incorrect pid or lack
    问题报错如下ERROR:attach:task_for_pid(4060)failed:'(os/kern)failure'(5)Errorattachingtoprocess:Can'tattachtotheprocess.Couldbecausedbyanincorrectpidorlackofprivileges.sun.jvm.hotspot.debugger.DebuggerException:Can&#......
  • Windows远程连接Linux桌面
    Windows远程连接Linux桌面本文环境是基于Ubuntu22.0.4xrdpXrdp是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统。通过RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样。安装xrdpsudoaptinstallxrdp查看安装情况,因安......
  • Linux基础47 Ansible之ad-hoc, 命令模块(command, shell, script), 软件管理模块(yum,
    Ansible之ad-hoc一、什么是ad-hoc1.什么是ad-hocad-hoc简而言之就是“临时命令”,执行完即结束,并不会保存2.ad-hoc使用场景可以用作查看远程机器的进程,或者磁盘,或者拷贝文件3.ad-hoc命令使用[root@m01~]#ansibleweb01-mshell-a'free-m'web01|CHANGED|rc=......
  • fatal: couldn't find remote ref master 问题解决!
    这个错误信息通常出现在使用Git命令尝试从远程仓库克隆、拉取(pull)或推送(push)时,指定的分支(在这个案例中是master)在远程仓库中不存在。这种情况可能由以下几个原因导致:1.分支名称错误远程仓库中不存在名为master的分支:随着Git和GitHub的更新,master分支被重新命名为main......
  • Linux运维笔记[14]-搭建内网docker镜像服务
    摘要使用docker-registry搭建内网镜像服务,平替DockerHub.原理简介docker-registry简介[https://juejin.cn/post/7214037206863495205]官方提供了DockerHub网站来作为一个公开的集中仓库,然而,本地访问DockerHub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内......
  • HelloWorld详解
    HelloWorld新建文件夹,存放代码新建一个Java文件文件后缀名为.java(Hello.java)系统可能没有显示文件名后缀,需手动打开编写代码publicclassHello{publicstaticviodmain(String[]args){System.out.print("Hello,World!");}}编译javacja......
  • 学习unigui【19】unidbgrid的Group By This Field汉化
    上面已经将groupbythisfield汉化。由于版本的不断更新,不可避免有汉化遗漏。那么说到如何汉化问题。 根据ExtJSVersion查找你电脑响应目录文件D:\ProgramFiles(x86)\FMSoft\Framework\uniGUI\ext-7.5.1\build\classic\locale\locale-zh_CN.js(主要是该文件)D:\ProgramFi......
  • Linux——信号处理函数sigaction()
    sigaction()作用:设置某信号的信号处理函数1.sigaction()函数原型#include<signal.h>intsigaction( intsigno, conststructsigaction*restrictact, structsigaction*restrictoldact );12345signo:指定的信号,可以为除SIGKILL及SIGSTOP外的任何信号act:信号处理方式......