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。

Ubuntu中恢复rm命令误删文件

系统:Ubuntu 14.04.2 1 背景         在做项目的时候,本来想使用rm命令删除以14开头的文件,结果写成如下形式: rm 14 *    注意,本来14和*之间不应该有空格的,但...

Ubuntu 误删文件恢复方法

今天不小心delete了一个文件,急于恢复,于是百度google,没有一个简单的方法,都是需要工具恢复。幸好删除之前一个终端已经进入了该文件,ls了一下,进入还能看到里面的东西,兴奋了,说明文件还没有...

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

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

Linux文件误删除恢复操作

本文参考http://write.blog.csdn.net/postedit?ticket=ST-491405-OGjDDusZeyMgVQ7bHW7f-passport.csdn.net 前言 作...

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

文件删除,需要进行恢复。 1. lsof   文件刚刚被删除,想要恢复,先尝试lsof.   #lsof |grep data.file1   # cp...

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

在linux系统下如何恢复误删除文件 在windows恢复误删文件:;一般用finaldata v2.0汉化版和easyrecovery这两个恢复软件 Linux文件系统由三部分组成:文件名,...

linux fsck 修复命令

执行: fsck reboot 这两个命令修复文件系统问题。电脑的文件系统遇到不正常关机或硬件错误容易遭到破坏。Linux下可以使用fsck命令检查、修复文件系统。使用fsck必须是超级用户。f...

我不小心删除了一个文件夹没有清空回收站怎么找回

怎样恢复删除的文件呢?有的人告诉我去回收站找,只要回收站没有被清空,删除的文件都会在里面。这样说合理吗?试想一下,电脑虽然强大,但是也有偷懒的时候,面对一些大内存的文件,它是不是也提醒你彻底删除为妙?...

Linux命令行删除文件恢复

在Linux下工作的很多人都有过这样的尴尬经历,辛辛苦苦写了很久的代码或者文档,一个不小心就rm掉了,命令行删除一般不会进入回收站,这时候是不是想死的心都有了。          先说说活生生的悲剧...

linux rm文件恢复总结

昨天意外删除了一些重要文件,经过一天左右的时候恢复,成功实现rm恢复。在这里总结一下方法。当然防范这种情况还是最重要的,可以参考之前写过的linux rm安全 恢复条件和一些准备: 一、保护数...
  • qiudakun
  • qiudakun
  • 2011年08月04日 10:34
  • 25772
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux命令行删除文件恢复(Ubuntu)
举报原因:
原因补充:

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