在 CentOS 操作系统中,文件恢复是一个复杂但可行的任务,尤其是当误删除重要文件时,以下将详细介绍如何在 CentOS 中恢复误删除的文件,包括使用 extundelete 工具和 xfsdump 工具的步骤。
查看分区类型
在开始恢复之前,需要确定文件所在的分区类型,可以通过以下命令查看:
df T
该命令会列出所有挂载的文件系统及其类型,xfs 或 ext4,不同的分区类型需要使用不同的恢复工具和方法。
二、使用 extundelete 恢复文件(适用于 ext4 分区)
1、安装 extundelete
安装 e2fsprogs 开发包和其他依赖项:
yum install e2fsprogsdevel e2fsprogs e2fsprogslibs y
下载并解压 extundelete 安装包:
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete0.2.4.tar.bz2 tar jxvf extundelete0.2.4.tar.bz2 cd extundelete0.2.4
编译并安装 extundelete:
yum y install gcc gccc++ ./configure make make install
验证安装是否成功:
which extundelete
2、创建测试目录和文件
cd / mkdir /data cd /data touch deletefile
3、模拟文件删除
rm rf deletefile
4、恢复文件
使用 extundelete 查看删除的文件:
/usr/local/bin/extundelete inode 2 /dev/sda2
注意:这里的/dev/sda2
是分区设备名,2
是被删除文件的 inode 号,可以通过ls i
命令查看。
如果文件可以恢复,extundelete 会提示进一步操作,否则,可能需要卸载分区并运行 fsck 检查文件系统。
三、使用 xfsdump 恢复文件(适用于 xfs 分区)
1、备份文件系统
在误删除文件之前,最好先进行备份:
xfsdump f /tmp/dump_data /data
如果备份成功,会出现如下信息:
xfsdump: Dump Status: SUCCESS
2、恢复文件
如果已经备份,可以使用以下命令恢复文件:
xfsdump r f /tmp/dump_data o /restored_data
这里/restored_data
是恢复文件的目标目录。
其他恢复方法
1、使用 debugfs 工具
进入 debugfs 模式:
debugfs
打开被删除文件所在的分区:
open /dev/sda1
查找被删除文件的目录:
ls d /www/wwwroot/gitea
查找文件所在的区块号:
logdump i <1452682>
block 后面的数值并退出 debugfs:
quit
使用 dd 命令恢复文件:
dd if=/dev/sda1 of=/www/wwwroot/gitea/asd bs=1152 count=1 skip=5767796
这里bs
与 offset 值一致,skip
与 block 值一致。
在 CentOS 中恢复误删除的文件有多种方法,具体选择哪种方法取决于文件系统的分区类型和具体情况,对于 ext4 分区,extundelete 是一个强大的工具;对于 xfs 分区,xfsdump 则更为适用,无论使用哪种方法,都应在操作前做好充分的备份,以防止数据进一步丢失,及时停止对磁盘的写操作也是提高恢复成功率的关键,通过以上详细的步骤和示例,用户可以更好地理解和掌握 CentOS 下的文件恢复方法。