Linux命令行删除文件恢复(Ubuntu)

原创 2015年11月21日 12:28:31

        在Linux系统下,通过命令“rm -rf”可以将任何数据直接从硬盘删除,并且没有任何提示,同时Linux下也没有与Windows下回收站类似的功能,也就意味着,数据在删除后通过常 规的手段是无法恢复的,因此使用这个命令要非常慎重。在使用rm命令的时候,比较稳妥的方法是把命令参数放到后面,这样有一个提醒的作用。其实还有一个方 法,那就是将要删除的东西通过mv命令移动到系统下的/tmp目录下,然后写个脚本定期执行清除操作,这样做可以在一定程度上降低误删除数据的危险性。

   其实保证数据安全最好的方法是做好备份,虽然备份不是万能的,但是没有备份是万万不行的。任何数据恢复工具都有一定局限性,都不能保证完整地恢复出所有数据,因此,把备份作为核心,把数据恢复工具作为辅助是运维人员必须坚持的一个准则。

1、extundelete的恢复原理

  在介绍使用extundelete进行恢复数据之前,简单介绍下关于inode的知识。在Linux下可以通过“ls -id”命令来查看某个文件或者目录的inode值,例如查看根目录的inode值,可以输入:

 由此可知,根目录的inode值为2。

  在利用extundelete恢复文件时并不依赖特定文件格式,首先extundelete会通过文件系统的inode信息(根目录的inode一 般为2)来获得当前文件系统下所有文件的信息,包括存在的和已经删除的文件,这些信息包括文件名和inode。然后利用inode信息结合日志去查询该 inode所在的block位置,包括直接块、间接块等信息。最后利用dd命令将这些信息备份出来,从而恢复数据文件。

2、安装extundelete

  extundelete的官方网站是http://extundelete.sourceforge.net/ ,其目前的稳定版本是extundelete-0.2.4。在安装extundelete之前需要安装e2fsprogs和e2fsprogs-libs两个依赖包。e2fsprogs和e2fsprogs-libs安装非常简单,这里不做介绍。但是对ubuntu系统而言需要安装的依赖包是

执行:#sudo apt-get install e2fslibs-dev

上面指令仅是下载安装extundelete-0.2.4的依赖包,还需在官网中下载extundelete-0.2.4.tar.bz2  。

然后安装extundelete-0.2.4,如下:

# tar jxvf extundelete-0.2.4.tar.bz2 

# cd extundelete-0.2.4 

# ./configure

# make 

# make install

成功安装extundelete后,会在系统中生成一个extundelete可执行文件。extundelete的使用非常简单,可以通过“extundelete  --help”获得此软件的使用方法。

下面就是找回被删除文件usb_camera.c的过程:

a、查看文件系统类型和分区

我的文件系统类型为ext4,extundelete支持的类型为ext3/ext4 ,而ext3grep仅支持ext3文件系统的恢复。用户文件系统在/dev/sdal根文件系统中,被rm的文件也在这里。
b、执行:#  extundelete --inode 2 /dev/sda1
其中,--inode 2为查找当前目录下的文件和被rm掉的文件。先从根目录查起。
被我删除的文件放在/win7files目录下。
c、# extundelete --inode 1438977 /etv/sda1

win7files的节点号为1438977,--inode1438977就是查看/win7file目录下的文件及被删除的文件。依次下去,直到找到usb_camera.c的节点号。执行代码如下:

#extundelete --inode 2 /dev/sda1(上一步已经执行过该命令)

# extundelete --inode 1438977 /etv/sda1

# extundelete --inode 1438977 /dev/sda1

# extundelete --inode 1453508 /dev/sda1

# extundelete --inode 1455584 /dev/sda1

 d、# extundelete --restore-inode 1455587 /dev/sda1

setup.sh的节点号为1455587,--restore-inode1455587就是恢复这个节点文件。

e、查看恢复结果

在根目录下产生了一个RECOVERED_FILES目录,恢复的文件就在该目录中。file.1455587主是要恢复的usb_camera.c。我将同一文件恢复了两次,所在这时有个file.1455587与file.1455587.v1。

Linux文件误删除恢复操作

本文参考http://write.blog.csdn.net/postedit?ticket=ST-491405-OGjDDusZeyMgVQ7bHW7f-passport.csdn.net 前言 作...
  • xiaoshunzi111
  • xiaoshunzi111
  • 2017年06月21日 13:51
  • 8646

Linux恢复删除的文件

linux恢复删除的文件 先介绍下一些文件的基本概念:   ·         文件实际上是一个指向inode的链接, inode链接包含了文件的所有属性, 比如权限和所有者, 数据块地址(文件...
  • zonghua521
  • zonghua521
  • 2017年10月11日 09:49
  • 1995

linux恢复意外删除的文件

linux恢复意外删除的文件 当进程打开某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符...
  • wyzxg
  • wyzxg
  • 2013年10月12日 17:10
  • 28766

Linux文件误删除恢复操作

 本文参考http://write.blog.csdn.net/postedit?ticket=ST-491405-OGjDDusZeyMgVQ7bHW7f-passport.csdn.net ...
  • zxh2075
  • zxh2075
  • 2018年01月11日 11:07
  • 88

在linux系统下如何恢复误删除文件

在linux系统下如何恢复误删除文件 在windows恢复误删文件:;一般用finaldata v2.0汉化版和easyrecovery这两个恢复软件 Linux文件系统由三部分组成:文件名,...
  • qq_37392757
  • qq_37392757
  • 2017年02月13日 23:53
  • 1965

Linux(以Ubuntu16.04为例)和Windows误删文件恢复

在linux下有一个用着很爽的命令rm -f,意为强制删除,同样这也是个非常危险的命令(可以理解为禁咒2333)。所以我是尽量避免使用这条指令的。 而今天我在编译一个C++文件时不小心将目标文件和源...
  • ds1231h
  • ds1231h
  • 2017年04月07日 18:07
  • 2293

linux下如何恢复rm命令删除的文件

在linux下rm -rf 是一个很可怕的命令,因为下达这个命令意味着一旦删除的文件是无法挽回的,事实是如此吗?真的没有补救措施了吗?答案是委婉了,在一定的条件下可以补救,大家可能熟悉windows下...
  • andy572633
  • andy572633
  • 2012年10月13日 00:07
  • 45333

数据恢复:在 Linux 上恢复删除了的文件

导读 你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 "rm"命令,错误的删除了一个不该删除的文件。 在第一种情况下,你可以到垃圾箱,搜索那个文件,...
  • Jack__CJ
  • Jack__CJ
  • 2016年11月27日 11:10
  • 3019

linux_文件删除的恢复(rm -rf *)

文件删除,需要进行恢复。 1. lsof   文件刚刚被删除,想要恢复,先尝试lsof.   #lsof |grep data.file1   # cp...
  • weiguang1017
  • weiguang1017
  • 2016年08月18日 12:01
  • 8248

Linux操作系统下如何能恢复误删除的文件

  • 2011年06月20日 11:16
  • 38KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux命令行删除文件恢复(Ubuntu)
举报原因:
原因补充:

(最多只允许输入30个字)