Linux 误删文件恢复命令及方法

article/2025/9/17 3:47:48

你知道的越多,不知道的就越多,业余的像一棵小草!

你来,我们一起精进!你不来,我和你的竞争对手一起精进!

编辑:业余草

http://r6d.cn/JzNf

推荐:https://www.xttblog.com/?p=5120

前言


无论在哪个系统中,删除文件都是必须谨慎的操作。

因为如果不小心删除了重要文件,就会导致个人或公司出现重大的损失。

类似于windows系统误删了文件,可以使用一些软件进行恢复操作。Linux也是有几款软件可以做到误删恢复的。

注意事项:虽然有软件可以对误删的数据进行恢复,但是完全恢复数据的概率并不是百分百的。

因此,使用rm命令删除文件的时候,一定要小心;重要的数据一定要有备份;并且恢复删除的数据前,删除文件的目录内不能往进存放新东西,否则覆盖掉的信息无法找回。

下面介绍的就是对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


http://chatgpt.dhexx.cn/article/FPDW5ePy.shtml

相关文章

win10误删的注册表能还原吗_win10自带注册表恢复方法 win10注册表误删如何修复...

系统注册表,是计算机中一个很重要的部件,没有人可以保证自己能记住所有的注册表项,如果不小心让注册表被修改或者其他原因让注册表失效的时候,我们就可以通过cmd对注册表进行恢复,下面小编就为大家介绍win10自带注册表…

成功恢复 Linux 系统中已删除的文件

点击关注公众号,回复“1024”获取2TB学习资源! 当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件。不过,幸运的是文件是可以通过一些方法恢复的。当用户删除了一个文…

windows注册表操作——备份,还原注册表,清除注册表卸载残留信息

注册表包含在操作过程中Windows不断引用的信息,例如每个用户的配置文件、计算机上安装的应用程序以及每个用户可以创建的文档类型、文件夹和应用程序图标的 属性表 设置、系统上存在的硬件以及所使用的端口。 序言 注册表是Microsoft Windows中的一个重要的数据库…

Linux下达梦误删除文件后恢复步骤

目录 数据文件恢复1.测试环境准备2.删除数据文件3.恢复步骤4.使用限制5.官方资料 redo日志恢复1. 删除redo日志2.启动数据库3.查看建库参数4.初始化新实例5.拷贝redo文件6.修改db_magic值7.启动数据库8.错误示范9.迁移数据 官方社区 数据文件恢复 1.测试环境准备 1.1准备好测…

windows注册表恢复方法

如果可以进入安全模式,您可以在安全模式内调用命令提示符输入命令修复一下系统组件。 在管理员命令提示符下键入以下命令: Dism /Online /Cleanup-Image /ScanHealth 这条命令将扫描全部系统文件并和官方系统文件对比,扫描计算机中的不一致…

linux环境下恢复rm误删的文件

文章目录 前言rm之后还有救吗使用foremost找回文件使用extundelete找回文件 预防误删引发的事故总结 前言 一提到在 linux 环境下删除文件,那绝对离不开 sudo rm -rf /* 这个梗,每次看到这个命令,我都想到一幅恶搞的图片: 这个『…

如何恢复 Linux 系统下被删除的文件 ?

丢失数据是任何用户都可能经历的最令人不安和痛苦的经历之一。一旦珍贵数据被删除或丢失,就再也找不不回来通常会引发焦虑,让用户感到无助。值得庆幸的是,有几个工具可以用来恢复 Linux 机器上被删除的文件。我们尝试了一些数据恢复工具&…

入门版Linux上恢复误删除的文件

一、被删除的文件正在被进程使用: 当某个文件正在被某个程序使用时,linux针对该文件有回两个计数器: i_count计数器:该文件可能被多个进程使用,每一个进程使用该文件,i_count数值都会加1。反之&#xff0…

不小心误删注册表exe,所有exe程序无法运行

首先我陈述下误删的原因吧,与其说是误删不如说就是自己有 意删除的,电脑Windows7,我在安装CASS10.1的时候,由于一个补丁程序始终不能运行,弹框显示说CASS10.1.6补丁.exe不是有效的Win32应用程序。然而我去寻找解决办法…

如何恢复Linux中的误删文件

写在前面的话 在开始教程之前我有必要提醒大家,使用窗口管理器(GUI)删除文件和使用命令行工具(CLI)删除文件这两种方法之间是有区别的。 当我们使用窗口管理器来删除文件时,我们仅仅只是将文件从某个目录移…

Win11注册表编辑器误删了如何恢复?

​ 注册表编辑器是一个用来更改系统注册表设置的高级工具,与资源管理器的界面很类似。近期有用户将注册表编辑器误删了,那么应该如何恢复呢,下面小编就给大家分享一下详细的恢复方法。遇到同样问题的用户注意了。 更多重装系统教程尽在小白…

注册表中exe被删除后恢复

恢复注册表 如果我们不小心将注册表中的exe删除后,这个时候不管打开什么软件都需我们自己进行指定才能打开使用,这样是及其麻烦的,而且在删除掉.exe之后,原来能在“运行”中搜索的执行文件也都无法执行了,比如果原来我…

LINUX使用rm误删文件后恢复

最近使用centos执行了rm -rf删除了一个文件,后面想恢复。 先关闭selinux vim /etc/selinux/config SELINUXdisabled reboot 重启生效1、使用debugfs命令恢复(此命令为系统自带) 1-1、查看文件系统类型,以下2个命令都可查看&…

电脑注册表误删恢复办法:系统文件和设置还原法

一.起因:为了修改电脑字体一不小心把Control Panel整个注册表给删除了,导致电脑界面变的锯齿,界面变形等各种问题,网上找了许多方法都没成功或者难度较大,最终使用系统恢复还原点将系统变成几个小时前的各种设置&#…

如何每天自动发送心灵鸡汤、正能量语录

为什么要发送心灵鸡汤、正能量语录 许多团队管理者或者行政为了需要鼓励团队,让员工有一个积极饱满的工作状态,需要每天在企业群内发送心灵鸡汤、正能量语录等信息,按照大多数人的办法,是在搜索引擎找到对应的心灵鸡汤或者正能量…

励志心灵鸡汤经典语录,满满都是道理!

1、【人生的幸运是靠努力而来的,世上没有不劳而获,天上掉馅饼的事,所谓种瓜得瓜,种豆得豆。别人可以替你开车,但不能替你走路;可以替你做事,但不能替你感受。人生的路要靠自己去走,成…

隐马尔可夫模型前向算法推导

已知条件有: 状态集合:,观测集合: 已观测到的观测序列 从t时刻的状态到t1时刻的状态的状态转移概率: 从t时刻的状态生成t时刻的观测的概率: 状态初始概率向量 给定隐马尔可夫模型 ,定义到…

隐马尔可夫模型的三个基本问题

目录 写在前面的话隐马尔可夫模型(HMM)隐马尔可夫模型的三个基本问题 写在前面的话 隐马尔可夫模型(HMM)的三个基本问题,我查阅相关资料有一些自己的理解,如有错误请多指正~ 参考资料: 如何用…

隐马尔可夫模型HMM (机器学习模型)

隐马尔科夫模型,Hidden Markov Model,简称HMM,是一个比较经典的机器学习模型。 它在语言识别,自然语言处理,模式识别等领域得到广泛的应用。当然,随着目前深度学习的崛起,尤其是RNN, LSTM等神经…

NILMTK——因子隐马尔可夫之隐马尔可夫

因子隐马尔可夫(FHMM)由Ghahramani在1997年提出,是一种多链隐马尔可夫模型,适合动态过程时间序列的建模,并具有强大的时序模型的分类能力,特别适合非平稳、再现性差的序列的分析。 1. 马尔可夫链 随机过程的研究对象是随时间演变…