linux rm文件恢复总结
昨天意外删除了一些重要文件,经过一天左右的时候恢复,成功实现rm恢复。在这里总结一下方法。当然防范这种情况还是最重要的,可以参考之前写过的linux rm安全
恢复条件和一些准备:
一、保护数据。
先提点删除恢复常识:文件删除后,虽然没有清除文件内容,但是文件所占的存储空间已经允许被申请写入,所以要恢复文件的话,必需保证不要再向文件所在分区写数据,我的是虚拟机,直接kill进程了,非虚拟机可以umount分区,如果是主分区,直接断电。对于主分区,安全起见用livecd将硬盘只读挂载后操作。如果是虚拟机,即使是要恢复根分区,也可以不用livecd,通过复制硬盘镜像的方式生成多份硬盘来实现还原。将复制的硬盘添加到虚拟系统里,这样系统里就有两份硬盘了。但是我在尝试时发现,虽然可以正确识别为a和b两块硬盘,但如论启动哪个系统,都是从一块硬盘加载的,可能是boot信息的问题。
二、linux LVM文件系统
这个是逻辑卷管理,不是像ntfs、ext3一样的文件系统,所以不能直接挂载,因为一个lmv下面可能对应着多个逻辑分区,我们一次只能挂载其中的一个。所以要根据lvm找到逻辑分区。
1.“fdisk -l”
查看连接的硬盘是不是lvm,如果不是,则可以跳过这一部分。
fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
2.如果是,安装lvm2
自动安装:“apt-get install lvm2”(可能不提供包),或者“yum install 包名”安装(可能不提供包)
直接下载:http://sources.redhat.com/lvm2/
3.“vgscan”,扫描逻辑分区
root@ubuntu:~# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
4.“lvscan”, 查看逻辑分区,状态未激活
root@ubuntu:~# lvscan
inactive '/dev/VolGroup00/LogVol00' [6.88 GiB] inherit
inactive '/dev/VolGroup00/LogVol01' [1.00 GiB] inherit
5.“vgchange -a y” 激活
6.“lvscan” 查看状态
root@ubuntu:~# lvscan
ACTIVE '/dev/VolGroup00/LogVol00' [6.88 GiB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.00 GiB] inherit
现在就可以通过来挂载指定的分区了。
参考:http://apps.hi.baidu.com/share/detail/19631288
三、linux源码安装
1. ./configure 如果失败,刚是缺少依赖库,下载安装所需库即可。
2. make 编译
3. make install 安装
恢复方法
方法一:使用debugfs(不适用我的情况,没有严格测试恢复,只列出了node值)
debugfs是调试文件系统的,可以查看文件的node值,根据文件系统Journal日志找到数据所在的块,将指定块存放起来即可。
适用范围:删除后,未关机,因为关机后Journal会丢失。
1。“umount 设备描述符文件”, 卸载指定分区
2。“debugfs 设备描述符文件”,启动debugfs
3。“cd 目录”,进入删除文件所在指定的目录
4。“ls -ld”,查看文件node值。如果没有你要的文件,那么很遗憾,它已经被破坏了。
5。“dumplog -i<node值>” 获取日志信息,找到块信息,示例Blocks: (0+1): 10234
6。保存块的数据,示例dd if=/dev/sda5 of=/tmp/test.txt bs=4096 count=1 skip= 10234
参考http://linux.net527.cn/Linuxwendang/xitongguanliyuan/16884.html
方法二:使用ext3grep
说明:使用方法网上有,但我在使用时并没有成功,因为它没有识别出lvm逻辑分区。
适用:lmv分二个分区我失败了,所以觉得没有用lmv分多个逻辑分区的应该适用。不可以恢复目录,只以恢复文件
提示:在要保存恢复文件的目录操作,确保空间足够,如果inode值为2,则会将整体分区数据保存而不仅是已被删的
1。下载安装ext3grep
http://code.google.com/p/ext3grep/
2。如果是lvm,则按上面提到的方式激活逻辑分区。
3。ext3grep --ls --inode node值 (node值是你要恢复的文件所在目录的node值,可以用debugfs查看,2则是分区根目录)
3。恢复目录里面的一个文件
ext3grep /home/sheng/file --restore-file del/1 (注:del在分区根目录下)
恢复所有文件
ext3grep /home/sheng/file --restore-all
参考:http://linux.chinaunix.net/techdoc/system/2009/07/07/1122061.shtml
方法三:使用extundelete (最有效方法)
extundelete是基于ext3grep的软件,提供方便的命令,可以恢复文件,而且对lmv逻辑分区也有效,我就是用这种方法还原的数据。
适用:删除数据未被破坏的数据
提示:在要保存恢复文件的目录操作,确保空间足够,如果inode值为2,则会将整体分区数据保存而不仅是已被删的
1。下载安装extundelete
http://extundelete.sourceforge.net/
2。如果是lvm,用上面提到的方法激活逻辑分区。
3。extundelete 分区设备 参数
常用参数:--restore-all 全恢复到当前目录下
--restore-inode 值 按inode恢复
--restore-files filename
--restore-directory path/of/directory
参考:http://extundelete.sourceforge.net/
linux rm文件恢复总结相关推荐
- linux找回rm的文件夹,Linux rm 文件恢复
Linux下删除命令 rm 大家肯定是熟悉得不能再熟悉了,然后有时候却阴沟里翻船不小心删除了某些重要的文件,想死的心都有了....现在我们就来看看被误删除的文件要如何恢复? Linux文件系统 Lin ...
- linux 误删文件恢复
linux 误删文件恢复 文档太给力了!误删了几个重要文件,抖抖嗦嗦偷偷恢复了,救了我!!! http://jingyan.baidu.com/article/2f9b480d6c2bcd41cb6c ...
- linux rm 文件找回_linux下执行rm -rf命令后如何恢复
果真感觉蛋疼了,欲哭无泪啊!写了一天的成果,想着把之前备份的文件删除呢,结果把刚写完的删了. 国外著名linx管理员守则中有这么一条:"慎用rm -rf命令,除非你知道此命令将带来什么后果. ...
- linux重启文件被删除,linux 误删文件恢复方法(debugfs)
应用linux自带工具debugfs恢复误删文件方法演示 1.创建一个文件写入内容并删除 cj@cj-virtual-machine:~/Documents/debugfs_example$ vim ...
- Linux下文件恢复
接着上一个业务,关于Linux下文件丢失的问题, 之前的文件丢失是因为存放在/var/tmp下,被系统默认清理了,需要恢复 当然如果用户手动清理的话,如 : rm 删除, 那么都可以使用下面的方式恢复 ...
- linux mysql 文件恢复_linux下误删数据文件恢复
linux下文件被删除可以用很多工具进行恢复,例如undelete(适合ext2,ext3).giis(不能恢复安装giis之前的文件).ext3grep(仅限ext3).R-linux(支持ext3 ...
- linux内核文件恢复,linux下系统文件恢复
当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容. 假如由于误操作将/var/log/messages文件删除掉 ...
- linux rm 文件找回_linux rm -rf * 文件恢复记
手太快,肠子都毁清了.本来是删除一个文件 rm path/myfile.txt 结果不知为何加了个*,变成了 rm path/myfile.txt * 赶紧ls,发现所有代码都化为了乌有,还没提交,还 ...
- linux rm 文件找回_linux rm -rf 删除文件之后的恢复办法
记录我尝试恢复rm命令删除文件之后的恢复的三种办法. 先不管使用哪种办法,网上找到的主流的都是基于inode的,所以,在文件被删除后,马上挂起挂载盘只允许读操作,拒绝写操作是第一要义. 第一种 误删文 ...
最新文章
- linux id 命令 显示用户id和组id信息
- [C++调试笔记]执行声明的读写文件操作
- 创建hadoop用户并配置ssh免密码登录
- delphi dxBarManager 的dxBarEdit 输入问题
- 26 FI配置-财务会计-外币评估-定义评估方法
- 解决hibernate双向关系造成的一方重复执行SQl,或者死循环的问题
- [Scrum] 12.22
- 如何在博客园中自定义导航菜单
- 设计模式学习一:strategyPattern
- C语言代码自动生成工具
- 2018年中国区块链产业发展白皮书(附PDF下载)
- DSP重新上电程序不能运行
- 米家扫地机器人按键没反应_小米扫地机系统重置键在哪?
- DotNetBar 14中文版
- PCB Layout 中的直角走线、差分走线和蛇形线
- 汉诺塔移动次数递归算法c语言,谁知道C语言汉诺塔递归算法及其详细注释?
- Assembler - 循环程序设计
- linux dd 刻录光盘,使用dd命令制作U盘启动盘wodim刻录光盘cd dvd
- 手脱ASPack v2.12
- 扭曲丛林服务器未响应,LOL等级最高玩家已246级 狂刷扭曲丛林攒经验