设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
运维技术 —— LinuxSir.cn
›
网络技术\网络安全讨论
›
恢复被删除文件
返回列表
查看:
1798
|
回复:
3
恢复被删除文件
[复制链接]
wheel
wheel
当前离线
积分
995
IP卡
狗仔卡
发表于 2003-6-28 00:53:55
|
显示全部楼层
|
阅读模式
前些天被我误删掉的 home directory 下的几千个文件,经过本人数天的连续奋战,现绝大部分已恢复,算是奇迹也不是奇迹。
删掉文件其实只是将指向数据块的索引点 (information nodes) 释放,只要不被覆盖,数据其实还在硬盘上,关键在于找出索引点,然后将其所指数据块内的数据抓出,再保存到另外的分区。
我先在网上查有关 linux undelete 的信息,找到一个 ext2fs-undeletion 的mini-Howto,后发觉在RH6.2的 /usr/doc/HOWTO 内也有,按它的方法,先将被删掉数据的盘区 umount 掉(防止写盘覆盖被删除的数据,显然这一步在误删数据后做得越快越好,尤其是对多人使用的计算机),然后查文件系统中哪些索引点最近被释放:
#debugfs /dev/hda6 (my 'home' partition)
debugfs: lsdel
即给出相应信息,包括索引点,文件属主,大小,删除日期等。也可将结果输出到一个文件中
debugfs: quit
# echo lsdel | debugfs /dev/hda6 > lsdel.out
还可用 debugfs 中 stat 查看某一索引点的详细信息:
debugfs: stat <148003>
尤其注意其数据块是否连续!
然后将该索引点所指数据块内的数据抓出并存到另一盘区:
debugfs: dump <148003> /dosd/tmp/recovered.001
按该 mini-Howto 的说法,以上方法只使用于大小不超过 12 个 block 的文件,对于超过 12 个 block 的文件,由于 unix 是将数据分段保存的,需要将各段数据分别取出再拼接,所以比较麻烦。但我用 stat 检查的结果,大文件的数据块也都是紧挨着的,并没有被分段, 于是我试着用同样的方法将文件 dump 出来,发觉结果完全正确,对六百多兆的大文件也适用!不知道 linux 就是连续保存文件的,还是因为我的计算机只有我一个用户而使然,反正我用上述简单方法将我误删的绝大部分文件都恢复了。
需要说明的一点是,恢复的文件是没有保留文件名的,需要你查看文件内容后,再重新命名。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
finux
finux
当前离线
积分
201
IP卡
狗仔卡
发表于 2003-7-2 00:53:39
|
显示全部楼层
好,正是我所需要的.但好像是ext2的,不知在ext3里行不行?
回复
支持
反对
使用道具
举报
显身卡
Snoopy
Snoopy
当前离线
积分
7263
IP卡
狗仔卡
发表于 2003-7-2 08:44:09
|
显示全部楼层
这个一次我都没成功过,,,老是lsdel显示0个文件,,,,,,
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-7-2 23:40:31
|
显示全部楼层
debugfs只适合ext2,
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
shell文档中心
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表