运维123 - XFS
type: channel
link: https://www.sddts.cn/index.php/category/XFS/
description: XFS
items: xfs_undelete 发布 XFS 文件系统恢复工具

xfs_undelete 发布 XFS 文件系统恢复工具
type: item
date: 2026-02-06T01:17:15+00:00
description: xfs_undelete 发布 XFS 文件系统恢复工具一、概述1. 工具简介xfs_undelete 是一款专门用于 XFS 文件系统的文件恢复工具。该工具由 Jan Kandziora 开发，采用 Tcl 脚本编写，可以帮助用户从 XFS 文件系统中恢复已删除的文件。当前最新版本为 v15.0，发布于 2024 年 7 月 21 日。XFS 是一种高性能的日志文件系统，广泛应用于 Linux 服务器和企业级存储系统。然而，XFS 文件系统的删除机制使得文件恢复变得相当困难。xfs_undelete 工具的出现填补了这一空白，为系统管理员和数据恢复专业人员提供了一种有效的恢复方案。2. 核心功能xfs_undelete 的主要功能包括：扫描 XFS 文件系统中所有标记为已删除的文件根据删除时间范围筛选恢复文件根据文件类型进行选择性恢复自动识别文件类型并分配扩展名对恢复的文件进行完整性检查支持中断后继续恢复3. 项目信息仓库地址：https://github.com/ianka/xfs_undelete开发语言：Tcl（69.6%）、Roff（29.9%）、Nix（0.5%）许可证：GPL-3.0GitHub 星标：297Fork 数量：51贡献者：5 人二、工作原理1. 技术架构XFS 文件系统采用 B+ 树结构来管理 inode。当文件被删除时，XFS 会将 inode 标记为删除状态，但并不会立即清除 extent（数据块映射）信息。xfs_undelete 正是利用这一特性来实现文件恢复。graph TB A[XFS 文件系统] --> B[分配组 AG] B --> C[Inode B+树] C --> D[扫描 Inode] D --> E{检查魔术字符串} E -->|IN\\0\\0| F[已删除 Inode] E -->|其他| G[跳过] F --> H[解析 Extent 信息] H --> I[收集数据块] I --> J[重组文件数据] J --> K[保存到目标位置]2. 恢复机制xfs_undelete 的工作流程包括以下步骤：遍历每个分配组的 inode B+ 树检查文件系统中存储 inode 的块，查找魔术字符串 IN\0\0（表示已删除的 inode）尝试解析 inode 中存储的 extent 信息（XFS 不会删除这些信息）收集文件的数据块将数据块重组并保存到指定的恢复目录3. 文件识别工具使用 file 命令和 magic number 数据库来识别文件类型。如果安装了支持 MIME 类型的 file 工具，xfs_undelete 可以根据文件内容猜测文件扩展名。三、系统要求1. 运行环境A. 必需组件Tcl >= 8.5tcllib 包（用于解析命令行参数）GNU coreutils（包含 dd、readlink、stat 等工具）B. 推荐组件file 工具（具有 magic number 文件和 MIME 类型支持）C. 存储要求需要在另一个文件系统上有足够的存储空间来保存恢复的文件。恢复的文件无法在原位恢复。2. 支持的发行版xfs_undelete 已经被以下 Linux 发行版收录：OpenSUSE Linux：https://software.opensuse.org/package/xfs_undeleteArch Linux（AUR）：https://aur.archlinux.org/packages/xfs_undelete/四、功能详解1. 时间范围过滤工具提供了灵活的时间过滤选项，可以精确控制需要恢复的文件范围。A. 删除时间范围（-t 选项）只恢复在指定时间范围内删除的文件。时间范围可以指定为：两个时间点，用双点分隔：2020-03-19..-2hours从纪元开始的范围：..-2hours到当前时间的范围：-2hours..单个时间点：-2hours时间规范支持 Tcl 的 clock scan 函数接受的所有值。B. 修改时间范围（-T 选项）只恢复在删除前指定时间范围内修改过的文件。这个选项对于知道最新备份日期的情况非常有用。时间范围格式与 -t 选项相同。2. 文件类型过滤A. 包含过滤（-r 选项）只恢复与指定模式匹配的文件类型。模式列表用逗号分隔。默认情况下，此模式为 *，即恢复所有文件。B. 排除过滤（-i 选项）忽略与指定模式匹配的文件类型。默认设置为 bin，即忽略所有未知类型的文件。C. 文件类型模式文件类型模式可以是 / 形式（匹配 MIME 类型）或其他形式（匹配文件扩展名）。文件扩展名是根据 file 工具从文件内容猜测的，因此可能与删除前的扩展名不同。使用 -l 选项可以查看所有有效的文件类型。3. 其他过滤选项A. inode…