Linux下恢复误删除的文件
原文地址:http://www.libenfu.com/vim-分区下误删的文件,恢复文件全记录-转
当时我的工作目录是/source/needrecovered。
$ pwd
/source/needrecovered
原本打算清空其中的一个子文件,
$ rm -rf canbedeleted/html
却打成如下命令:
$ rm -rf canbedeleted/ *
当时我琢磨着今天怎么删个小文件夹这么慢呢。等我仔细看了下命令,反应过来的时候,已经太迟了,整个工作目录被清空了 。
没辙了,只能先到网上找找解决方案了,网上大致提到的方法有两种:一种是利用debugfs;第二种是利用ext3grep。
第一种方法,我尝试了若干次都以失败告终,第二种成功了。但是相同的是:两种方法首先提到的都是将对该分区进行操作的应用先全部关闭,具体如下:
以下的操作尽量使用root操作,以提高数据恢复的成功率。
#该命令用于列出操作该分区的进程
fuser -v -m /source
#如果没有很重要的进程,利用下面的命令将其全部 kill 掉
fuser -k -v -m /source
执行上面命令的时候,务必要将你的工作目录切换到/source以外,否则你的sshd会被kill掉。
这样子可以达到两个好处
1) 防止新的文件操作影响数据的恢复
2) 方便对磁盘或者分区进行进一步的操作,如:mount和umount
接下来我们看看磁盘分区情况:
$ df -Th
Filesystem 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 /source
mkdir -p /data/recovery
现在轮到主角登场了,先去下载一份ext3grep的源码,并安装:
cd /data/recovery
#此链接地址以官网最新版本为准
wget http://ext3grep.googlecode.com/files/ext3grep-0.10.2.tar.gz
tar xfz ext3grep-0.10.2.tar.gz
cd ext3grep-0.10.2
./configure --prefix=/data/recovery
make && make install
接下来就进入正式的恢复工作,先对需要恢复的磁盘进行扫描。
cd /data/recovery
nohup /data/recovery/bin/ext3grep /dev/sda8 --ls --inode 2 &
#建议使用 nohup 和 &,因为如果分区很大的话耗时比较长
扫描完毕后,/data/recovery中会出现两个分别名为c0d2.ext3grep.stage1和c0d2.ext3grep.stage2的文件。前者可以直接忽略,后者里面保存着可以被恢复备份的文件名。
由于我需要备份的文件很多,几十G,就用下面这个命令进行全部恢复。
cd /data/recovery
nohup /data/recovery/ext3grep/bin/ext3grep /dev/sda8 --restore-all &
#建议使用 nohup 和 &,因为如果分区很大的话耗时比较长
需要注意的是,restore-all参数会将整个磁盘所有文件(已删除可恢复的文件和未被删除还存在的文件)进行恢复和备份处理,所以请确认你的存放恢复文件的分区有足够的空间。
如果仅仅是恢复几个文件的话,建议使用restore-file参数 备份的文件会存放在工作目录的名为RESTORED_FILES的文件夹里,本文中就是cd /data/recovery/RESTORED_FILES。
Linux下恢复误删除的文件的更多相关文章
- linux下恢复误删除的文件方法(ext2及ext3)
linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,d ...
- 恢复Linux下被误删除的文件(笔记)
恢复Linux下被误删除的文件 [root@xuegod63 ~]# mount /dev/cdrom /mnt/ 分一个区:sda4 查找:extundelete 分一个区:sda4 [root ...
- linux下rm误删除数据库文件的恢复方法
在linux redhat 5.4版本,rm误删除数据库文件的恢复过程分享.测试没有问题,可用. 1.首先测试rm 误删除数据库文件 [oracle@primary dbwdn]$ ll total ...
- 如何在Linux上恢复误删除的文件或目录
Linux不像windows有那么显眼的回收站,不是简单的还原就可以了.linux删除文件还原可以分为两种情况,一种是删除以后在进程存在删除信息,一种是删除以后进程都找不到,只有借助于工具还原,这里分 ...
- linux下生成core dump文件方法及设置
linux下生成core dump文件方法及设置 from:http://www.cppblog.com/kongque/archive/2011/03/07/141262.html core ...
- linux下分卷tar.bz文件的合并并解压缩
linux下分卷tar.bz文件的合并并解压缩 例: linux.tar.bz2.001;linux.tar.bz2.002;linux.tar.bz2.003; 首先 cat linux.tar.b ...
- linux下php上传文件注意
linux下php上传文件注意1.修改上传目录权限linux 修改某目录下所有所有子目录权限chmod -R 777 html修改某目录为任何用户都用写读执行权限chmod a+rwx html2.设 ...
- Linux下遍历目录及文件,更改权限
Linux下遍历目录及文件,更改权限 引言: 我在Linux下搭建android时,将eclipse及sdk复制到/usr/下时,总会出现无法读,无法写写样的问题. 解决方案: 有两个方案: 一.将复 ...
- linux下java调用.so文件的方法1: JNI
摘自http://blog.163.com/squall_smile/blog/static/6034984020129296931793/ https://my.oschina.net/simabe ...
随机推荐
- GB和GIB的区别
天啦撸,这么多年才知道这个东西! Gibibyte(giga binary byte)是信息或计算机硬盘存储的一个单位,简称GiB.由来“GiB”,“KiB”,“MiB”等是于1999年由国际电工协会 ...
- jquery换一批的写法
jquery换一批的写法 <pre> <img src="{$yuming}/images/3/huanyipi.png" alt="" cu ...
- C#基础知识学习 linq 和拉姆表达式二
- OpenCV Python 4.0安装
1.安装OpenCV-Python 如果你是第一次使用OpenCV Python开发包,想要安装OpenCV Python4.0只要执行如下命令行即可: pip install opencv-pyth ...
- ftp操作命令
原文:https://www.cnblogs.com/tssc/p/9593614.html 1.登陆ftp服务器 ftp [IP] [PORT] # 登陆ftp服务器,本机登陆可以不写IP实例演示: ...
- JVM -- 对象的概述和引用
一.概述 说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做java语言的伴生产物,然后GC出现历史比java久远. GC需要完成的3件事情: 1.哪些内存需要回收 ...
- [MA] 有关 Likelihood
当提到 Linear Regression 或是 Logistic regression 等关键词时,都会涉及一个概念,叫做 Likelihood Function 以及 Maximum Likeli ...
- scrapy 爬取纵横网实战
前言 闲来无事就要练练代码,不知道最近爬取什么网站好,就拿纵横网爬取我最喜欢的雪中悍刀行练手吧 准备 python3 scrapy 项目创建: cmd命令行切换到工作目录创建scrapy项目 两条命 ...
- WUST Oracle数据库 实验一实验二
链接:https://pan.baidu.com/s/1hCzvTLzXhyItP2gD_69gzg 提取码:j68f 复制这段内容后打开百度网盘手机App,操作更方便哦
- CSS定位以及z-index属性(层叠性)的详解(转)
https://blog.csdn.net/weixin_41342585/article/details/79484879