用extundelete恢复Ext文件系统中误删的文件

extundelete恢复Ext文件系统中误删的文件

Linux有时候执行了 rm -rf 等操作误删了文件绝对是一件可怕的事情,好在有一些解决的办法可以临时救急。如果我们的Linux的文件系统属于ext文件系统,那么可以用一款叫做extundelete的工具。

工具原理

Linux下执行rm并不会真正删除文件,而是将该文件的inode节点所在的数据块释放。在数据块被系统重新分配前,这部分数据还是可以找回来的。因此删除文件后要立即umount这个分区,这样做其实是为了让外界不再写入,当然我们也可以只将误删文件所在的分区设为readonly模式。

强调一遍,如果要保证数据恢复成功率较高,那么在发现误删之后,应当第一时间将被误删的文件所在的分区锁住(即将该分区设置为readonly或者umount该分区)。

extundelete的安装与使用

CentOS为例

  1. 安装
$ sudo yum -y install e2fsprogs e2fsprogs-libs e2fsprogs-devel  #安装依赖
$ wget https://astuteinternet.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
$ tar -xjvf extundelete-0.2.4.tar.bz2
$ cd extundelete-0.2.4
$ ./configure
$ sudo make 2>&1 | tee make.log
$ sudo make install 2>&1 | tee make_install.log
  1. 使用

    • 查找要恢复的文件所在的分区
    $ df -h
    
    Filesystem             1K-blocks     Used   Available Use% Mounted on
    /dev/sda1                 495844    64150      406094  14% /boot
    
    • 假设我们需要恢复的文件在/boot分区中,通过如下方式恢复误删的文件。
    $ extundelete /dev/sda1 --restore-file hosts   #恢复单个文件,恢复名为hosts的误删文件
    
    $ extundelete /dev/sda1 --restore-files test/  #恢复一个目录,恢复名为test的误删目录
    
    $ extundelete /dev/sda1 –-restore-all          #恢复整个分区

    注:上面的命令会在当前路径下新建一个RECOVERED_FILES文件夹,并将恢复成功的文件放置在这个文件夹中。

经过实际测试,–-restore-all恢复地比较成功,在初次删除后可以很好的恢复文件及目录结构。而恢复单独的文件或者目录则未成功。

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


如果Linux的文件系统为xfs或者其他类型,推荐恢复工具PhotoRec,该工具支持多种平台,包括Windows,macOS等,且比较简单使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值