ubuntu下使用extundelete恢复使用rm删除的文件

一、原因

我这次文件误删主要是因为,在写Makefile文件时,没有考虑周全,在执行make clean时删除了源文件,总之虚惊一场。庆幸的是我使用的删除命令是rm,如果使用shred执行删除的话,是无法恢复的。

二、解决方案

通过网络上搜索,发现了好几种解决方案,有使用debugfs的,有使用ext3grep,有使用extundelete的。因为我的文件系统是ext4格式的,使用debugfs和ext3grep都没成功,于是接着尝试extundelete。不过无论使用什么样的工具,要做的第一步就是要不要再往误删文件所在的分区上进行写操作。并且不要急于关机,因为文件系统的日志是恢复文件关键,但是这个关机对文件系统的日志是否会有影响还没有验证。

恢复步骤如下:

  • 1)卸载误删文件所在的分区

使用umount命令如下:

umount ${dev_describer}

其中dev_describer是磁盘分区的设备描述符,格式如:/dev/sda1

  • 2)安装extundelete

在Ubuntu下可以使用以下命令进行安装:

sudo apt-get install extundelete

其它Linux系统可以下载extundelete的源包,进行编译安装,无非是confiure/make/make install

  • 3)使用extundelete进行文件恢复

我使用到的命令如下:

  • (1)查找已经删除的文件,通过inode号来查找,命令如下:
extundelete --inode ${inode_num} ${dev_describer}

其中,inode_num是文件系统的inode号,dev_describer是误删文件所在的磁盘分区的设备描述符

如果不知道误删文件inode号,就直接填2,它会从根目录开始找,但是它的显示结果只会显示一层目录的inode号。关键是记住自己文件所有的路径,然后记下上述命令执行后显示的文件夹的inode号,然后一层层的找,误删文件,这个方法有点麻烦,但是很有效。

  • (2)恢复文件,通过(1)找到误删文件inode号,就可以使用如下的命令进行文件恢复:
extundelete ${dev_describer} --restore-inode ${inode}

其中,dev_describer意义与(1)中的描述一致;inode是指误删文件的inode号

当然,如果记得误删文件的完整路径,那也可以直接通过文件路径来恢复文件,但是前提是要记得这个路径名,使用的命令如下所示:

extundelete ${deb_describer} --restore-file ${path}

其中,dev_describe意义与(1)中的描述一致,path是误删文件的完整路径

对于extundelete其它的命令参数的用法,可以通过如下命令来了解学习:

extundelete --help

三、参考文献

  1. Linux man手册
  2. http://www.linuxyunwei.com/2012/08/ext4%E4%B8%AD%E6%81%A2%E5%A4%8D%E4%BD%BF%E7%94%A8rm%E5%91%BD%E4%BB%A4%E8%AF%AF%E5%88%A0%E9%99%A4%E7%9A%84%E6%96%87%E4%BB%B6/
  3. http://qyiyunso.blog.163.com/blog/static/350776862010826115537113/

ubuntu下使用extundelete恢复使用rm删除的文件相关推荐

  1. extundelete 恢复Linux服务器删除的文件

    Ubuntu 下使用失误用 rm -fr 将一个目录删除,忘了将目录中的一个文件拷贝出来,以前犯过同样的错误,在记忆中有一个网文写的不错,翻找出来,使用 extundelete将删除的文件恢复了. 本 ...

  2. 1、linux中恢复使用rm删除的文件

    直接来硬货 1.查看删除的当前文件夹位于那个区: df -h /你的路径/ 会出现文件所在的区的详细地址,如下: 文件系统 容量 已用 可用 已用% 挂载点 /dev/nvme0n1p2 234G 1 ...

  3. 怎么恢复苹果回收站删除的文件呢?

    在我们日常生活中,文件删除是一个非常简单的基本操作.同时也是我们不可或缺的操作之一.毕竟电脑上的存储空间有限,而文件占用的空间是越来越大,只能通过删除一些没用的文件来解决空间不足这一问题.但有时我们会 ...

  4. linux中rm删除的文件是否可以恢复,Linux下用rm删除的文件的恢复方法

    Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2008-08/14744.htm lin ...

  5. 恢复rm删除的文件(ext3

    恢复rm删除的文件(ext3 wget http://ext3grep.googlecode.com/files/ext3grep-0.10.2.tar.gz tar zxf ext3grep-0.1 ...

  6. linux中用rm删除的文件如何恢复

    Linux中用rm删除的文件可以使用文件恢复工具如testdisk.photorec等来尝试恢复.这些工具可以扫描磁盘并尝试找回已删除的文件.但是,并不能保证能够完全恢复文件,因为删除文件后,磁盘上的 ...

  7. linux删除 0 字节文件,如何恢复 Linux 上删除的文件

    要想恢复误删除的文件,必须清楚数据在磁盘上究竟是如何存储的,以及如何定位并恢复数据.本文从数据恢复的角度,着重介绍了 ext2 文件系统中使用的一些基本概念和重要数据结构,并通过几个实例介绍了如何手工 ...

  8. 如何恢复 Linux 上删除的文件

    转自:http://blog.csdn.net/chinalinuxzend/article/details/2591694 如何恢复 Linux 上删除的文件 来源:developerWorks 中 ...

  9. 如何恢复 Linux 上删除的文件:ext2

    要想恢复误删除的文件,必须清楚数据在磁盘上究竟是如何存储的,以及如何定位并恢复数据.本文从数据恢复的角度,着重介绍了 ext2 文件系统中使用的一些基本概念和重要数据结构,并通过几个实例介绍了如何手工 ...

最新文章

  1. 面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
  2. 【文本分类】Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification
  3. 我用ASP.NET缓存之OutputCache
  4. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等...
  5. socket编程与利用进程进行多并行连接
  6. 金蝶CLOUD星空云tempdb过大处理方法
  7. hdu 1047 Integer Inquiry
  8. spring elasticsearch 按条件删除_SpringBoot2 高级案例(08):整合 ElasticSearch框架,实现高性能搜索引擎...
  9. mysql 回退查询_MySQL数据库:第十章:分页查询
  10. C语言中二维数组移动一行,二维数组对每一行进行排序。。
  11. close on exec标志位
  12. [Angularjs]angular ng-repeat与js特效加载先后导致的问题
  13. 字符串匹配问题 ----- KMP算法
  14. 我的github教程
  15. php tcp获取数据_php建立tcp服务请求数据双向通信问题
  16. Android源码学习
  17. 中职计算机说课稿三篇,中职计算机说课稿三篇.docx
  18. 基于stm32的100KV高压发生器 倍压电路
  19. 2018电大计算机操作题怎么评分,2018年度电大专科计算机应用基础学习知识win7系统上机操作技巧题操作技巧.doc...
  20. 面试前应该怎么准备面试过程才不会紧张呢

热门文章

  1. 手机作为电脑扩展副屏
  2. WiGig 和 WirelessHD 和 802.11ac
  3. jpg格式怎么转换成plt格式的_CAD图纸如何转换成清晰的JPG格式图片?
  4. 欢迎加入过往记忆大数据知识星球
  5. QT5+OpenGL es2 + eglfs交叉编译安装(RK3399)
  6. WORD文档转为EXCEL表格
  7. MySQL报错、错误代码: 1005 Can‘t create table ‘数据库名.表名‘ (errno: 150) ?
  8. 怎么在html使用百度商桥,百度商桥怎么使用 百度商桥软件使用教程
  9. 使用函数实现两个数的交换(C语言)
  10. DSP外扩SRAM的应用测试心得体会