当前位置: 首页 > news >正文

rm误删文件恢复

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.bz2cd 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/

相关文章:

rm误删文件恢复

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

爬虫 — 多线程

目录 一、多任务概念二、实现多任务方式1、多进程 (Multiprocessing)2、多线程(Multithreading)3、协程(Coroutine) 三、多线程执行顺序四、多线程的方法1、join()2、setDaemon()3、threading.enumerate() …...

Cython 笔记 (Python/Jython)

目录 1. Cython 笔记 (Python)2. python 加速库 cython 简介2.1. Cython 是什么?2.2. 如何安装 Cython?2.3. 简单示例2.4. 性能比对2.5. 总结 3. PYTHON, CYTHON, JYTHON, IRONPYTHON 的区别 (注意: 此篇有误导,表述不一定正确,只提供一个方向)3.1. PY…...

[React] react-hooks如何使用

react-hooks思想和初衷,也是把组件,颗粒化,单元化,形成独立的渲染环境,减少渲染次数,优化性能。 文章目录 1.为什么要使用hooks2.如何使用hooks2.1 useState2.2 useEffect2.3 useLayoutEffect2.4 useRef2.5…...

多个pdf合并成一个文件,3个方法合并pdf

如何把多个pdf合并成一个文件?在我们日常的工作中,经常会遇到一些需要处理的文件,其中包括PDF文件。特别是当我们需要将多个PDF文件合并成一个PDF文件时,会面临一些困难。这样的情况下,我们的阅读能力会受到限制&#…...

代码随想录 动态规划Ⅸ

198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个…...

【数据结构】散列表(哈希表)的学习知识总结

目录 1、散列表 2、散列函数 2.1 定义 2.2 散列函数的构造 2.2.1 除留余数法 2.2.2 直接定址法 2.2.3 数字分析法 2.2.4 平方取中法 3、冲突(碰撞) 4、处理冲突的方法 4.1 拉链法(链接法) 4.2 开放定址法 5、C语言…...

2023智慧云打印小程序源码多店铺开源版 +前端

智慧自助云打印系统/智慧云打印小程序源码 前端 这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码...

利用亚马逊 云服务器 EC2 和S3免费套餐搭建私人网盘

网盘是一种在线存储服务,提供文件存储,访问,备份,贡献等功能,是我们日常中不可或缺的一种服务。很多互联网公司都为个人和企业提供免费的网盘服务。但这些免费服务都有一些限制,比如限制下载速度&#xff0…...

数据分析技能点-数据的种类

在日常生活中,数据无处不在。当你去超市购物时,你可能会注意到商品的价格、重量、口味等;当你在社交媒体上浏览时,你可能会注意到好友的点赞数、评论等。这些都是数据的一种形式,而了解这些数据的种类和特点有助于我们更好地理解和使用它们。 数据的基本分类 数据大致可…...

解读:ISO 14644-21:2023《洁净室及相关受控环境:悬浮粒子采样》发布指导粒子采样!

药品洁净实验室环境监测结果是否满足微生物检测需求,直接决定检测结果的有效性准确性,进行药品微生物检测,必须对实验环境进行日常和定期监测,其内容包括非生物活性的空气悬浮粒子数及有生物活性的微生物监测。 悬浮粒子监测是保证…...

Java --- MySQL8之索引优化与查询优化

目录 一、索引失效场景 1.1、全值匹配 1.2、最佳左前缀规则 1.3、主键插入顺序 1.4、计算、函数、类型转换(自动或手动)导致索引失效 1.5、类型转换导致索引失效 1.6、范围条件右边的列索引失效 1.7、不等于(! 或者<>)索引失效 1.8、is null可以使用索引&…...

澳大利亚新版《2023年消费品(36个月以下儿童玩具) 安全标准》发布 旨在降低危险小零件的伤害

2023年9月4日&#xff0c;澳大利亚政府发布了新的儿童玩具强制性安全标准《2023年消费品(36个月以下儿童玩具)安全标准》&#xff08;Consumer Goods (Toys for Children up to and including 36 Months of Age) Safety Standard 2023&#xff09;。该强制性标准旨在尽可能地降…...

表格内日期比较计算

需求&#xff1a;在表格中新增数据&#xff0c;计算开始日期中最早的和结束日期中最晚的&#xff0c;回显到下方。 <el-formref"formRef":model"ruleForm":rules"rules"style"margin-top: 20px;"label-position"top">…...

Linux内核启动流程-第二阶段start_kernel 函数

一. Linux内核启动 上一篇文章简单介绍了 Linux内核启动的第一阶段&#xff0c;即执行汇编流程。 本文简单了解一下&#xff0c;Linux内核启动的第二阶段&#xff1a;start_kernel函数&#xff0c;这是一个 C 函数。 本文续上一篇文章的学习&#xff0c;地址如下&#xff1a;…...

Disruptor:无锁队列设计的背后原理

简介 在高并发场景下&#xff0c;队列的速度和效率是关键。而Disruptor&#xff0c;一种高性能的并发队列&#xff0c;通过独特的设计&#xff0c;解决了传统队列在处理高并发时可能遇到的性能瓶颈。本文将深入分析Disruptor如何通过环形数组结构、元素位置定位以及无锁设计&a…...

网络编程-UDP协议(发送数据和接收数据)

需要了解TCP协议的&#xff0c;可以看往期文章 https://blog.csdn.net/weixin_43860634/article/details/133274701 TCP/IP参考模型 通过此图&#xff0c;可以了解UDP所在哪一层级中 代码案例 发送数据 package com.hidata.devops.paas.udp;import java.io.IOException; …...

AI绘画普及课【一】绘画入门

文章目录 一、AI 绘画入门1、Stable Diffusion VS. MidJourney2、Stable Diffusion 介绍3、Stable Diffusion 环境搭建4、文生图与图生图 一、AI 绘画入门 1、Stable Diffusion VS. MidJourney Midjourney 优点: 操作简单、出图绚丽多彩 缺点: 订阅付费充钱 内容有限制&a…...

Selenium和Requests搭配使用

Selenium和Requests搭配使用 前要1. CDP2. 通过requests控制浏览器2. 1 代码一2. 2 代码2 3. 通过selenium获取cookie, requests携带cookie请求 前要 之前有提过, 用selenium控制本地浏览器, 提高拟人化,但是效率比较低,今天说一种selenium和requests搭配使用的方法 注意: 一定…...

【JDK 8-函数式编程】4.4 Supplier

一、Supplier 接口 二、实战 Stage 1: 创建 Student 类 Stage 2: 创建方法 Stage 3: 调用方法 Stage 4: 执行结果 一、Supplier 接口 供给型 接口: 无入参&#xff0c;有返回值&#xff08;T : 出参类型&#xff09; 调用方法: T get(); 用途: 如 无参的工厂方法&#x…...

独立开发者如何利用Taotoken的多模型能力构建低成本AI应用原型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何利用Taotoken的多模型能力构建低成本AI应用原型 对于资源有限的独立开发者或初创团队而言&#xff0c;在应用开发初…...

重复内容误标率高达37%?NotebookLM检测逻辑漏洞全曝光,立即修复这6个隐藏开关

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;重复内容误标率高达37%&#xff1f;NotebookLM检测逻辑漏洞全曝光&#xff0c;立即修复这6个隐藏开关 NotebookLM 的“重复内容检测”功能并非基于端到端语义比对&#xff0c;而是依赖于分块哈希&#…...

C++高精度算法的简单实现

一、基本原理1、存储方式采用数字记录高精度数字&#xff0c;数组的第一个元素存储数据长度&#xff0c;比如记录数字为1024示例如下&#xff1a;2、计算方式采用模拟立竖式计算&#xff0c;比如加法的计算流程&#xff0c;如下图所示10249000&#xff1a;这里只给出加法的计算…...

重塑Word排版效率——多级列表与自动编号的进阶应用

1. 为什么你的Word文档总是排版混乱&#xff1f; 每次打开同事发来的Word文档&#xff0c;最让我头疼的就是那些乱七八糟的编号格式。明明应该是"1.1"的子标题&#xff0c;突然变成了"5.3"&#xff1b;精心调整的缩进距离&#xff0c;传到别人电脑上就完全…...

循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯

循迹小车传感器布局与状态机编程避坑指南&#xff1a;从5路红外到精准过直角弯 在智能小车开发领域&#xff0c;循迹功能是最基础也最具挑战性的环节之一。许多创客和学生在完成硬件搭建后&#xff0c;往往会陷入软件调试的泥潭——小车要么频繁偏离轨道&#xff0c;要么在直角…...

魔兽世界宏编辑器终极指南:5分钟掌握GSE高级宏编译工具

魔兽世界宏编辑器终极指南&#xff1a;5分钟掌握GSE高级宏编译工具 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Macro-Compi…...

Consul-K8s实战:Kubernetes与Consul服务网格的无缝集成指南

1. 项目概述&#xff1a;当Consul遇见Kubernetes如果你正在Kubernetes集群里管理微服务&#xff0c;并且已经听说过或者正在使用HashiCorp Consul来做服务发现和配置管理&#xff0c;那么hashicorp/consul-k8s这个项目绝对是你绕不开的工具。简单来说&#xff0c;它不是一个独立…...

为OpenClaw配置Taotoken作为其AI模型供应商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw配置Taotoken作为其AI模型供应商 基础教程类&#xff0c;指导使用OpenClaw这类Agent工具的开发者&#xff0c;如何将其后…...

书成紫微动律定凤凰驯:抛开网络臆想歪论正视海棠山铁哥的大道凰标之道

——褪去网络流言&#xff0c;正视正统文脉网络世间众说纷纭&#xff0c;流言四起&#xff0c;诸多无根揣测、片面臆想肆意流传。 不少人未曾静心品读深意&#xff0c;仅凭只言片语便妄加评判&#xff0c;或是跟风曲解本意&#xff0c;或是刻意附会杂论&#xff0c;更有甚者凭空…...

从Halo部署到公网访问:手把手教你用Nginx反代搞定域名、HTTPS与安全配置

从Halo部署到公网访问&#xff1a;Nginx反代全流程实战指南 当你成功在本地服务器上部署了Halo博客系统&#xff0c;看着8080端口的测试页面时&#xff0c;是否思考过如何让它成为真正的互联网站点&#xff1f;本文将带你跨越从本地测试到公网可访问的最后一道鸿沟&#xff0c;…...