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下如何恢复rm命令删除的文件

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

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

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

Linux下误删除文件的各种恢复工具

Linux下误删除文件的各种恢复工具

linux恢复意外删除的文件

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

linux 删除文件恢复

Linux文件系统的反删除方法 选择自 zcatlinux 的 Blog   Linux文件系统的反删除方法 Ext3文件系统结构的简单介绍 在Linux所用的Ext3文件系统中,文件是以...

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

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

linux恢复误删除文件-extundelete

经过本人测试该工具支持ext3和ext4文件系统 当发现某个分区的数据被误删除后,要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区。 这么做的原因其实很简单:删除一个文...

Linux文件误删除恢复操作

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

ubuntu下恢复rm删除的数据

1. 论“备份”的重要性今天手真快,Tab补全文件名后回车,昨天一天写的代码就被我remove了。虽然自己写了脚本备份系统和home目录,但系统是1天一备份,home是2天一次增量备份。又恰巧昨晚没有...

Ubuntu恢复被删除的文件

Ubuntu恢复被删除的文件 昨天一不小心,执行了rm xx  -rf,把一个项目删除了。然后就是各种悔恨,各种自责,这个项目可是一周的工作量啊。最后肯定得解决,于是google搜索发现...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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