恢复Ext3下被删除的文件

恢复已删除的文件:EXT3文件系统中的数据恢复 EXT3文件系统使用一种称为“日志化文件系统”的技术,其中所有的文件和目录操作都被记录在一个称为“日志”的文件中。这个日志文件允许我们在某些情况下恢复已删除的文件。然而,成功恢复文件的可能性取决于多个因素,如文件是否被覆盖以及删除操作发生后经过的时间。因此,在意识到文件被删除后,立即停止写入操作并尝试使用恢复工具来提高文件恢复的成功率。这是非常重要的,因为继续写入操作可能会覆盖已删除文件的数据,导致无法恢复。运行上述命令后,extundelete将尝试恢复被删除的文件并将其存储在当前目录下的一个名为。 阅读详情

下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。

假设我们有一个文件名叫 ‘test.txt’

  $ls -il test.txt
 15 -rw-rw-r– 2 root root 20 Apr 17 12:08 test.txt
 

注意:: “-il” 选项表示显示文件的i-node号(15),如果你不知道Unix/Linux文件系统的“I结点”的话,你有必要先补充一下相关的知识。简单说来,i结点就是操作管理文件的一个标识号。

我们再看一下其内容:

$ cat test.txt
this is test file

好,现在我们开始删除文件:.

$rm test.txt
rm: remove write-protected regular file `test.txt’? y

 

使用 Journal 和 Inode 号恢复

注意,如果你删除文件后重启了系统,那么,相关的文件 journal 会丢失,我们也就无法恢复文件了。所以,恢复文件的前提是,Journal不能丢失,即,系统不能重启。

因为我们已经知道 test.txt 文件的 inode 号是 15,所以我们可以使用 debugfs 命令来查看:

debugfs: logdump -i <15>
FS block 1006 logged at sequence 404351, journal block 7241
(inode block for inode 15):
Inode: 15 Type: regular Mode: 0664 Flags: 0×0 Generation: 0
User: 0 Group: 0 Size: 20
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 8
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x48159f2d — Mon Apr 28 15:25:57 2008
atime: 0x48159f27 — Mon Apr 28 15:25:51 2008
mtime: 0x4806f070 — Thu Apr 17 12:08:40 2008
Blocks: (0+1): 10234
No magic number at block 7247: end of journal.


请注意上面信息中的这一行:

Blocks: (0+1): 10234

这就是inode 15存放文件的地址(数据块)。然后,我们知道了这个地址,我们就可以使用 dd 命令,把这个地址上的数据给取出来。

#dd if=/dev/sda5 of=/tmp/test.txt bs=4096 count=1 skip= 10234
1+0 records in
1+0 records out
  • if 是输入的设备
  • of 是输出的设备.
  • bs 指定一个block的大小
  • count 说明有多少个block需要dump
  • skip 说明从开始的地方跳过 10234 个block,并从取下一个block的数据

下面让我们看一下被恢复的文件:

$cat /tmp/test.txt 
this is test file


当然,上面的文件恢复是基于我们知道文件的inode,可在现实中,我们并不知道这个信息,如果我们不知道inode,我们还可能恢复吗?是的,这是可能的,让我们来看一下如何恢复。

使用 Journal 和 文件名恢复

如果我们不知道文件的inode我们可能恢复吗?我可以告诉你,这是不可能的事情。不过我们有办法知道文件的inode号。下面让我们来看看怎么做到:

$rm mytest.txt
rm: remove write-protected regular file `mytest.txt’? y

注意,我们并不知道其inode号,但我们可以使用 debugfs 命令来查看(使用其 ls -d 选项)。

debugfs:  ls -d
 2  (12) .    2  (12) ..    11  (20) lost+found    2347777  (20) oss
<2121567> (20) mytest.txt

你看文件名了吧,它的inode号是 <2121567> ,注意,被删除了的文件的inode都是用尖括号包起来的。

即然知道了inode号,那么我们就很容易恢复了(使用 logdump选项):

debugfs:  logdump -i <2121567>
Inode 2121567 is at group 65, block 2129985, offset 3840
Journal starts at block 1, transaction 405642
  FS block 2129985 logged at sequence 405644, journal block 9
    (inode block for inode 2121567):
    Inode: 2121567   Type: bad type        Mode:  0000   Flags: 0×0   Generation: 0
    User:     0   Group:     0   Size: 0
    File ACL: 0    Directory ACL: 0
    Links: 0   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0×00000000 — Thu Jan  1 05:30:00 1970
    atime: 0×00000000 — Thu Jan  1 05:30:00 1970
    mtime: 0×00000000 — Thu Jan  1 05:30:00 1970
    Blocks:
  FS block 2129985 logged at sequence 405648, journal block 64
    (inode block for inode 2121567):
    Inode: 2121567   Type: regular        Mode:  0664   Flags: 0×0   Generation: 913772093
    User:   100   Group:     0   Size: 31
    File ACL: 2130943    Directory ACL: 0
    Links: 1   Blockcount: 16
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4821d5d0 — Wed May  7 21:46:16 2008
    atime: 0x4821d8be — Wed May  7 21:58:46 2008
    mtime: 0x4821d5d0 — Wed May  7 21:46:16 2008
    Blocks:  (0+1): 2142216

上面有很多信息,让我们仔细地查看,你可以看到下面一行信息:

 FS block 2129985 logged at sequence 405644, journal block 9

并且,其类型是:

 Type: bad type 

再仔细看一下文件的时间戳下面的Blocks: 什么也没有。那么,让我们看一下下一个block:

FS block 2129985 logged at sequence 405648, journal block 64
    (inode block for inode 2121567):

这一条Journal就有block信息了:

Blocks:  (0+1): 2142216

这就是被删除文件的地址,让我们再次运行恢复命令:

$sudo dd if=/dev/sda5 of=/home/hchen/mytest_recovered.txt bs=4096 skip=2142216 count=1

再让我们来检查一下文件内容:

$ cat mytest_recovered.txt
this is my test file 
小结

好了,下面是我们的一些总结:
1)使用 debugfs: ls -d 找到被删除文件的inode号。
2)使用 debugfs:logdump找到文件的数据块地址。
3)使用dd 命令把数据取出来存成文件。

网上有很其它不同的方法来恢复文件,基本上也是使用debugfs这个命令,有的还使用到了lsdel,其实大同小异,这个教程是我在网上看到的,虽然他说只是针对Ext3文件系统的,但我总感觉应该可以用于Ext2文件系统,不过我没有试过。也许Ext2和Ext3被debugfs输出的信息不一样吧。大家可以去试试。

(全文完)

(转载本站文章请注明作者和出处 酷壳 – CoolShell.cn ,请勿用于任何商业用途)

——===  访问 酷壳404页面 寻找遗失儿童。 ===——
TI LP87745-Q1汽车雷达PMIC评估:从硬件设计到性能测试全解析 在汽车电子和高级驾驶辅助系统(ADAS)中,电源管理单元(PMIC)是确保传感器稳定可靠运行的核心。其工作原理在于集成多路高效电源转换器(如Buck、Boost)和精密监控电路,通过数字接口实现灵活配置与实时诊断。这项技术的核心价值在于为毫米波雷达等关键负载提供低噪声、高精度、满足严格时序与功能安全(ASIL)要求的供电方案,从而提升整个感知系统的信噪比与可靠性。其典型应用场景包括自动驾驶域控制器、车载传感器融合模块等。本文以德州仪器(TI)的LP87745-Q1专用PMIC及其评估模块(EVM)为例,深入 阅读详情

相关推荐

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 300

删除.git文件夹(报错rm: remove write-protected regular file)

报错: rm: remove write-protected regular file 'PyTorch_TextGCN/.git/objects/9f/98f6f88ae8715818e7305bc3aa7d6a97f8a9cf'? rm: cannot remove 'PyTorch_TextGCN/.git/objects/9f': Directory not empty rm: remove write-protected regular file 'PyTorch_TextGCN/.git/obj

Welcome to BierOne's blog! 1万+

文献阅读笔记:量子微波测量技术综述

量子微波测量技术研究进展:量子微波测量技术利用里德堡原子与微波电场的相干相互作用,突破了传统测量方法的物理限制。该技术基于电磁诱导透明效应和里德堡原子能级跃迁原理,通过激光激发原子并监测光谱变化来测量微波电场强度。相比传统方法,量子微波测量具有超高灵敏度(理论极限可达nV/cm)、宽动态范围(超过100dB)、小型化等显著优势,且测量结果可直接溯源至普朗克常数。典型实验系统包括光源、原子气室和探测器,采用光谱法、干涉法等多种测量方法。近年来,该技术在基础研究和应用方面取得重要进展,展现出在通信、雷达、计量等

Grow into a more wonderful you 987

linux的文件保护,如何在Linux中保护文件和目录免遭删除

您是Linux管理员吗?您通常会保护脚本文档或任何重要文件吗?您可能已经知道,Chattr(更改属性)是一个命令行Linux实用程序,尽管您已登录,但该实用程序用于在Linux进程中为文件设置/取消设置确切的属性,以方便意外删除或更改主要文件和文件夹。作为root用户。本文可帮助您照顾可能支持禁止未经授权的用户删除您的敏感内容的记录或文件夹。保护文件在下面的示例中,abc.txt是文件名保护文件要...

weixin_39607710的博客 3863

cartographer基于3d地图的纯定位模式

关于纯定位模式呢,本人试过2d和3d,怎么说呢,有条件的话,建议直接上3d,因为博主当初在做定位时针对室内和室外都尝试过,2d只在室内环境下效果会很棒,但是在室外就呵呵啦!所以这里直接讲解3d室外定位(建图篇请自己查看我之前的博客:[3d建图](https://blog.youkuaiyun.com/qq_40216084/article/details/105531983) 看了我之前的博客大概知道配置文件和源文件路径了,我这里就不把路径写出来了,挺麻烦的。直接讲怎么做把,有不懂的留言,看到了我一定知无不言。 **首

qq_40216084的博客 5552

6层高速PCB设计实战:BGA布局与阻抗匹配关键解析

本文深入解析6层高速PCB设计中BGA布局与阻抗匹配的关键技术。通过实战经验分享,详细介绍了六层PCB层叠结构的选择与优化、BGA器件布局技巧、阻抗匹配的实战经验以及高速布线技巧,帮助工程师提升PCB设计水平,确保信号完整性和电源完整性。

weixin_28481133的博客 368

linux删除蓝色文件夹,linux删除文件报错

在linux系统下执行了删除文件命令,但出现报错:$rm libfuse erm: remove write-protected regular file `libfuse a& 39;? yrm: cannot remove `libfuse a& 39;: Permission denied通过ll命令查看文$rm libfuse.erm: remove write-prot...

weixin_39830200的博客 1977

OpenMontage:AI代理驱动的端到端视频生产系统实战指南

在当今内容创作领域,自动化视频生成技术正成为提升生产效率的关键。其核心原理在于通过智能体(Agent)架构,将复杂的视频制作流程拆解为可被AI理解和执行的标准化任务,从而实现从创意到成片的端到端自动化。这项技术的核心价值在于大幅降低了专业视频制作的门槛,使非专业用户也能快速产出具有一定专业度的内容。其典型应用场景包括社交媒体短片、产品演示、知识科普视频的批量生产。OpenMontage正是这一技术理念的杰出实践,它构建了一个完整的代理驱动视频生产系统,将AI编码助手转变为能自主规划并执行脚本撰写、素材检索、

weixin_35757191的博客 646

重新理解Linux文件权限

rwx对于文件:r 读,打开文件-r-------- 1 ubuntu ubuntu 6 Jun 15 01:50 hello.txt ubuntu@ubuntu:~/_myTest/rwx$ cat hello.txt hellow 写,编辑文件 --w------- 1 ubuntu ubuntu 6 Jun 15 01:50 hello.txt #然而并没有什么卵用~编辑的前提是有

1359

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 154

2025_NIPS_Truthful Aggregation of LLMs with an Application to Online Advertising

大型语言模型(LLMs)生成内容的 revenue 变现是在线广告的下一个前沿领域。我们考虑这样一种场景:广告商旨在影响LLM的回复,而平台则寻求最大化广告商价值并确保用户满意度。核心挑战在于,广告商的偏好通常与用户偏好存在冲突,且广告商可能误报其偏好。为解决这一问题,我们提出MOSAIC——一种拍卖机制,它确保真实申报是广告商的占优策略,并使每个广告商的效用与其对社会福利的贡献保持一致。重要的是,该机制无需LLM微调或访问模型权重,且随着计算资源的增加,可证明收敛到最优微调LLM的输出。

c_cpp_csharp的专栏 79

【windows删除.git文件夹(报错rm: remove write-protected regular file)】

windows删除.git文件夹(报错rm: remove write-protected regular file)

江边小客的博客 758

SAP-MM-采购过账接口(与WMS集成)-代码

1、判断传入值非空检验; 2、判断过账日期是否允许在当前期间; 3、判断是否为集采订单业务,是否审批完成; 4、判断是否发布标准成本发布(此业务场景与价格控制3+S有关) 5、保存日志表; 6、判断业务公司订单审批状态; 7、创建STO交货单、集采公司订单过账、STO公司间创建交货单、交货单过账(两步法)、过账失败回滚(冲销交货、删除交货单、冲销集采入库)

qq_32198063的博客 420

使用ext3grep恢复ext3文件系统中误删除文件

 原贴:http://blog.chinaunix.net/u2/88652/showart_1723731.html使用ext3grep恢复ext3文件系统中误删除文件使用ext3grep恢复ext3文件系统中误删除文件作者:ubuntu中文论坛的 jkll(就是我啦)原文链接严重提示:请非常谨慎执行本文

最实用的Linux博客 3735

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux删除s3的文件,[转]使用ext3grep恢复ext3上删除的文件

是的,我知道ext3文件系统上,一旦文件被删除(rm -rf ),就几乎没有恢复的可能。而且从ext3文件系统的FAQ中提到的一条也能印证这点:引用Q: How can I recover (undelete) deleted files from my ext3 partition?Actually, you can’t! This is what one of the developers, ...

weixin_29009971的博客 291

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

linux恢复误删除文件-ext3grep

linux恢复误删除文件 1. 安装rpm包 [root@zw_test_26_74 /]# rpm -ivh ext3grep-0.10.2-1.el4.rf.x86_64.rpm warning: ext3grep-0.10.2-1.el4.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOK

小伟的博客 1618

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ext3grep 恢复rm删除文件利器

1,环境准备OS :Centos 5.7 x86安装gcc e2fsprogs-libs2下载安装ext3grephttp://ext3grep.googlecode.com/files/ext3grep-0.10.2.tar.gztar zxvf ext3grep-0.10.2.tar.gzcd ext3grep-0.10.2makemake install3,测试删除重要...

weixin_33691700的博客 151

大数据分析实战:从理论模型到生产系统的十年演进与核心挑战

大数据分析作为现代数据科学的核心,其价值在于将海量、多源、高速的数据转化为可行动的洞察。其基本原理通常围绕数据的采集、存储、计算和可视化展开,涉及分布式系统、并行计算等基础理论。在技术层面,批处理、流计算和图计算是三大核心范式,分别应对历史数据分析、实时数据流处理和复杂关系挖掘的需求。这些技术的工程价值在于支撑了从商业智能、推荐系统到风险控制等广泛的应用场景。然而,从优雅的理论模型到健壮的生产系统,往往存在巨大鸿沟,例如数据倾斜、状态管理和资源调度等系统级挑战。本文聚焦于大数据分析的系统化实践,深入探讨如何

weixin_33681778的博客 441

linux tmpfs文件误删除的恢复,EXT3文件系统中误删文件的恢复方法

之前的文章中说明了当用rm -rf误删除文件后的恢复方法,使用这种方法是有前提条件的,必须保证Oracle实例没有关闭,Oracle的相关进程还在运行。而当Oracle进程已经关闭后,就无法再通过利用ora_进程跟踪文件句柄进行恢复了,那么还有办法对误删除的文件进行恢复吗?Linux EXT3文件系统下成功恢复误删的文件 http://www.linuxidc.com/Linux/2011-01/...

weixin_39805734的博客 271

使用ext3grep恢复ext3上删除的文件

http://www.xs4all.nl/~carlo17/howto/undelete_ext3.html是的,我知道ext3文件系统上,一旦文件被删除(rm -rf ),就几乎没有恢复的可能。而且从ext3文件系统的FAQ中提到的一条也能印证这点:引用Q: How can I recover (undelete) deleted files from my ext3 parti

cnbird's blog 2171

RHEL 5基础篇—利用ext3grep工具恢复误删除文件

利用ext3grep工具恢复误删除文件    ext3grep是一款非常好用的软件,主要用于在linux系统下恢复ext3文件系统中误删除的文件。今天我们就一起来学习一下怎么样在linux系统下恢复误删除的文件。 1、安装ext3grep软件 可以点击这里下载:http://code.google.com/p/ext3grep/downloads/list 安装ext3grep工具需要e2

数据恢复_邓奇 554

在ext3文件系统怎样恢复删除的文件(译1)

作者:Carlo Wood时间:2008年4月作者网站:http://code.google.com/p/ext3grep/翻译者:www_xylove(网络ID)时间:2013年1月27日说明:翻译这个软件的功能主要是想证明一...

cuijiaoru6165的博客 99

用debugfs在ext3文件系统上恢复删除的文件的一次尝试

大家都知道Linux中,删除了的文件想恢复很难!而且不同文件系统下恢复的命令和工具可能还不一样。下面说下用debugfs,Linux中自带的命令,在ext3文件系统上恢复被删除文件的一次尝试.      [root]# mkdir /root/test                 //-->建测试文件夹 [root]# cd /root/test

杰瑞的专栏 2052

linux ext3 ext4 文件系统 rm -rf删除后数据快速恢复

linux ext3 ext4 文件系统 rm -rf删除后数据快速恢复办法

yown的专栏 6678

通过ext3grep恢复误删除的文件和表

本文将通过实战向大家演示通过ext3grep恢复误删除的文件与目录,掌握使用ext3grep对文件与目录进行恢复操作的思路,这样在你实际遇到问题的时候能提供一个方法指导。 当发现某个分区的数据被误删除后,要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区。 这么做的原因其实很简单:删除一个文件,就是将文件inode节点中的扇区指针清除,同时,释放这些数据对应的

常见的专栏 1499
上一篇: 批处理 屏幕 定时截图 循环 键 PrintScreen 第三方工具 nircmd
下一篇: 分布式机器学习的故事(四):Rephil和MapReduce——描述长尾数据的数学模型
overstack
博客等级 码龄14年 115粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值