linux恢复误删除文件-extundelete

经过本人测试该工具支持ext3和ext4文件系统

当发现某个分区的数据被误删除后,要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区。

这么做的原因其实很简单:删除一个文件,就是将文件inode节点中的扇区指针清除,同时,释放这些数据对应的数据块,而真实的文件还存留在磁盘分区中。但是这些被删除的文件不一定会一直存留在磁盘中,当这些释放的数据块被操作系统重新分配时,那些被删除的数据就会被覆盖。因此,在数据误删除后,马上卸载文件所在分区可以降低数据块中数据被覆盖的风险,进而提高成功恢复数据的机率。

1. 创建文件系统
[[email protected]_test_26_74 /]#  mkfs -t ext4 /dev/sdb3

2.查看文件系统类型
[[email protected]_test_26_74 /]# blkid /dev/sdb3  --查看文件系统类型
/dev/sdb3: UUID="b786e8d1-e8ac-4681-ad3a-ff7a39c07146" TYPE="ext4"

也可以用下面方法查看
[[email protected]_test_26_74 ~]# file -s /dev/sdb3
/dev/sdb3: Linux rev 1.0 ext4 filesystem data (extents) (huge files)

3.创建一个delete目录,并挂载到刚创建的文件系统上,并创建文件,然后删除文件

[[email protected]_test_26_74 /]# mkdir delete
[[email protected]_test_26_74 /]# mount /dev/sdb3 /delete
[[email protected]_test_26_74 /]# cd /delete
[[email protected]_test_26_74 delete]# ls
lost+found
[[email protected]_test_26_74 delete]# vi zw.txt      --添加一些内容
[[email protected]_test_26_74 delete]# rm -rf zw.txt

4.下载
extundelete 主页:http://extundelete.sourceforge.net/
下载地址:http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2   --0.2.4版本
           
[[email protected]_test_26_74 /]# wget  http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

[[email protected]_test_26_74 /]# tar -xvf extundelete-0.2.4.tar.bz2

[[email protected]_test_26_74 extundelete-0.2.4]# cd /extundelete-0.2.4

[[email protected]_test_26_74 extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete  && make && make install  
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library

这是因为extundelete依赖e2fsprogs。

[[email protected]_test_26_74 extundelete-0.2.4]# yum -y install e2fsprogs  e2fsprogs-devel

安装e2fsprogs后再次configure 成功。

[[email protected]_test_26_74 extundelete-0.2.4]# ./configure  --prefix=/usr/local/extundelete  && make && make install
Configuring extundelete 0.2.4
Writing generated files to disk
make -s all-recursive
Making all in src
Making install in src
  /usr/bin/install -c 'extundelete' '/usr/local/bin/extundelete'

5.查看工具版本
[[email protected]_test_26_74 /]# cd /usr/local/extundelete/bin
[[email protected]_test_26_74 bin]# ./extundelete -v
extundelete version 0.2.4
libext2fs version 1.41.12
Processor is little endian.

6.卸载分区,注意如果是/ 根目录的删了,把磁盘挂载到其他机器做恢复

[[email protected]_test_26_74 ~] fuser -k /delete         <-- 结束使用某分区的进程树
[[email protected] ~]# umount /delete                    <-- 卸载分区
[[email protected]_test_26_74 ~]#  umount /dev/sdb3

7.使用extundelete查看分区上存在的文件
extundelete --inode 2 /dev/sdb2
# --inode 为查找某i节点中的内容,使用2则说明为搜索,如果需要进入目录搜索,只须要指定目录I节点即可

[[email protected]_test_26_74 bin]#  extundelete --inode 2 /dev/sdb3
WARNING: Extended attributes are not restored.
Loading filesystem metadata ... 26 groups loaded.
Contents of inode 2:
0000 | ed 41 00 00 00 04 00 00 01 7b c6 56 05 7b c6 56 | .A.......{.V.{.V
0010 | 05 7b c6 56 00 00 00 00 00 00 03 00 02 00 00 00 | .{.V............
0020 | 00 00 00 00 20 00 00 00 e3 10 00 00 00 00 00 00 | .... ...........
0030 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0050 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
0070 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

Inode is Allocated
Group: 0
File mode: 16877
Low 16 bits of Owner Uid: 0
Size in bytes: 1024
Access time: 1455848193
Creation time: 1455848197
Modification time: 1455848197
Deletion Time: 0
Low 16 bits of Group Id: 0
Links count: 3
Blocks count: 2
File flags: 0
File version (for NFS): 0
File ACL: 0
Directory ACL: 0
Fragment address: 0
Direct blocks: 4323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Indirect block: 0
Double indirect block: 0
Triple indirect block: 0

File name                                       | Inode number | Deleted status
Directory block 4323:
.                                                 2
..                                                2
lost+found                                        11
zw.txt                                           14             Deleted
.zw.txt.swp                                       13             Deleted
zw.txt~                                           12             Deleted

上面标记为deleted的,zw.txt 就是我误删的数据

8. 恢复:
[email protected]_test_26_74 bin]# extundelete --restore-all  /dev/sdb3
WARNING: Extended attributes are not restored.
Loading filesystem metadata ... 26 groups loaded.
Loading journal descriptors ... 47 descriptors loaded.
Writing output to directory RECOVERED_FILES/
Searching for recoverable inodes in directory / ...
1 recoverable inodes found.
Looking through the directory structure for deleted files ...
Restored inode 14 to file RECOVERED_FILES/zw.txt
0 recoverable inodes still lost.
[[email protected]_test_26_74 bin]# ll
total 1164
-rwxr-xr-x 1 root root 1187047 Feb 19 10:10 extundelete

drwxr-xr-x 2 root root    4096 Feb 19 11:20 RECOVERED_FILES

[[email protected]_test_26_74 bin]# cd RECOVERED_FILES/

[[email protected]_test_26_74 RECOVERED_FILES]# ll
total 4
-rw-r--r-- 1 root root 150 Feb 19 11:20 zw.txt

可以看到zw.txt 已经恢复到RECOVERED_FILES 目录下了。

9.扩展命令:
--restore-inode 12              # --restore-inode 按指定的I节点恢复
--restore-file zw.txt           # --restore-file 按指定的文件名恢复
--extundelete --restore-all     # --restore-all  是全部恢复 ,默认全将恢复出来的文件放在当前路径 RECOVERED_FILES/ 目录下,文件名为 file.I节点号

注意: RECOVERED_FILES目录生成在当前执行命令的目录下面啦!

原文地址:http://blog.51cto.com/sf1314/2055026

时间: 2024-10-09 20:52:23

linux恢复误删除文件-extundelete的相关文章

linux 恢复误删除文件

系统版本:CentOS 6.5    软件包版本:extundelete-0.2.4.tar.gz extundelete是基于Linux的一个数据恢复工具,它通过分析文件系统的日志,解析出所有文件的inode信息,从而可以恢复Linux下主流的ext3,ext4文件系统下被误删除的文件 一.安装extundelete工具 1.解压软件包 #注意:解压的时候会报错,需要安装"e2fsprogs-devel"相应软件包 2.配置安装 二.准备测试环境 1.创建测试目录 如图所示,创建&q

Linux恢复误删除文件

环境要求:在虚拟机里新建一个文件系统,在文件系统里创建数个文件,模拟文件误删除在恢复实验. 编译安装extundelete软件包 先使用yum仓库安装依赖包e2fsprogs-libs.e2fsprogs-devel(yum仓库制作详见前文,这里不再赘诉) 挂载Windows系统的共享文件夹,查看软件包(挂载操作详见前往) tar解压extundelete源代码软件包 在第一次编译安装前还得先确认编译环境,用yum仓库安装环境包gcc.gcc-c++.make 然后进入extundelete软件

多学一点(十二)——使用extundelete恢复Linux下误删除文件

通常来说,对于重要文件我们都应该定期备份(如 /etc 下的配置文件),以免在喝醉了手残了等异常状态下将重要文件误删除.然而,如果意外真的发生,而我们又没有做好备份,那赶紧试试手动恢复吧,这里使用的文件恢复软件为 extundelete . 1.重新挂载分区为只读状态: 这是恢复文件的第一步,也是最关键的步骤之一.假如我们误删除的文件为 /data/catalina.out , /data 目录为 /dev/sdb5 的挂载点,因为对分区的写操作可能会导致我们恢复文件失败,所以要将该分区重新挂载

linux恢复误删文件

恢复Linux下误删除的文件删除文件和文件夹rm -rf 文件名或目录名-r 递归删除(可以删除目录和目录里面的东西)-f 强行删除 ext4文件系统上删除文件,可以恢复: extundeletewindows恢复误删除的文件: final data v2.0 汉化版 和 easyrecovery Linux文件系统由三部分组成:文件名,inode,block a.txt -->inode -> block文件名 存放文件元数据信息 真正存放数据 查看inode号:常识: 每个文件,最少有一个

linux系统误删除文件怎么恢复

参考 http://wandiankafei.blog.51cto.com/10878910/1716201 方案1)现在我向大家介绍使用extundelete恢复文件(适合rhel6.X系统的ext4) 安装: 下载 extundelete-0.2.4.tar.bz2  wget  http://netassist.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 tar -jx

Linux ext4文件系统下 extundelete 恢复 误删除的文件

1.文件基本操作 1.1 查看文件 # ls   1.2 创建 1.2.1 创建文件 # touch {file_name} # vim {file_name}   1.2.2 创建目录 # mkdir -p {dir}   1.3 复制 1.3.1 复制文件 # cp {src_file} {dest_file}   1.3.2 复制目录 # cp -r {src_dir} {dest_dir}   1.4 删除 1.4.1 删除文件 # rm {file_name}   1.4.2 删除目录

Linux系统文件误删除恢复方法;宿主机windows与Linux文件共享!

实验项目:Linux系统文件误删除恢复方法: 宿主机windows与Linux文件共享 实验环境:一:VMware虚拟机,Linux系统RedHat6.5(什么版本不重要): 二:安装以下3个依赖包(请注意顺序!)1>rpm -ivh /mnt/Packages/e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm2>rpm -ivh /mnt/Packages/libcom_err-devel-1.41.12-18.el6.x86_64.rpm3>rpm -

extundelete工具恢复误删文件

1.安装依赖包(e2fsprogs,e2fsprogs-libs,e2fsprogs-devel) # yum -y install e2fsprogs* 2.下载并安装extundelete-0.2.4.tar.bz2 # wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2  # tar -jxvf extundelete-0.2.4.tar.bz

CentOS6.5恢复误删除的文件

系统环境:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 需要的源码包:extundelete-0.2.4.tar.bz2 解压bz2包: # tar -jxvf extundelete-0.2.4.tar.bz2 cd extundelete-0.2.4 ./configure 报错: configure: error: C++ compiler cannot create executables 解决办法: # yum instal