LinuxEXT文件和XFS文件恢复

前言

本博文主要是通过VMware虚拟机来验证EXT格式和XFS格式的文件恢复,环境分别为RHEL6和CentOS7虚拟机。在两台虚拟机上的新硬盘上创建测试文件,然后模拟文件误删或丢失的情况来恢复文件。

EXT文件恢复

EXT格式的文件通过extundelete工具进行恢复,在实验开始前需要先布置环境,再安装extundelete工具,然后删掉测试文件,通过extundelete工具将文件恢复。

安装环境

[root@localhost Packages]# rpm -ivh e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm 
warning: e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
	package e2fsprogs-libs-1.41.12-18.el6.x86_64 is already installed

[root@localhost Packages]# rpm -ivh e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm 
warning: e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:e2fsprogs-devel        ########################################### [100%]

给主机添加一块硬盘,在新硬盘上做数据恢复测试。

[root@localhost extundelete-0.2.4]# fdisk /dev/sdb		# 硬盘分区,只要创建一个分区即可
[root@localhost extundelete-0.2.4]# mkfs.ext4 /dev/sdb1	# 格式化为ext4格式
[root@localhost extundelete-0.2.4]# cd 
[root@localhost ~]# mkdir /data							# 创建挂载点
[root@localhost ~]# mount /dev/sdb1 /data				# 挂载
[root@localhost ~]# df -Th | grep /data					# 查看挂载
/dev/sdb1      ext4      20G  172M   19G   1% /data

安装extundelete工具

[root@localhost ~]# tar jxf extundelete-0.2.4.tar.bz2
[root@localhost extundelete-0.2.4]# ./configure && make && make install
# 安装好后,extundelete命令在/usr/local/bin中,可以直接使用,如果没有,可以创建一个软链接

创建、删除测试文件

[root@localhost ~]# cd /data
[root@localhost data]# ls
lost+found
[root@localhost data]# echo 1 > 1		# 写1、2、3三个文件
[root@localhost data]# echo 2 > 2
[root@localhost data]# echo 3 > 3
[root@localhost data]# rm -rf 2			# 删除文件2
[root@localhost data]# ls
1  3  lost+found

恢复被删除的测试文件

[root@localhost data]# cd 
[root@localhost ~]# umount /data						# 数据恢复前先解挂载
[root@localhost ~]# extundelete /dev/sdb1 --restore-all	# 数据恢复
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 160 groups loaded.
Loading journal descriptors ... 24 descriptors loaded.
Searching for recoverable inodes in directory / ... 
1 recoverable inodes found.
Looking through the directory structure for deleted files ... 
0 recoverable inodes still lost.
[root@localhost ~]# ls									# 查看当前目录下RECOVERED_FILES目录
anaconda-ks.cfg            install.log         公共的  图片  音乐
extundelete-0.2.4          install.log.syslog  模板    文档  桌面
extundelete-0.2.4.tar.bz2  RECOVERED_FILES     视频    下载
[root@localhost ~]# cd RECOVERED_FILES/
[root@localhost RECOVERED_FILES]# ls					# 可以看到被删除的2
2
[root@localhost RECOVERED_FILES]# cat 2					# 之后再把文件复制到需要的地方
2

XFS文件恢复

思路也和EXT文件恢复差不多,XFS文件使用的工具是xfsdump,与extundelete工具不同的是,XFS文件需要实现对文件进行备份。

安装工具

[root@localhost ~]# yum -y install xfsdump &> /dev/null

准备硬盘

[root@localhost ~]# mkfs.xfs /dev/sdb1 &> /dev/null			# 分好区后格式化为xfs格式
[root@localhost ~]# mkdir /data								# 创建挂载点
[root@localhost ~]# mount /dev/sdb1 /data					# 挂载到/data
[root@localhost ~]# df -Th | grep /data						# 查看挂载
/dev/sdb1               xfs        20G   33M   20G   1% /data

往硬盘上写文件

[root@localhost ~]# cd /data
[root@localhost data]# ls
[root@localhost data]# echo "this is test" > test.txt		# 准备测试文件
[root@localhost data]# mkdir ./dir1
[root@localhost data]# echo "abc" > ./dir1/letters.txt
[root@localhost data]# yum -y install tree &> /dev/null		# tree命令可以树形展示目录内容
[root@localhost data]# tree 
.
├── dir1
│   └── letters.txt
└── test.txt

1 directory, 2 files

备份数据

[root@localhost data]# cd 
[root@localhost ~]# xfsdump -f /opt/xfs_dump /dev/sdb1			# 备份文件放在/opt/xfs_dump,被备份硬盘为/dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
 -> xfs_dump
session label entered: "xfs_dump"

 --------------------------------- end dialog ---------------------------------

……省略部分信息……

 ============================= media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb1
media label entered: "sdb1"

 --------------------------------- end dialog ---------------------------------

……省略部分信息……

删除测试文件

[root@localhost ~]# rm -rf /data/*

恢复数据

[root@localhost ~]# xfsrestore -f /opt/xfs_dump /data/			# 使用/opt/xfs_dump来恢复/data下的文件
[root@localhost ~]# tree /data/
/data/
├── dir1
│   └── letters.txt
└── test.txt

1 directory, 2 files

总结

ext4在恢复的时候需要解挂载,而xfs则需时刻都是被挂载状态,且xfsdump的命令应只有root能使用;ext4在丢失前不需备份,而xfsdump需要进行备份。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值