千家信息网

Linux中怎么恢复误删文件

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这期内容当中小编将会给大家带来有关Linux中怎么恢复误删文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、lsof原理:这个命令实际上并不能直接用来恢复文件,
千家信息网最后更新 2026年11月02日Linux中怎么恢复误删文件

这期内容当中小编将会给大家带来有关Linux中怎么恢复误删文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1、lsof

原理:这个命令实际上并不能直接用来恢复文件,不过它可以列出被各种进程打开的文件信息。

配合其他命令,从/proc目录下的信息中恢复"文件已删除,但进程仍保持打开该文件的状态"的文件。

/proc目录是挂载的是在内存中所映射的一块区域,当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。

因此,当我们对文件进行读取或写入时(即有进程正使用文件时),哪怕硬盘中的该文件已删除,还可以从内存中的信息恢复文件。

注意:

  • 必须以 root 用户的权限运行, 因为lsof 需要访问核心内存和各种文件。

  • 只能恢复"文件已删除,但进程仍保持打开该文件的状态"的文件。

  • 如果误删了目录,目录中的其他文件未被进程打开,没有进行使用的文件将无法使用此方法恢复。

lsof输出信息的意义:

COMMAND       #进程的PID(进程标识符)  USER          #进程所有者  FD            #用来识别该文件(文件描述符)  DEVICE        #指定磁盘的名称  SIZE          #文件的大小  NODE          #索引节点(文件在磁盘上的标识)  NAME          #打开文件的确切名称

最常用参数:

-c       #显示某进程现在打开的文件  -p       #显示哪些文件被某pid进程打开  -g       #显示归属某gid的进程情况  -d       #显示目录下被进程开启的文件  -d       #显示使用fd为4的进程  -i:80    #显示打开80端口的进程

恢复文件操作

环境:在/mnt下有一些文件,其中一个文件train.less正在被查看,然后另一个终端将其删除

【1】lsof查看

查看正在使用删除文件的进程号

lsof /mnt

【2】恢复

切换到/proc下,删除文件对应的进程的pid下的文件描述符中的目录中;将对应的内容重定向或cp到其他文件中。

重点关注:PID 与 FD

cd /proc/31284/fd/  cat 4 > /mnt/ferris_train.less

2、extundelete

原理:使用存储在分区日志中的信息,尝试恢复已从ext3或ext4的分区中删除的文件

优点:相比于ext3grep只能恢复ext3文件系统的文件,其适用范围更广,恢复速度更快

extundelete官方地址(官方文档):http://extundelete.sourceforge.net

extundelete下载地址:http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 (最新版本的extundelete是0.2.4,于2013年1月发布)

注意:

  • 在数据删除之后,要卸载被删除数据所在的磁盘或是分区

  • 如果是系统根分区遭到误删除,就要进入单用户模式,将根分区以只读的方式挂载,尽可能避免数据被覆盖

  • 数据被覆盖后无法找回

  • 恢复仍有一定的机率失败,平时应对重要数据作备份,小心使用rm

安装

1、依赖安装

#centos安装操作  yum install e2fsprogs-devel   e2fsprogs* gcc*  #ubuntu安装操作  apt-get install build-essential  e2fslibs-dev  e2fslibs-dev

2、编译安装

wget http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2  tar xf  extundelete-0.2.4.tar.bz2  cd  extundelete-0.2.4  ./configure  make  make install

cd /root/extundelete-0.2.4/src

extundelete -v

  • 执行make命令会在src目录下生成extundelete可执行文件,可在此直接执行恢复命令。

  • 执行make install会将程序安装在/usr/local/bin/下

恢复文件操作

执行extundelete命令的当前目录必须是可写的。

1、查看要恢复文件的分区的文件系统

df  -Th

2、对要恢复文件的分区解除挂载

umount /mnt

3、查看可以恢复的数据

指定误删文件的分区进行查找,最后一列标记为Deleted的文件,即为删除了的文件。

extundelete /dev/vdb1 --inode 2 (根分区的inode值是2)

4、恢复单个目录

指定要恢复的目录名,如果是空目录,则不会恢复。

extundelete /dev/vdb1 --restore-directory  ferris

当执行恢复文件的命令后,会在执行命令的当前的目录下生成RECOVERED_FILES目录,恢复的文件都会放入此目录中。如未生成目录,即为失败。

5、恢复单个文件

指定要恢复的文件名,如果几k大小的小文件,有很大几率恢复失败。

extundelete /dev/vdb1 --restore-file openssh-7.7p1.tar.gz

6、恢复全部删除的文件

无需指定文件名或目录名,恢复全部删除的数据。

extundelete /dev/vdb1 --restore-all

上述就是小编为大家分享的Linux中怎么恢复误删文件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

文件 进程 目录 命令 数据 信息 内存 内容 磁盘 系统 生成 单个 原理 名称 地址 大小 官方 实际 实际上 文件名 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 互联网科技公司简介 鸠鸠互联网科技 互联网科技公司税收优惠 平安科技 互联网 狮子座互联网科技有限公司 互联网科技ppt模板 互联网科技中介 互联网企业和科技型企业 上海宁丞科技互联网 银川新华互联网科技学校联系电话 保险科技服务互联网营销体系 元气玛特互联网科技公司是外包吗 中天科技中国工业互联网 互联网领先科技宣传片 2021世界互联网领先科技成果发布 互联网科技手机排行榜 广西科技产业互联网是什么 中国主要互联网科技公司 广州全民伙伴互联网科技有限公司 手磨咖啡 喔噻互联网科技 互联网与未来科技 互联网 视角下的科技创新 火传媒上海互联网科技 深圳市运趣互联网科技有限公司 承德科技产业互联网发展 注册互联网科技公司经营范围大全 扫呗互联网科技有限公司 科技美学互联网 艺术
0