| 关键词: 文件 data source recovery grep 命令 备份 磁盘 ext 文件夹 |
以前总是在网上看到很多人问怎么恢复 Linux 分区下误删的文件。当时并没有仔细关注过,真没想到昨天这事摊我身上了。 大致说说这场悲剧的整个过程吧(为了避免一些不必要的麻烦,本文中的文件夹名和设备名都作了修改) 当时我的工作目录是 /source/needrecovered 。 $ pwd 原本打算清空其中的一个子文件 $ rm -rf canbedeleted/* 却把命令给打错了。 $ rm -rf canbedeleted/ * 当时我琢磨着今天怎么删个小文件夹这么慢呢。等我仔细看了下命令,反应过来的时候,已经太迟了。整个工作目录被清空了 没辙了,只能先到网上找找解决方案了,网上大致提到的方法有两种:一种是利用 debugfs ;第二种是利用 ext3grep 。第一种方法,我尝试了若干次都以失败告终,第二种成功了。但是统一的是:两种方法首先提到的都是将对该分区进行操作的应用先全部关闭,具体如下: 以下的操作尽量使用 root 操作,以提高数据恢复的成功率 #该命令用于列出操作该分区的进程 执行上面那个命令的时候,务必要将你的工作目录切换到 /source 以外,否则你的 sshd 会被 kill 掉 这样子可以达到两个好处:
接下来我们看看磁盘分区情况 $ df -Th 需要恢复的分区是 /dev/sda8 ,挂载点是 /source 。 先将此分区卸载,并在 /data 分区建立一个用于存储备份数据的文件夹 umount -v /source 现在轮到主角登场了,先去下载一份 ext3grep 的源码,并安装 cd /data/recovery 接下来就进入正式的恢复工作了,先对需要恢复的磁盘进行扫描。 cd /data/recovery 扫描完毕后, /data/recovery 中会出现两个分别名为 c0d2.ext3grep.stage1 和 c0d2.ext3grep.stage2 的文件。前者可以直接忽略,后者里面保存着可以被恢复备份的文件名。 由于我需要备份的文件很多,几十G,就用下面这个命令进行全部恢复 cd /data/recovery 需要注意的是,restore-all 参数会将整个磁盘所有文件(已删除可恢复的文件和未被删除还存在的文件)进行恢复和备份处理,所以请确认你的存放恢复文件的分区有足够的空间 如果仅仅是恢复几个文件的话,建议使用 restore-file 参数 备份的文件会存放在工作目录的名为 RESTORED_FILES 的文件夹里,本文中就是 cd /data/recovery/RESTORED_FILES 最后补充一句话:慎用 rm -rf 。 |
| 本文出处: https://www.toutiao.com/i6706243271280034308/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|