ubuntu下恢复rm删除的数据
2015-11-13 08:26
323 查看
1. 论“备份”的重要性
今天手真快,Tab补全文件名后回车,昨天一天写的代码就被我remove了。虽然自己写了脚本备份系统和home目录,但系统是1天一备份,home是2天一次增量备份。又恰巧昨晚没有备份home,并且git也没有提交,欲哭无泪的感觉5555~~。被remove掉的文件其实是可以恢复的,删除命令只是在文件节点中作了删除标记,并不是真正清空内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。所以要想恢复磁盘信息,必须马上停止任何写磁盘操作。
我是将整个磁盘卸载下来,用转接线挂到同学笔记本上才恢复成功的,下面将介绍具体的恢复过程。
2. 恢复工具介绍
针对Linux下的EXT文件系统来说,常用的误删恢复工具有debugfs、
ext3grep、
extundelete等等。
extundelete是一个开源的数据恢复工具,支持ext3、ext4文件系统。
我的系统是Ubuntu15.04,文件系统是ext4。尝试了debugfs来恢复,但没有成功。如果文件系统不是ext4的同学可以尝试下该方式,这里有篇参考文档。
3. extundelete恢复文件
安装extundeletesudo apt-get install extundelete
任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用。
umount /dev/sdb2 mount -o remount,ro /dev/sdb2
如果删的文件和操作系统是在同一个分区上,就只有把硬盘卸下来,挂载到另一台主机上。我就是这么干的^_^。
在另一台主机上用
df -h查看挂载分区。我的分区是
/dev/sdb2。
在该主机上执行:
extundelete /dev/sdb2 --restore-file /home/zhangchengfei/server.scala
extundelete执行完毕后在当前目录生产一个
RECOVERED_FILES目录,里面即是恢复出来的文件。
如果想恢复某个文件夹的内容,可以使用下面命令:
extundelete /dev/sdb2 --restore-directory /hom/zhangchengfei/tmp
关于
extundelete更多的使用细节,可以用
extundelete -h进行查看,本文不再叙述。
4. 总结经验
其实良好的备份和同步习惯才是最重要的,绝对比恢复数据要更简单。常见的备份策略有tar,rsync,git等等。为了防止以后rm误删数据,还有种做法是自己重新定义
rm,每次不是直接删除文件或文件夹,而是将它们move到你指定的一个目录下存放。具体的实现可以上google搜索。
看这篇博客的朋友一定是遇到和我一样的窘境,祝好运O(∩_∩)O~~
【完】
相关文章推荐
- 路由器备份配置
- 备份线路的配置
- 数据库备份 SQLServer的备份和灾难恢复
- 简化SQL Server备份与还原到云工作原理及操作方法
- 使用cgroups来限制MySQL企业备份服务对资源的占用
- sqlserver2005打造自动备份的维护计划图解教程
- MySQL数据备份之mysqldump的使用详解
- 详解MySQL数据备份之mysqldump使用方法
- mysql备份与恢复详解
- 我的文档和QQ聊天记录备份与恢复技巧
- oracle备份恢复的具体方法
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- 重新安装2003操作系统的注意事项及备份方法
- 如何备份MySQL数据库
- 一个简单的MySQL备份Shell脚本
- 用户管理的备份(一致性备份、非一致性备份、脱机备份、联机备份)
- 史上最全的MySQL备份方法
- 远程镜像与备份SVN服务器的方法小结第1/2页
- php 备份数据库代码(生成word,excel,json,xml,sql)
- cwrsync 四步实现windows备份