• 使用exundelete在Linux下恢复删除的文件


    原文:https://my.oschina.net/looly/blog/261912

    Linux下执行 rm 并不会真正删除,而是将inode节点中的扇区删除,同时释放数据块。在数据块被系统重新分配前,这部分数据还是可以找回来的。

    网上说在删除文件后要立即unmount这个分区,这样做其实是为了让外界不再写入,我们也可以设置为readonly模式代替。当然,如果为了不影响其它应用的运行,也可以不做unmount。

    好的,现在就该神器extundelete上场了。以CentOS6.5为例

    依赖

    yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel
    

    安装

    wget http://jaist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
    tar jxvf extundelete-0.2.4.tar.bz2
    cd extundelte-0.2.4
    ./configure
    make; make install
    

    查找要恢复的驱动器名

    df
    
    Filesystem             1K-blocks     Used   Available Use% Mounted on
    /dev/sda1                 495844    64150      406094  14% /boot
    

    运行恢复

    默认恢复到当前目录下的RECOVERED_FILES目录中去

    恢复单个文件

    extundelete /dev/sdb1 --restore-file hosts
    

    恢复一个目录

    extundelete /dev/sdb1 --restore-files test/
    

    恢复整个分区

    extundelete /dev/sdb1 –-restore-all
    

    这个工具貌似支持EXT4文件系统,经过实际测试,restore-all比较好用,在初次删除后可以很好的恢复文件及目录结构,但是如果我在相同位置新建了相同的文件名或者目录名,就会恢复失败(找不到了)。而恢复单独的文件或者目录则没有成功,如果有成功的可以告诉我。

  • 相关阅读:
    PHP基础知识(十一)
    PHP基础知识(十)
    PHP基础知识(九)
    PHP中禁用cookie后session的实现
    PHP基础知识(八)
    将博客搬至CSDN
    如何为预先数据库创建自定义SQL Server复制
    数据库同步工具
    如何终止与MySQL数据库的某些连接
    从Oracle到SQL Server和从SQL Server到Oracle的迁移指南
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10066734.html
Copyright © 2020-2023  润新知