rm误删文件恢复

news2024/11/23 4:31:48

rm误删文件恢复

  • 问题描述
  • 安装extundelete
    • yum安装extundelete
    • 编译安装extundelete
  • 常用参数
    • 动作(action):
  • 尝试数据恢复前置条件
    • 卸载磁盘分区
    • 查看被删除数据信息
  • 恢复文件
    • 恢复指定inode号文件
    • 恢复指定文件名
    • 恢复指定目录
    • 恢复所有可恢复文件
    • 恢复指定时间的文件
      • 恢复指定时间戳之前删除的文件
      • 恢复指定时间戳之后删除的文件
    • 查看恢复出的文件

问题描述

在Linux实例中,使用rm命令误删除文件且没有对文件所在磁盘进行任何写操作,可以通过以下方法进行数据恢复。


安装extundelete

extundelete官网:http://extundelete.sourceforge.net/

extundelete工具可以从 ext3ext4分区恢复已删除的文件
extundelete使用存储在分区日志中的信息尝试恢复已从分区中删除的文件,无法保证任何特定被删除文件都能够被成功恢复。
extundelete工具暂不支持xfs文件系统中恢复误删文件,可以尝试使用TestDiskxfs中恢复误删文件。


yum安装extundelete

# yum安装extundelete
yum install -y extundelete

# 查看extundelete版本
extundelete -v

编译安装extundelete

# 安装依赖包
yum -y install e2fsprogs-libs e2fsprogs e2fsprogs-devel

# 下载压缩安装包
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

# 备用下载地址
wget https://raw.githubusercontent.com/omaidb/qiaofei_notes/main/shell_code/extundelete/extundelete-0.2.4.tar.bz2

# 解压
tar -jxvf extundelete-0.2.4.tar.bz2

cd extundelete-0.2.4

# 构建编译选项
./configure

# 编译安装
make && make install

# 检查是否安装成功
extundelete -v

常用参数

其中,参数(options)有:

参数解释
–version, -[vV]显示软件版本号
–help显示软件帮助信息
–superblock显示超级块信息
–journal显示日志信息
–after dtime时间参数,表示在某段时间之后被删的文件或目录
–before dtime时间参数,表示在某段时间之前被删的文件或目录

动作(action):

参数解释
–inode ino显示节点“ino”的信息
–block blk显示数据块“blk”的信息
–restore-inode ino[,ino,…]恢复命令参数,表示恢复节点“ino”的文件,恢复的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名
–restore-file ‘path’恢复命令参数,表示将恢复指定路径的文件,并把恢复的文件放在当前目录下的RECOVERED_FILES目录中
–restore-files ‘path’恢复命令参数,表示将恢复在路径中已列出的所有文件
–restore-all恢复命令参数,表示将尝试恢复所有目录和文件
-j journal表示从已经命名的文件中读取扩展日志
-b blocknumber表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件
-B blocksize通过指定数据块大小来打开文件系统,一般用于查看已经知道大小的文件

尝试数据恢复前置条件

提示:

  • 安装extundelete工具,切勿extundelete工具安装到误删文件所在磁盘。建议安装到系统盘,或者安装到一块新的数据盘
  • 由于使用该工具后续恢复删除文件的操作需要执行umount命令取消分区挂载操作,或以只读方式挂载分区,系统盘分区不能执行umount命令。
  • 系统盘中的误删文件数据恢复,需要使用liveCD启动后以只读方式挂载要恢复的系统盘
# 检查是否安装有extundelete工具
rpm -qa extundelete

卸载磁盘分区

卸载被删文件所在磁盘分区。

# 查看当前系统磁盘分区
df -h

# 卸载磁盘
umount 挂载点

查看被删除数据信息

此方法不实用,文件都被删了,上哪去看文件的inode编号
定位被误删的文件需要一步步查找,可以先从根分区 inode 查找

https://blog.51cto.com/bosszhang/2069542

# 先要查询好文件的inode编号
## 此处假定文件的inode为2
ls -i file

# 查看sdb1分区根目录下面可被恢复的文件及文件夹
# 查询可恢复的数据,带有Deleted标记的表示已经删除的文件
## --inode 2 显示inode号为2的文件的信息
# extundelete 磁盘设备路径 --inode 2
extundelete /dev/sdb1 --inode 2

系统显示类似如下:
图中Deleted状态的既是被删除的数据
恢复被删除数据RECOVERED_FILES目录下,该RECOVERED_FILES目录默认创建在当前目录下。


恢复文件


恢复指定inode号文件

# 恢复对应inode的文件
extundelete 磁盘镜像文件 --restore-inode 21

恢复指定文件名

# 指定文件名test.txt尝试恢复
extundelete /dev/sdb1 --restore-file test.txt

恢复指定目录

空目录不会被恢复

# 恢复指定目录
extundelete /dev/sdb1 --restore-directory /dir1

恢复所有可恢复文件

# 恢复该磁盘下的所有可恢复文件
extundelete 磁盘设备路径 --restore-all

系统显示类似如下:


恢复指定时间的文件

Unix时间戳转换:https://tool.chinaz.com/tools/unixtime.aspx


恢复指定时间戳之前删除的文件

# 恢复指定时间戳之前删除的文件
## --before UNIX时间戳,从1970年1月1日 00:00:00 UTC 起的秒数。
extundelete --before 1451288304 --restore-all /dev/sdb1

恢复指定时间戳之后删除的文件

# 恢复指定时间戳之后删除的文件
## --after UNIX时间戳
extundelete --after 1451288304 --restore-all /dev/sdb1

查看恢复出的文件

# 查看恢复出的文件
ls RECOVERED_FILES/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像绘制-线段、矩形、圆形、椭圆等

在实际运用中,我们会在图片上添加一些图形,比如目标检测时在物体周围画个矩形框,人脸识别中将人脸的关键点用点(圆形)标出来。 OpenCV常用的形状绘制方法: 线段的绘制 线段的绘制是使用cv2.line(img, pt…

【数据结构】二叉树的销毁 二叉树系列所有源代码(终章)

目录 一,二叉树的销毁 二,二叉树系列所有源代码 BTee.h BTee.c Queue.h Queue.c 一,二叉树的销毁 二叉树建好了,利用完了,也该把申请的动态内存空间给释放了,那要如何释放呢? 我们还是以…

更适合程序员体质的PPT制作工具——Slidev

Slidev简介 Slidev是什么 Slidev是一款基于Vue.js的现代化幻灯片制作工具,它可以帮助用户快速、高效地制作出美观、专业的幻灯片。 目前市面上有很多功能丰富的、通用的、所见即所得的幻灯片制作工具,例如 微软 PowerPoint 或 苹果 Keynote. 它们在制…

非专业投资者进行现货白银投资,如何开始?

随着现货白银市场的不断发展,现货白银走势在先前一段时间内不断上涨,处于上升趋势,很多投资者顺势做多从中获得利润,近期,现货白银投资不断下跌转为下降趋势,也有很多投资者进行顺势投资。但是对于现货白银…

1、Elasticsearch 8.X 概述与安装

第1章 Elasticsearch 8.X 概述 1.1 Elasticsearch 8.X 距 2019 年 Elasticsearch 上一大版本 7.0 发布至今已经过去了 3 年。2022 年 2 月 11 日,Elasticsearch 发布了全新的 8.0 正式版本,这着实给了我们不 小的惊喜!新版本中通过改进 Elas…

“优化”城市出行体验——山海鲸智慧交通解决方案

随着城市化进程的不断加速,城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。 山海鲸可视化打造城市智慧交通系列解决方案模板,解决方案以“数字孪生技术”为核心,通过数据分析、人工智能和物联…

[XR-FRAME] 1.O4 文档导览 || XR-FRAME / 让场景更丰富,环境数据

[XR-FRAME] 1.O4 文档导览 || XR-FRAME / 让场景更丰富&#xff0c;环境数据 文档导读&#xff0c;知识点整理。 开始 | 微信开放文档 新引入 标签 <xr-env env-data"xr-frame-team-workspace-day" /><xr-env> 描述&#xff1a;定义环境的标签。…

如何去构建高效软件:耦合、内聚与结构化策略(软件设计师笔记)

&#x1f600;前言 随着软件开发变得越来越复杂&#xff0c;如何有效、有序地构建和维护这些复杂系统成为了每一个开发者和设计师所面临的挑战。对于这一挑战&#xff0c;结构化开发方法为我们提供了答案。这一方法不仅帮助我们理解如何将大型系统分解为小模块&#xff0c;还为…

浅谈智能型电动机保护器在孟加拉水泥厂的应用

摘要&#xff1a;电动机设备是水泥企业中应用较广泛的动力装置&#xff0c;而水泥生产企业属于能耗高、污染大又需要设备连续不间断工作的行业&#xff0c;电动机作为水泥行业设备的动力来源&#xff0c;其安全、稳定可靠的运转对水泥行业的平稳生产起着至关重要的作用。 Abst…

Linux驱动开发笔记

疑问 file_operation中每个操作函数的形参中inode的作用 设备树中compatible属性中厂商和型号如何填写 file_operation定义了Linux内核驱动的所有的操作函数&#xff0c;每个操作函数与一个系统调用对应&#xff0c;对于字符设备来说&#xff0c;常用的函数有&#xff1a;lls…

【Vue.js】使用Element中的Mock.js搭建首页导航左侧菜单---【超高级教学】

一&#xff0c;Mock.js 1.1 认识Mock.js Mock.js是一个用于前端开发中生成随机数据、模拟接口响应的 JavaScript 库。模拟数据的生成器&#xff0c;用来帮助前端调试开发、进行前后端的原型分离以及用来提高自动化测试效率 总结来说&#xff0c;Element中的Mock.js是一个用于…

数据安全态势管理:什么是事实,什么是虚构?

考虑到组织存储大量数据的日益复杂的云环境&#xff0c;数据安全态势管理 ( DSPM )的兴起并不令人意外。使组织能够全面了解云数据资产和敏感数据的安全状况的流程对于当今的安全团队来说非常有价值。 尽管 DSPM 的重要性日益凸显&#xff0c;但人们对于它能为企业做什么和不能…

Qt中额外复制新类到工程中出现无法解析的外部符号

无法解析的外部符号 “public: virtual struct QMetaObject const * __cdecl FormCloudFilter::metaObject(v 错误原因&#xff1a;在C项目中&#xff0c;新添加了类之后&#xff0c;编译出现错误&#xff0c;原因是我们新添加的类未被Qt编译成moc文件。 解决方法&#xff1a; …

SpringCloud 学习(三)Ribbon 和 Feign

4. Netflix.Ribbon 4.1 简介 (1) 概念 Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡工具。 (2) 负载均衡&#xff08;LB&#xff1a;LoadBalance&#xff09;和集群架构 应用集群&#xff1a;将同一应用部署到多台机器上&#xff0c;组成处理集群&…

文档升级 | iTOP-RK3568开发板ADB工具的安装和使用

iTOP -RK3568开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 《iTOP-3568开发板ADB使用手册》进行了文档升级&#xff0c;对ADB工具的安装和使用进行了更全面的步骤介绍。 第1章 安装adb工…

git revert 撤销之前的提交

git revert 用来撤销之前的提交&#xff0c;它会生成一个新的 commit id 。 输入 git revert --help 可以看到帮忙信息。 git revert commitID 不编辑新的 commit 说明 git log 找到需要撤销的 commitID &#xff0c; 然后执行 git revert commitID &#xff0c;会提示如下…

DataGrip初始化设置

DataGrip初始化设置 自定义设置 具体配置项 Customize —> Allsettins… 外观 退出IDE之前无需确认 启动IDE自动打开之前的项目 Appearance & Behavior —> System Settings —> Confirm before exiting the IDE Appearance & Behavior —> System Settin…

写一个Chrome浏览器插件(manifest v3)

目录 1、创建manifest.json 文件 2、开始写popup页面以及对应的逻辑。 2.1 popup 页面 2.2 后台运行 background.js 2.3 content.js 2.4 popup页面的js文件 3、chrome 浏览器加载本项目 4、参考文档 1、创建manifest.json 文件 首先需要在项目的根目录下创建manifes…

深入剖析Redis系列- Redis数据结构之哈希

1.11.5哈希类型(hash) Redis的hash 是一个string类型的key和value的映射表&#xff0c;这里的value是一系列的键值对&#xff0c;hash特别适合用于存储对象。 哈希类型的数据操作总的思想是通过key和field操作value&#xff0c;key是数据标识&#xff0c;field是域&#xff0c;…

基于SSM+Vue的舞蹈网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…