zoukankan      html  css  js  c++  java
  • Linux系统下文件删除的恢复方法

    对于rm,很多人都有惨痛的教训。我也遇到一次,一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍。但是很多人可能就不像我这么幸运了。本文收集了一些在Linux下恢复rm删除的文件的方法,给大家作为参考。

      首先,最好的方法是避免这个问题,以下是几点建议:

      1、rm -rf误操作的后果是可怕的,rm -f也要三思而行,不能轻易使用。

      2、做好数据备份。

      3、用一些策略避免出错:

      提倡在shell下用 TAB 补全,用脚本执行任务,减少出错的机会。或者编写一个脚本,起名rm,在脚本里将真实的rm改为mv ,将删除的都mv到一个指定的目录里面,定期清理。

      那么rm删除的文件还能恢复吗?

      rm的man里面有如下说法:

      请注意,如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证该文件的内容无法还原,请考虑使用 shred。

      所以理论上rm删除的文件是还能恢复的。删掉文件其实只是将指向数据块的索引点(information nodes)释放,只要不被覆盖,数据其实还在硬盘上,关键在于找出索引点,然后将其所指数据块内的数据抓出,再保存到另外的分区。在用rm误删除文件后,我们要做的第一件事就是保证不再向误删文件的分区写数据。

      通常我们可以有以下几种选择:

      1、借助工具。

      2、自己写程序。你需要会编程并了解对应的文件系统。

      3、如果数据很有用,也许可以找专业公司抢救。

      工具

      1、The Sleuth Kit http://www.sleuthkit.org/sleuthkit/(Autopsy是它的一个图形前端)

      2、Foremost    http://foremost.sourceforge.net

      3、一个全能的工具,Finaldata,可以恢复unix/linux/dos下误删的文件。对于unix,支持这些产品,     Solaris、AIX和HP-UX。对于linux,支持EXT2的文件系统。对于dos,支持FAT 12/16/32, NTFS 4/5/5.1 的文件系统。

      4、如果文件系统是ext2(对ext3无效):

      ext3的删除机制是直接把 inode data 删除了,所以造成 ext3 无法反删除(ext3设计为无法恢复被删除的文件)。

      unrm

      ext2ed

      debugfs(undel lsdel )

      recover

      Midnight Commander(mc)

      e2undel

      tct

      5、如果文件系统是FAT32或者NTFS:

      EasyRecovery

      Finaldata

      6、freebsd如果使用了rm,可以试一下undelete这个命令.

      7、当进程打开了某个文件时,只要该进程保持打开该文件,lsof可以用来恢复删除文件。

    转自:http://www.linuxidc.com/Linux/2008-08/14744.htm

    在linux下rm -rf 是一个很可怕的命令,因为下达这个命令意味着一旦删除的文件是无法挽回的,事实是如此吗?真的没有补救措施了吗?答案是委婉了,在一定的条件下可以补救,大家可能熟悉windows下删除的补救措施是通过相关的软件实现的,在linux下同样可以做到补救,但是有个大前提:就是不能有覆盖的动作(意思就是在尝试恢复删除的数据前,删除文件的目录内不能存放新东西),不然覆盖多少就损失多少!

    这里用到的套件是ext3grep、系统必须默认的安装上e2fsprogs-lib、2fsprogs-devel、e2fsprogs5、gcc、gcc++这些软件
    [root@localhost ~]# rpm -qa|grep e2fsprogs
    e2fsprogs-libs-1.39-23.el5
    e2fsprogs-devel-1.39-23.el5
    e2fsprogs-1.39-23.el5

    源码安装ext3grep
     [root@localhost ~]# llext3grep-0.10.2.tar.gz 
    -rw-r--r-- 1 root root 236364 Oct 17 2011 ext3grep-0.10.2.tar.gz

    [root@localhost~]# tar zxvf ext3grep-0.10.2.tar.gz
    [root@localhost ~]# cd ext3grep-0.10.2
    [root@localhost ext3grep-0.10.2]# ./configure 
    [root@localhost ext3grep-0.10.2]# make && make install
    [root@localhost ~]# ll /usr/local/bin
    total 2656
    -rwxr-xr-x 1 root root 2709704 Oct 15 04:46 ext3grep   //www.linuxidc.com这句是那个可执行文件

    接下来演示一个补救的过程实例

    [root@localhost~]# mkdir /data/ /ixdba/

    [root@localhostdata]# dd if=/dev/zero of=data-disk bs=1M count=105
    [root@localhost data]# mkfs.ext3 data-disk  //格式为ext3的文件系统,在出现的提示符处输入y
    [root@localhost data]# mount -o loop /data/data-disk /ixdba/  //挂载
    [root@localhost data]# cp /etc/host* /ixdba/ //往里边放文件
    [root@localhost data]# cp /etc/passwd /ixdba/ 
    [root@localhost data]# cd /ixdba/ 
    [root@localhost data]# rm -rf *   //制造删除的动作
    [root@localhost data]# cd /data/

    [root@localhostdata]# ext3grep /data/data-disk --ls --inode 2  //查看丢失的文件

    [root@localhostdata]# ext3grep /data/data-disk --restore-file passwd  //仅仅恢复passwd这个文件
    [root@localhost data]# ext3grep /data/data-disk --restore-all    //恢复的动作,全部恢复

    [root@localhostdata]# ls
    data-disk  data-disk.ext3grep.stage1  data-disk.ext3grep.stage2  RESTORED_FILES
    [root@localhost data]# ll RESTORED_FILES/      //所有恢复的文件全在这个文件夹里存放,都找回来了
    total 48
    -rw-r--r-- 1 root root   17 Oct 15 06:03host.conf
    -rw-r--r-- 1 root root  187 Oct 15 06:03hosts
    -rw-r--r-- 1 root root  161 Oct 15 06:03hosts.allow
    -rw-r--r-- 1 root root  347 Oct 15 06:03hosts.deny
    drwx------ 2 root root 4096 Oct 15 06:04 lost+found
    -rw-r--r-- 1 root root 1635 Oct 15 06:03 passwd

    总结:这里只能实现的是首次恢复的动作,并且不能有覆盖的动作。

    注意:

    1.      ext3grep后面跟的是分区名称,不是目录名

    2.      --restore-file恢复指定文件,对路径名有特殊要求,具体请自己用—help查看

    3.      所有恢复的文件放到该分区下的RESTORED_FILES目录,不是原目录

    4.      关于所需的安装包,可以在系统光盘、SDK光盘上找。例如我就在suse11sp1的系统光盘和SDK光盘中找到所需的所有rpm包(不过ext3grep的源码包还是在网上下的)。实在不行也可以到网上去下载。

    转自:http://blog.csdn.net/andy572633/article/details/8066363

  • 相关阅读:
    人工智能正在跨越“恐怖谷”,未来或将善恶共存
    大数据可视化的途径
    数据科学家公司生存指南TOP30秘诀
    真真假假?专访七位AI专家,辨析医疗人工智能真伪
    大数据主要应用于哪些行业,应用价值是什么?
    【人工智能】 火爆的机器学习和人工智能,为何在金融业四处碰壁?
    大数据时代,你是否拥有「文科思维」?
    AI和企业管理
    刷脸新时代:我国人工智能技术世界领先 产业规模3600亿元
    交待给你的事办完了,就不能回个话么?
  • 原文地址:https://www.cnblogs.com/longay/p/4076627.html
Copyright © 2011-2022 走看看