返回顶部
首页 > 资讯 > 精选 >恢复EXT3下被删除的文件
  • 229
分享到

恢复EXT3下被删除的文件

2023-06-05 15:06:09 229人浏览 八月长安
摘要

下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt 15 -rw-rw-r– 2 root root 20 Apr 17 12

下面是这个教程将教你如何在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: 0x0 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: 0x0   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: 0x00000000 — Thu Jan  1 05:30:00 1970

    atime: 0x00000000 — Thu Jan  1 05:30:00 1970

    mtime: 0x00000000 — 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: 0x0   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输出的信息不一样吧。大家可以去试试。

--结束END--

本文标题: 恢复EXT3下被删除的文件

本文链接: https://lsjlt.com/news/243487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 恢复EXT3下被删除的文件
    下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt 15 -rw-rw-r– 2 root root 20 Apr 17 12...
    99+
    2023-06-05
  • ext3文件恢复
      现在用ext3文件系统的很多,Debugfs不支持ext3文件系统,下面介绍一款工具可以恢复ext3文件系统数据 ext3grep是恢复ext3文件系统上误删除文件的工具 下载地址: http://code.google.com/p/e...
    99+
    2023-01-31
    文件
  • CentOS系统下怎么恢复被删除的文件
    本篇内容介绍了“CentOS系统下怎么恢复被删除的文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景说明:今天同事在用ftp更新网站内容...
    99+
    2023-06-10
  • 怎么恢复被删除的LINUX文件
    本篇内容主要讲解“怎么恢复被删除的LINUX文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么恢复被删除的LINUX文件”吧!作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,...
    99+
    2023-06-10
  • linux文件被删除如何恢复
    要恢复被删除的Linux文件,可以尝试以下几种方法: 使用文件恢复工具:有一些专门针对Linux系统的文件恢复工具,如TestD...
    99+
    2024-03-04
    linux
  • Linux下如何利用ext3grep恢复被删除的文件
    这篇文章将为大家详细讲解有关Linux下如何利用ext3grep恢复被删除的文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。10个G的数据被误删除了,差点崩溃,试遍了所有常规恢复软件,无用,就要放弃的时...
    99+
    2023-06-16
  • ext3grep恢复ext3文件系统下误
    ext3grep恢复ext3文件系统下误删的文件  环境说明:OS:Centos5.2 文件系统为ext3   1.首先模拟一个分区:  mkdir /home/store cd /home/store dd if=/dev/zero o...
    99+
    2023-01-31
    文件系统 ext3grep
  • Linux中怎么恢复被删除的文件
    Linux中怎么恢复被删除的文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。恢复软件是如何工作的?大多数的文件系统(在删除文件时)只是标记空间为空白。在这些文件系统下,恢...
    99+
    2023-06-13
  • 如何恢复linux下被删除的syslog—/var/log/messages文件
    这篇文章主要介绍了如何恢复linux下被删除的syslog—/var/log/messages文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux新手容易犯的一个错误...
    99+
    2023-06-13
  • 恢复被rm意外删除的数据文件
    一.模拟数据文件删除 [oracle@node1 ~]$ sqlplus /as sysdba ...
    99+
    2024-04-02
  • Linux系统如何恢复被删除文件
    这篇文章主要为大家展示了“Linux系统如何恢复被删除文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统如何恢复被删除文件”这篇文章吧。当用户意外地删除了一个仍然需要的文件时,大多...
    99+
    2023-06-27
  • 用ext3grep恢复删除的文件
     一个同事不小心使用rm -rf命令误删了自己的代码,这意味着一个月的工作丢失了(一个月没有备份过代码,看来他以前一定没经历计算机崩溃的灾难)。我们知道rm命令无法撤销,那么有没有办法恢复这个被删除的目录以及其中的全部文件呢? 在网上搜索了...
    99+
    2023-01-31
    文件 ext3grep
  • 如何恢复windows7删除的文件 恢复删除文件小技巧是什么
    很多朋友可能都有出现过误删文件的情况,一般来说,误删文件还可以在回收站中找回,但往往也有不少朋友没有留意,经常误删文件后连回收站也清空了,出现这种情况找回误删的文件理论上是可以找回的(文件删除不了怎么办),不少朋友可能都...
    99+
    2023-05-26
    windows7 文件 恢复 技巧
  • linux如何若文件被删除,系统会允许你在以后恢复这个被删除的文件
    ...
    99+
    2024-04-02
  • 利用ext3grep恢复ext3文件系统
    在使用linux的过程中,难免会误删除一些文件,可是怎样找回呢?下面介绍一下ext3文件系统的数据恢复。实验环境:CENTOS6.3 /dev/sdb1为数据分区/data,EXT3文件系统。我们已恢复data下的任意文件为例。需要软件:e...
    99+
    2023-01-31
    文件系统 ext3grep
  • 使用ext3grep恢复ext3文件系统
    测试环境:rhel5.2 x86平台 需要安装的软件为:ext3grep http://code.google.com/p/ext3grep/ 1:下载 wget http://ext3grep.googlecode.com/files/e...
    99+
    2023-01-31
    文件系统 ext3grep
  • Linux系统中文件被删除后的恢复方法(ext4)
    本文档给出了恢复ext4文件系统被误删的文件的方法,需要使用的软件是extundelete,这款软件对ext4文件系统的恢复成功率比较高,值得拥有![root@localhost ~]# rm -Rf ...
    99+
    2023-06-05
  • linux如何恢复删除的文件
    要恢复被删除的文件,您可以尝试以下方法:1. 使用恢复工具:有一些专门用于恢复被删除文件的工具,例如TestDisk、PhotoRe...
    99+
    2023-08-20
    linux
  • pycharm删除的文件如何恢复
    pycharm 中可通过两种方式恢复已删除文件:从本地历史记录中恢复:在 "version control" 选项卡中选择 "local history",然后从时间线中选择删除文件的时...
    99+
    2024-04-19
    git pycharm 数据丢失
  • mysql ibdata文件 误删除 恢复
    1 当我们误删除ibdata 文件时 千万不要慌张 此时只要不重启服务 mysql数据库还是可以使用的 如何恢复 前提 不要把mysqld进程杀死,且不能关闭mysql服务  查到mysql...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作