误删ext3的恢复方法

1、Ext3文件系统结构的简单介绍
在Linux所 用的Ext3文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者, 读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一个间 接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是 1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
2、恢复被误删文件的方法
大多数Linux发行版都提供一个debugfs工具,可以用来对Ext3文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)

mount -r -n -o remount /usr

r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:

fuser -v -m /usr

如果没有什么重要的进程,用以下命令停掉它们:

fuser -k -v -m /usr

然后就可以重新挂载这些文件系统了。
如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用Linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些有用的数据。如果机器上有dos/windows,可以写到这些分区上面:

mount -r -n /dev/hda1 /mnt/had

然后就可以执行debugfs:(假设Linux在 /dev/hda5)

#debugfs /dev/hda5

就会出现debugfs提示符debugfs:
使用lsdel命令可以列出很多被删除的文件的信息:

debugfs:lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001
debugfs:

列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件:
可以先看看文件数据状态:

debugfs:stat
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ………………………………….
TOTAL: 38

然后就可以用dump指令恢复文件:

debugfs:dump /mnt/hda/01.sav

这样就把文件恢复出来了。退出debugfs:

debugfs:quit

另一种方法是手工编辑inode:

debugfs:mi
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
Triple Indirect Block [0]

使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:

debugfs:quit

然后用fsck检查/dev/hda5

fsck /dev/hda5

程序会说找到丢失的数据块,放在lost+found里面。

时间: 2024-10-12 21:33:00

误删ext3的恢复方法的相关文章

linux下rm -r误删NTFS文件恢复方法

linux下rm -r误删NTFS文件恢复方法(nfs-3g) 一时疏忽,手一抖,把整个挂载的F盘删了一半!顿时傻眼!! 被删的F盘是Windows下NTFS分区,在Ubuntu12.04中挂载了F盘,使用rm命令时粗心大意,误删了一半的数据. 血的教训告诉我们,使用rm -r命令一定要带上-i,否则让你后悔莫及! 还好在Linux下有一种方法可以恢复被删除的NTFS分区文件. 本文地址:http://www.cnblogs.com/yhLinux/p/4106099.html 在文件被误删后,

关于对SSD误删数据的恢复方法介绍

固态硬盘使用体验好,速度快,但硬盘最基本的的功能是存储,这就面临一个问题,用固态硬盘存储的数据如果被格式化或者误删了,能恢复吗? 固态硬盘用的是闪存,闪存有个特点,不像磁盘那样(磁盘数据可以被覆盖),在使用时不允许覆盖,只能先擦除在写入,也就是说只能在"空闲"的闪存空间进行写入. 如果像机械硬盘那样,只是简单标记一下的话,删除的数据其实还在,那这些闪存空间是不能被写入的,如果到用的时候再擦除,一是影响响应,造成固态硬盘的速度变慢,另一个可能会造成反复擦写某一地址,造成闪存的损坏,进而影

ext3 文件系统中误删文件的恢复方法

如果oracle进程已经关闭,无法再通过利用ora_进程跟踪文件句柄进行恢复,那么还有无方法来对误删除的文件进行恢复呢?下面介绍一下用第三方软件进行恢复 --首先确保已经安装了e2fsprogs包 [[email protected] ext3grep-0.10.2]# rpm -qa | grep e2fsprogs e2fsprogs-1.39-20.el5 e2fsprogs-devel-1.39-20.el5 e2fsprogs-libs-1.39-20.el5 --软件下载: http

关于对移动硬盘误删数据的恢复方法介绍

移动硬盘能储存大量数据,由于操作不当可能会造成数据的丢失,那么在没有备份的情况下,移动硬盘丢失的数据还能找回来吗? 移动硬盘是以硬盘为存储介质,计算机之间交换大容量数据,强调便携性的存储产品移动硬盘可以提供相当大的存储容量,是一种较具性价比的移动存储产品.用户操作使用不当而造成数据丢失的情况也很常见,那么移动硬盘数据丢失到底还有恢复的可能吗? 选择迷你兔最新版v9.1进行恢复:可以恢复!但是要注意发现数据丢失后,就不要在该磁盘中在进行操作了,防止数据被覆盖和损坏.选择迷你兔v9.1,迷你兔数据恢

手机QQ聊天记录被误删的恢复方法

手机QQ聊天记录误删怎么办?删除的聊天记录能恢复吗?在科技的影响下,如今的手机已经能完成很多的事情了,例如可以通过QQ来实现实时的聊天,随时都能和朋友进行信息的传递,那万一将聊天记录删除了要怎么恢复呢?不要着急小编分享给你一个实用的恢复方法吧!第一步:首先我们可以在手机应用商城或者浏览器中搜索"极速数据恢复"这款恢复工具,下载并安装即可.第二步:打开安装好的恢复工具,进入首页我们就可以看到八大恢复功能,选择你需要恢复的"QQ恢复"功能.第三步:然后系统会自动进入扫描

短信被误删了怎么恢复?恢复的具体的方法

短信是一直都存在我们的手机上的,但是我们却很少的会去使用到它,因为我们很多的时候,都会选择使用我们手机上的一些社交软件去交流,但是有的时候,我们的手机短信对于我们来说也是比较重要的,那么若是被误删了怎么恢复呢?我们或许可以试试下面的方法. 首先,一般的情况下,我们删除了我们的手机短信,我们都是会选择使用我们的手机备份去找回我们的手机短信,其实,我们找到我们的备份,点击"开始恢复"就可以了: 当然了,我们也是可以选择登录我们的云服务去找回的,如果你有备份云服务的话,然后我们找到我们的短信

手机联系人误删了怎么恢复?这些方法你不来看看

手机联系人误删了怎么恢复?相信很多的人都有这个疑惑吧?有些时候手机上经常性的会保存一些手机联系人,当然了,这些手机联系人对于我们来说或许并不是特别的重要,但是当你遇到特殊情况或者是因为自己工作的原因,我们再次需要手机联系人的时候,发现被我们误删了,我们该怎么办呢?下面就给大家分享一下找回的方法. 首先如果我们是有备份的情况下,我们可以选择从我们的手机备份中找回我们的手机联系人,如果我们是华为.小米之类的手机我们直接登录我们自己的小米或者是小米账号就可以了,若是没有就直接使用备份与还原找回: 若是

手机误删文件恢复方法,简单恢复

手机误删文件恢复方法,简单恢复.我们很多的时候都会因为自己的手机一些细小的原因,而将我们的手机文件给误删了,其实有的时候,我们误删了也是无所谓的,我们是可以选择借助我们的手机备份去恢复的. 那么若是我们没有手机备份的情况下,我们是不是可以通过一些方法找回我们的手机误删文件呢?我们该怎么恢复我们的手机误删文件呢?若是你不会的话,你也可以选择试试下面的方法去找回你的手机误删文件. 1.首先可以在准备恢复的时候打开电脑,之后在电脑上浏览器上下载安装"互盾安卓恢复大师",之后用数据线将电脑和丢

手机视频误删怎么恢复?告诉你两个最简单恢复方法

随着科技的发展,手机已经成为人们生活中的一个必备物品.手机携带的相机不仅可以拍照还能使用它拍摄视频.使用华为手机拍摄完成的视频如果不小心删除的话,该怎么恢复呢?告诉大家两个最简单的恢复方法. 一.相册恢复打开华为手机在桌面找到"图库"应用,打开之后在相册最下方一个华为手机自带的"最近删除"功能,在里面可以看到最近删除的所有视频包括图片.想要恢复的话点击删除的视频,然后点击下方恢复就可以完成恢复了.这个功能只能恢复30天内的视频,时间过长的不能恢复哦! 二.软件恢复第