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

实战:恢复ext4文件系统下误删除

在Centos6或者RHEL6上恢复ext4文件系统下误删除的文件

–>rm -Rf / #执行不成功

[root@master30 data]# rm -Rf /
rm: 在"/" 进行递归操作十分危险
rm: 使用 --no-preserve-root 选项跳过安全模式

原理:

ext4文件系统上删除文件、可以恢复:extundelete

ext3删除恢复:ext3grep

windows恢复误删除的文件:final datav2.0 汉化版和easyrecover

Linux文件系统由三部分组成:文件名、inode、block

windows也是由这三部分组成

a.txt -->inode -->block

文件名: 存放文件元数据信息 真正存放数据;

block块:真正存放数据的地方

#查看文件名
[root@master30 data]# ls -l aa.txt 
-rw-r--r-- 1 root root 16 6月  12 09:41 aa.txt
[root@master30 data]# stat a.t
stat: 无法获取"a.t" 的文件状态(stat): 没有那个文件或目录
[root@master30 data]# stat aa.txt 
  文件:"aa.txt"
  大小:16        	块:8          IO 块:4096   普通文件
设备:803h/2051d	Inode:50334076    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2021-06-12 09:41:12.322393075 +0800
最近更改:2021-06-12 09:41:09.424393405 +0800
最近改动:2021-06-12 09:41:09.424393405 +0800
创建时间:-


#查看inode号
[root@master30 data]# ls -i aa.txt 
50334076 aa.txt


为生么删除比恢复的快?

删除aa.txt—>文件名、inode、block

其实删除的时候只是删除文件名

–>但是inode号是依然可用的;

–>如果刚删除–>但是突然有b.txt有刚好用到inode号–>恢复更加难了;

  • 硬盘还是会有奇偶校验法恢复–>比较专业的数据

误删除后,第一件事需要做什么?

–>避免误删除的文件内容被覆盖;

–>卸载需要回复的分区或者以制度的方式挂载;

实战:Centos6系统在ext4文件系统上恢复被误删除的文件

1)下载extundelete

官网:https://sourceforge.net/projects/extundelete/

2)准备一下硬盘的基本环境

虚拟机关机–>编辑虚拟机–>添加–>硬盘–>默认,默认下一步

#查看一下硬盘
[root@master ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdc

#对sdb进行分区
[root@master ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xcb3fcf18.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n				#新建分区,
Command action
   e   extended
   p   primary partition (1-4)
p									#这里输入新建主分区
Partition number (1-4): 1			#选择分区标号为1
First cylinder (1-2610, default 1): 		#选择默认上去
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G	#分区大小是2G

Command (m for help): w			#保存规划好的分区


#格式化分区-->创建ext4的文件系统
	#Centos6使用的命令是mkfs.ext4
[root@master ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131648 inodes, 526120 blocks
26306 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=541065216
17 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


#挂载使用
[root@master ~]# mkdir /sdb1
[root@master ~]# mount /dev/sdb1 /sdb1
[root@master ~]# df -h | grep sdb1
/dev/sdb1       2.0G  3.1M  1.9G   1% /sdb1

3)准备测试数据

[root@master ~]# cd /sdb1
[root@master sdb1]# mkdir test/Linux -p
[root@master sdb1]# touch liangjiawei.txt
[root@master sdb1]# echo liangjiawei > liangjiawei.txt 
[root@master sdb1]# touch empty.txt
[root@master sdb1]# tree /sdb1
/sdb1
├── empty.txt
├── liangjiawei.txt
├── lost+found
└── test
    └── Linux

3 directories, 2 files


4)删除文件—>直接删除了;

如果想恢复文件、那么需要注意什么?

  • 立即断电,然后把磁盘转为已读方式;
  • 不要正常关机,以免系统自动读取数据保存;
  • 马上准备extundelete,提前安装好,放到U盘里边;把U盘挂载到服务器,
  • 恢复的时候,需要把数据先存放到U盘下;
[root@master sdb1]# rm -rf ./*

5)恢复的整体过程;

–>卸载,保证不要再有操作进去,避免数据被覆盖

[root@master sdb1]# cd
[root@master ~]# umount  /dev/sdb1

–>安装extundelete工具

#上传extundelete
[root@master ~]# rz
[root@master ~]# ls extundelete-0.2.4.tar.bz2 
extundelete-0.2.4.tar.bz2

#解压包
[root@master ~]# tar -xf extundelete-0.2.4.tar.bz2 
[root@master ~]# cd extundelete-0.2.4
[root@master extundelete-0.2.4]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@master extundelete-0.2.4]# yum -y install  e2fsprogs-devel
	

#预编译
	#安装编译环境
[root@master extundelete-0.2.4]# yum -y install gcc gcc-c++
[root@master extundelete-0.2.4]# ./configure 
Configuring extundelete 0.2.4
Writing generated files to disk


#编译
	#可以跟上参数-j:指定了cpu个数,可以加速编译
[root@master extundelete-0.2.4]# make 
make -s all-recursive
Making all in src


#安装
[root@master extundelete-0.2.4]# make install
Making install in src
  /usr/bin/install -c extundelete '/usr/local/bin'

install和cp的区别

  • install可以指定文件权限
  • cp不能指定权限
[root@master extundelete-0.2.4]# cp /etc/fstab  /tmp/
[root@master extundelete-0.2.4]# install -m 777 /etc/fstab /tmp/fstab.install
[root@master extundelete-0.2.4]# ll /tmp/fs*
-rw-r--r-- 1 root root 805 5月   4 17:58 /tmp/fstab
-rwxrwxrwx 1 root root 805 5月   4 17:58 /tmp/fstab.install

准备好了之后开始恢复文件

恢复文件的方式方法:

  • 通过i节点进行恢复
  • 通过文件名进行恢复
  • 恢复某个目录,如目录a下的所有文件
  • 恢复所有的文件;
#创建一个目录,用于存放恢复的数据
[root@master ~]# mkdir /recover


方法一:
#首先需要查看一下i节点
[root@master ~]# extundelete  /dev/sdb1 --inode 2
.....
File name                                       | Inode number | Deleted status
.                                                 2
..                                                2
lost+found                                        11             Deleted
liangjiawei.txt                                   12             Deleted
empty.txt                                         13             Deleted
test                                              14             Deleted
	#这里我们有两个问题,
	#第一个,为什么是--inode 2
#解答如下:
ext4文件系统的分区根目录的inode值为2,xfs分区根目录的inode值为64
[root@master ~]# mount /dev/sdb1 /sdb1/
[root@master ~]# ls -id /sdb1
2 /sdb1



#通过i节点来恢复文件
	#这里我们发现,恢复了的文件,它不是原来我们的文件名
	#但是文件的内容都是没有变动的,说明文件是恢复成功了;
[root@master ~]# extundelete /dev/sdb1 --restore-inode 12
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 17 groups loaded.
Loading journal descriptors ... 36 descriptors loaded.
[root@master ~]# cat  RECOVERED_FILES/file.12 
liangjiawei



#通过文件名了恢复
[root@master ~]# extundelete /dev/sdb1 --restore-file liangjiawei.txt
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 17 groups loaded.
Loading journal descriptors ... 36 descriptors loaded.
Successfully restored file liangjiawei.txt
[root@master ~]# cat RECOVERED_FILES/
file.12          liangjiawei.txt  
[root@master ~]# cat RECOVERED_FILES/liangjiawei.txt 
liangjiawei


#恢复目录
	#这里发现原来在test目录下的空目录不见了
[root@master ~]# extundelete /dev/sdb1 --restore-directory test
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 17 groups loaded.
Loading journal descriptors ... 36 descriptors loaded.
Searching for recoverable inodes in directory test ... 
4 recoverable inodes found.
Looking through the directory structure for deleted files ... 
3 recoverable inodes still lost.
[root@master ~]# tree RECOVERED_FILES/test/
RECOVERED_FILES/test/

0 directories, 0 files


#恢复所有
[root@master ~]# extundelete /dev/sdb1 --restore-all
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 17 groups loaded.
Loading journal descriptors ... 36 descriptors loaded.
Searching for recoverable inodes in directory / ... 
4 recoverable inodes found.
Looking through the directory structure for deleted files ... 
0 recoverable inodes still lost.
[root@master ~]# ls RECOVERED_FILES/
file.12             liangjiawei.txt     liangjiawei.txt.v1  test/
[root@master ~]# ls RECOVERED_FILES/
file.12  liangjiawei.txt  liangjiawei.txt.v1  test


#extundelete恢复的时候不能自动恢复空文件和空目录;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liang_GaRy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值