XFS文件恢复工具指南
项目信息
开源项目地址:https://github.com/ianka/xfs_undelete
环境说明
- 操作系统:CentOS 7
依赖安装
bash
# 安装必要依赖
yum install -y tcl tcllib coreutils file
依赖说明:
tcl:Tcl语言运行环境(必需)tcllib:Tcl扩展功能库coreutils:基础系统工具集file:文件类型识别工具
工具安装
bash
git clone https://github.com/ianka/xfs_undelete
cd xfs_undelete
chmod +x xfs_undelete
恢复操作指南
注意事项
-
恢复前必须停止对目标分区的写入操作
-
执行以下命令卸载目标分区(以/dev/sda4为例):
bashumount /dev/sda4 -
延迟操作会降低恢复成功率
基本恢复
bash
# 恢复/dev/sda4所有删除文件到当前目录的xfs_undeleted文件夹
./xfs_undelete /dev/sda4
高级选项
-
时间筛选恢复
bash# 恢复最近48小时内删除的文件 ./xfs_undelete -t 48h /dev/sda4 # 恢复2026-01-16之后删除的文件 ./xfs_undelete -t "2026-01-16.." /dev/sda4 # 恢复2026-01-16至2026-01-19期间删除的文件 ./xfs_undelete -t "2026-01-16..2026-01-19" /dev/sda4 -
文件类型筛选
bash# 仅恢复图片文件 ./xfs_undelete -r "image/*" /dev/sda4 # 仅恢复文档文件 ./xfs_undelete -r "text/plain,application/pdf,application/vnd.openxmlformats-officedocument.wordprocessingml.document" /dev/sda3 -
指定输出目录
bash# 创建专用恢复目录(必须位于其他分区) mkdir -p /mnt/recovery # 指定输出目录 ./xfs_undelete -o /mnt/recovery /dev/sda4
实战案例:恢复误删系统文件
场景:误删/usr/bin/ls等系统命令导致功能异常
操作步骤:
-
重启服务器,在GRUB界面按e编辑启动项,添加
init=/bin/bash进入单用户模式 -
以只读模式重新挂载根分区:
bashmount -o remount,ro / -
挂载外部存储设备:
bashmount /dev/sdc1 /mnt/usb -
执行恢复命令:
bash./xfs_undelete -r "application/x-executable" -o /mnt/usb/recovery /dev/sda1 -
将恢复的文件复制到/usr/bin目录后重启系统