QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3765|回复: 15

请问用rm删除的文件如何恢复?

[复制链接]
发表于 2004-5-9 18:06:40 | 显示全部楼层 |阅读模式
请问用rm删除的文件如何恢复?
发表于 2004-5-9 18:32:36 | 显示全部楼层
无法恢复   
回复

使用道具 举报

 楼主| 发表于 2004-5-9 18:36:27 | 显示全部楼层
我用rm--help说可以恢复,但不知道怎么恢复
回复

使用道具 举报

发表于 2004-5-9 19:37:33 | 显示全部楼层
看看这文章: http://www.ourlinux.net/Article_show.php?id=720

以下是原文内容:
关于恢复硬盘被删除文件

作者:clown 日期:2003-08-25 22:34:36 浏览次数:19


--------------------------------------------------------------------------------


前些天被我误删掉的 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 就是连续保存文件的,还是因为我的计算机只有我一个用户而使然,反正我用上述简单方法将我误删的绝大部分文件都恢复了。
需要说明的一点是,恢复的文件是没有保留文件名的,需要你查看文件内容后,再重新命名。
靠人不如靠己,当初没有轻易放弃看来是正确的,尽管我有少量备份。不过经过
这场"灾难",本人的指法倒是又熟练了不少:几千个文件得一个一个恢复!


--------------------------------------------------------------------------------
回复

使用道具 举报

 楼主| 发表于 2004-5-11 19:15:29 | 显示全部楼层
老兄,我的系统是Redhat9.0,是ext3文件系统,怎么办啊
回复

使用道具 举报

发表于 2004-5-12 00:16:19 | 显示全部楼层
大哥就是强!值得学习~~~~!!!
回复

使用道具 举报

发表于 2004-5-14 08:18:00 | 显示全部楼层
[quote:664420e2a7="g205"]老兄,我的系统是Redhat9.0,是ext3文件系统,怎么办啊[/quote]
试试,应该可以的!
回复

使用道具 举报

发表于 2004-5-14 09:30:13 | 显示全部楼层
据说ext3不行
回复

使用道具 举报

发表于 2004-5-14 10:31:04 | 显示全部楼层
[quote:822ac27222="bixuan"]看看这文章: http://www.ourlinux.net/Article_show.php?id=720

以下是原文内容:
关于恢复硬盘被删除文件

作者:clown 日期:2003-08-25 22:34:36 浏览次数:19


--------------------------------------------------------------------------------


前些天被我误删掉的 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 就是连续保存文件的,还是因为我的计算机只有我一个用户而使然,反正我用上述简单方法将我误删的绝大部分文件都恢复了。
需要说明的一点是,恢复的文件是没有保留文件名的,需要你查看文件内容后,再重新命名。
靠人不如靠己,当初没有轻易放弃看来是正确的,尽管我有少量备份。不过经过
这场"灾难",本人的指法倒是又熟练了不少:几千个文件得一个一个恢复!


--------------------------------------------------------------------------------[/quote]


靠人不如靠己,当初没有轻易放弃看来是正确的,尽管我有少量备份。不过经过
这场"灾难",本人的指法倒是又熟练了不少:几千个文件得一个一个恢复!


强的一塌糊涂!!!       
回复

使用道具 举报

 楼主| 发表于 2004-5-14 18:14:01 | 显示全部楼层
ext3不行的,找不到被删除的文件,我特地新键一个文件,然后删除,找不到
回复

使用道具 举报

发表于 2004-5-16 23:16:11 | 显示全部楼层
真认真阿。有前途。敬佩
[quote:4e6423a204="g205"]ext3不行的,找不到被删除的文件,我特地新键一个文件,然后删除,找不到[/quote]
回复

使用道具 举报

发表于 2004-5-17 15:38:27 | 显示全部楼层
我也听说ext3文件系统不能恢复。
回复

使用道具 举报

发表于 2004-5-25 18:42:13 | 显示全部楼层
我的就是ext3,
回复

使用道具 举报

发表于 2004-5-26 20:27:36 | 显示全部楼层
难道那些超级 Unix 高手都不会误删文件?还是说从来没有开发者考虑过这一点?
回复

使用道具 举报

发表于 2004-5-27 01:24:57 | 显示全部楼层
M$认为用户是傻子,所以给你个undelete用
UNIX认为用户的操作是经过思考的!
ps:debugfs是专门调试ext2文件系统的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-10 12:43 , Processed in 0.070224 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表