恢复ext3文件系统:解决文件丢失问题
现在用ext3文件系统的很多,Debugfs不支持ext3文件系统,下面介绍一款工具可以恢复ext3文件系统数据
ext3grep是恢复ext3文件系统上误删除文件的工具
下载地址:
http://code.google.com/p/ext3grep/
注意软件需要e2fsprogs-libs的支持,我用的red hat默认已经装了
安装软件:
[root@zzh /]# tar -xzvf /root/ext3grep.tar.gz
[root@zzh /]# cd /root/ext3grep-0.10.1/
[root@zzh ext3grep-0.10.1]# ./configure
[root@zzh ext3grep-0.10.1]# make&&make install
实验删除一个文件
[root@zzh /]# rm -f /opt/kt/kt.kt
用df看一下删除文件所在分区
[root@zzh /]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/hdb1 95139 5664 84563 7% /opt
卸载分区(不卸载也可以恢复,只是为了防止在对分区有写入操作,把文件掩盖了就不好恢复了)
[root@zzh /]# umount /dev/hdb1 (或直接写挂载目录/opt)
执行删除文件查找
查找时间因恢复分区大小不同,可能会要很长时间
[root@zzh /]# ext3grep /dev/hdb1 --ls --inode 2
注解:inode代表逐级查找,2代表i节点
Indx Next | Inode | Deletion time Mode File name
==========+==========+----------------data-from-inode------+-----------+=========
0 1 d 2 drwxr-xr-x .
1 2 d 2 drwxr-xr-x ..
2 3 d 11 drwx------ lost+found
3 end d 8161 drwxr-xr-x kt
[root@zzh /]# ext3grep /dev/hdb1 --ls --inode 8161
Indx Next | Inode | Deletion time Mode File name
==========+==========+----------------data-from-inode------+-----------+=========
0 1 d 8161 drwxr-xr-x .
1 end d 2 drwxr-xr-x ..
3 end r 8163 D 1248196940 Wed Jul 22 01:22:20 2009 rrw-r--r-- kt.kt
执行文件恢复
[root@zzh /]# ext3grep /dev/hdb1 --restore-file kt/kt.kt
注意:不要加挂载目录opt,前面也没有根符合,加了恢复会找不到路径
出现Restoring kt/kt.kt表示文件恢复成功
恢复成功后会在当前目录下生成一个RESTORED_FILES的目录,恢复的文件就会保存这里,看看文件大小是否正确。
执行完恢复在把分区挂载上就OK了
[root@zzh /]# mount /dev/hdb1 /opt/
总结:
对刚删除没多久的文件可以很好的恢复,恢复扫描很费时间,分区不是很大的还可以,如果分区很大时间就难以接受了。
推荐阅读
-
恢复ext3文件系统:解决文件丢失问题
-
恢复文件:通过debugfs和dd解决误删问题
-
服务器数据恢复] Ext3 文件系统硬盘坏道跌落数据恢复案例
-
两种恢复方法可尝试解决 iPhone 通讯录联系人误删和丢失的问题!
-
紧急模式问题处理 - 图 1 紧急模式 根本原因分析 应急模式提供了尽可能小的环境,即使无法进入应急模式,也可以在其中修复系统。在应急模式下,系统只安装根文件系统供读取,不尝试安装任何其他本地文件系统,不激活网络接口,只启动一些基本服务。 进入应急模式的原因通常是 /etc/fstab 文件中存在错误,导致文件系统挂载失败。 文件系统中存在错误,导致。 约束和限制 本节适用于 Linux 操作系统紧急模式。程序涉及修复文件系统。修复文件系统有丢失数据的风险,因此请先备份数据,然后再执行修复操作。 处理方法 输入根密码,然后进入修复模式。 在应急模式下,根分区以只读模式挂载。要修改根目录中的文件,需要执行以下命令以读写模式重新挂载根分区。# mount -o rw,remount / 请执行以下命令首先检查 fstab 文件是否有误,然后尝试挂载所有未挂载的文件系统。# mount -a 如果挂载点不存在,请创建一个挂载点。 如果不存在此类设备,请注释或删除挂载行。 如果指定了不正确的挂载选项,请将挂载参数更改为正确的参数。 如果没有发生错误,但出现 UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY 消息(通常是由文件系统错误引起的),请跳至第 7 步。 执行以下命令打开 /etc/fstab 以修改相应的错误。# vi /etc/fstab /etc/fstab 文件包含以下字段,以空格分隔:[文件系统] [dir] [type] [options] [dump] [fsck] 表 1 /etc/fstab 参数 说明 参数 说明 [文件系统] 要挂载的分区或存储设备。 文件系统]列建议以 UUID 的形式写入。执行 blkid 命令可查询设备文件系统 UUID。 参考格式如下: # <device> <dir> <type> <options> <dump> <fsck>; UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2 使用 UUID 的好处是,它们与磁盘顺序无关。如果你在 BIOS 中更改了存储设备的顺序,或重新插入了存储设备,或者因为某些 BIOS 可能会随机更改存储设备的顺序,那么使用 UUID 会更有效率。 [文件系统] 文件系统]的挂载位置。 类型 挂载设备或分区的文件系统类型,支持多种不同的文件系统:ext2、ext3、ext4、reiserfs、xfs、jfs、smbfs、iso9660、vfat、ntfs、swap 和 auto。 设置为自动类型后,挂载命令会猜测所使用的文件系统类型,这对 CDROM 和 DVD 等移动设备非常有用。 选项 挂载时要使用的参数,有些参数是特定文件系统特有的。例如,默认值参数使用文件系统的默认挂载参数,ext4 的默认参数为:rw、suid、dev、exec、auto、nouser、async。 有关更多参数,请执行以下命令查看 man 手册:# man mount
-
如何在Linux中解决RPM安装时提示需增加x MB磁盘空间的文件系统问题
-
如何找回ext4、ext3和xfs文件系统的丢失数据?一份全面的指南
-
解决Linux文件系统只读问题:Read-only file system修复方案
-
用NFS挂载根文件系统详解(带nfs版本不兼容问题的解决方法)