以前总是在网上看到很多人问怎么恢复 Linux 分区下误删的文件。当时并没有仔细关注过,真没想到昨天这事摊我身上了。

大致说说这场悲剧的整个过程吧(为了避免一些不必要的麻烦,本文中的文件夹名和设备名都作了修改)

当时我的工作目录是 /source/needrecovered 。$ pwd/source/needrecovered

原本打算清空其中的一个子文件$ rm -rf canbedeleted/*

却把命令给打错了。$ rm -rf canbedeleted/ *

当时我琢磨着今天怎么删个小文件夹这么慢呢。等我仔细看了下命令,反应过来的时候,已经太迟了。整个工作目录被清空了

没辙了,只能先到网上找找解决方案了,网上大致提到的方法有两种:一种是利用 debugfs ;第二种是利用 ext3grep。第一种方法,我尝试了若干次都以失败告终,第二种成功了。但是统一的是:两种方法首先提到的都是将对该分区进行操作的应用先全部关闭,具体如下:

以下的操作尽量使用 root 操作,以提高数据恢复的成功率#该命令用于列出操作该分区的进程fuser -v -m /source#如果没有很重要的进程,利用下面的命令将其全部 kill 掉fuser -k -v -m /source

执行上面那个命令的时候,务必要将你的工作目录切换到 /source 以外,否则你的 sshd 会被 kill 掉

这样子可以达到两个好处:防止新的文件操作影响数据的恢复

方便对磁盘或者分区进行进一步的操作

如: mount 和 umount

接下来我们看看磁盘分区情况$ df -ThFilesystem    Type    Size  Used Avail Use% Mounted on/dev/sda8     ext3    7.9G  6.3G  1.2G  84% /source/dev/sdb1  fuseblk    299G  266G   33G  90% /data/

需要恢复的分区是 /dev/sda8 ,挂载点是 /source 。

先将此分区卸载,并在 /data 分区建立一个用于存储备份数据的文件夹umount -v /sourcemkdir -p /data/recovery

现在轮到主角登场了,先去下载一份 ext3grep 的源码,并安装cd /data/recovery#此链接地址以官网最新版本为准wget http://ext3grep.googlecode.com/files/ext3grep-0.10.2.tar.gztar xfz ext3grep-0.10.2.tar.gzcd ext3grep-0.10.2

./configure --prefix=/data/recoverymakemake install

接下来就进入正式的恢复工作了,先对需要恢复的磁盘进行扫描。cd /data/recoverynohup /data/recovery/bin/ext3grep /dev/sda8 --ls --inode 2 建议使用 nohup 和 &,因为如果分区很大的话耗时比较长

扫描完毕后, /data/recovery 中会出现两个分别名为 c0d2.ext3grep.stage1 和 c0d2.ext3grep.stage2 的文件。前者可以直接忽略,后者里面保存着可以被恢复备份的文件名。

由于我需要备份的文件很多,几十G,就用下面这个命令进行全部恢复cd /data/recoverynohup /data/recovery/ext3grep/bin/ext3grep /dev/sda8 --restore-all 建议使用 nohup 和 &,因为如果分区很大的话耗时比较长

需要注意的是,restore-all 参数会将整个磁盘所有文件(已删除可恢复的文件和未被删除还存在的文件)进行恢复和备份处理,所以请确认你的存放恢复文件的分区有足够的空间

如果仅仅是恢复几个文件的话,建议使用 restore-file 参数

备份的文件会存放在工作目录的名为 RESTORED_FILES 的文件夹里,本文中就是 cd /data/recovery/RESTORED_FILES

最后补充一句话:慎用 rm -rf 。

较安全的rm脚本

linux删去分区的文件夹,如何恢复 Linux 分区下误删的文件?相关推荐

  1. asset文件夹路径 unity_Unity Assets目录下的特殊文件夹名称

    1.隐藏文件夹 以.开头的文件夹会被Unity忽略.在这种文件夹中的资源不会被导入,脚本不会被编译.也不会出现在Project视图中. 2.Standard Assets 在这个文件夹中的脚本最先被编 ...

  2. php 删除文件夹及文件夹,php删除一个路径下的所有文件夹和文件的方法

    php遍历一个文件夹内的所有文件和文件夹,并删除所有文件夹和子文件夹下的所有文件的代码,通过递归方式实现达到清空一个目录的效果,代码简单实用. 也适合在thinkphp中清理缓存,在thinkphp中 ...

  3. cmd命令,进入某文件夹,查看该目录下的所有文件

    1  cd..   返回上一级目录 2  dir     查看该目录下的所有文件

  4. 误删u盘文件夹怎么恢复

    误删u盘文件夹怎么恢复?在我们下班前无法及时完成的文件,直接用U盘拷贝带回家这是在正常不过的事.毕竟U盘便于携带,即插即用,很适合作为我们的移动存储设备.但有得必有失,存进去多了,意外情况就很容易发生 ...

  5. 如何恢复 Linux 分区下误删的文件?

    以前总是在网上看到很多人问怎么恢复 Linux 分区下误删的文件.当时并没有仔细关注过,真没想到昨天这事摊我身上了. 大致说说这场悲剧的整个过程吧(为了避免一些不必要的麻烦,本文中的文件夹名和设备名都 ...

  6. linux脚本剪切文件覆盖了怎么恢复,剪切的文件如何恢复 被剪切或删除的文件夹怎么恢复...

    剪切的文件如何恢复?有网友跟脚本之家提问说如果电脑将一些文件剪切到移动硬盘上使用了,可是移动硬盘不小心丢掉了.那么能不能在电脑上恢复被剪切掉的文件,因为文件对它很重要.所以小编就在网上查找被剪切的文件 ...

  7. Mac OS下文件夹(带linux部分)

    详解MAC硬盘中各个文件夹(增加linux部分参考 ★详解MAC硬盘中各个文件夹 显示隐藏文件的方法 用"终端",好处是不需要任何第三方工具,坏处是如果命令输错了,会有副作用.命令 ...

  8. 不小心删除文件夹怎么恢复,怎么恢复误删文件?

    不小心删除文件夹怎么恢复?居家办公作息不稳定,导致我最近上班的时候总是犯错,比如保存或者查看某些本周要用的文件时,一个不留神就将其删除了.这些文件数据都是经过一定时间的整理才做出来的,重新做的话很浪费 ...

  9. linux目录为root所有文件,linux获取文件所有目录/文件夹的例子linux操作系统 -电脑资料...

    下面我给大家整理了两种比较实用的方法,如我们可以使用dirname来获取文件路径或者使用shell命令来获取路径,希望例子对大家有帮助, 方式一:使用" dirname" 去获得( ...

最新文章

  1. 信通院AI白皮书:硬核干货一文打尽,从技术流派到应用趋势【附下载】
  2. Calling JNI Functions with Java Object Arguments from the Command Line
  3. Linux 列出文件列表命令ls
  4. flume快速入门及应用
  5. 流量管理系统产品选型常见问答(FAQ)
  6. 前端常用插件、工具类库汇总,新手必收藏!!!
  7. 年轻人选择创业时,最好避开门槛低的行业
  8. 事情没有想象中那么难--JX官网首页3D粒子效果
  9. springboot 妙启动_SpringBoot启动时执行指定任务
  10. 微信公众平台开发(51)会员卡
  11. DDOS入门介绍(一):DDOS简介
  12. 基于STM32设计的酒驾报警系统
  13. w7文件加密提示没启用服务器,win7文件夹设置密码没有密钥提示该怎么解决
  14. tbody 不能充满table的原因
  15. 电脑磁盘数据错误(循环冗余检查)的原因以及解决办法
  16. Sublime Text的使用代码块安装的模块
  17. 【新知实验室-TRTC开发】实时音视频之集美真心话
  18. 点到点轨迹规划——三次曲线,五次曲线,梯形曲线,S曲线
  19. 删除数组中的重复项(保留最后一次出现的重复元素并保证数组的原有顺序)
  20. 小鸟云管理终端(VNC连接)常见问题

热门文章

  1. 虚指针的用法(原出处//http://blog.csdn.net/haoel/article/details/1948051)
  2. 【体验】ESP32-CAM可能是最便宜的“监控”方案,ESP32-CAM程序下载调试
  3. BRCM5.02编译一 : 缺少工具链路
  4. 使用matlab模拟、检验和估计泊松过程
  5. [20181015]为什么是3秒.txt
  6. Nginx反向代理WebSocket
  7. 一句话搞定python六剑客
  8. MS CRM 2011 Quick Find Active View
  9. android 从零单排 第一期 按键显示helloworld
  10. #.NET分别以GET和POST方式抓取远程页面