运维123 - 数据恢复
type: channel
link: https://www.sddts.cn/index.php/category/%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D/
items: xfs_undelete 发布 XFS 文件系统恢复工具
items: CentOS下误删文件后的恢复

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…

CentOS下误删文件后的恢复
type: item
date: 2023-11-03T09:22:00+00:00
description: 有个朋友使用tar --remove-files操作，执行了两遍，造成数据丢失。如何理解tar --remove-filestar --remove-files 是一个 tar 命令的选项，用于在打包文件后删除源文件。下面是对该选项的解释和使用方法：tar 命令用于创建归档文件或提取归档文件中的内容。默认情况下，tar 命令在打包文件后不会删除源文件，而是保留原始文件。使用 tar --remove-files 选项可以在打包文件后删除源文件。这对于需要将文件打包并删除原始文件的情况非常有用，以释放磁盘空间或确保文件不被重复处理。以下是使用 tar --remove-files 的示例命令：tar -czvf archive.tar.gz --remove-files file1.txt file2.txt在上面的命令中，-czvf 选项用于创建一个压缩的归档文件 archive.tar.gz。--remove-files 选项告诉 tar 在打包文件后删除指定的源文件 file1.txt 和 file2.txt。请注意，使用 --remove-files 选项时要小心，因为它会永久删除源文件，无法恢复。在使用该选项之前，请确保你已经备份了重要的文件或确认不再需要这些文件。此外，tar 命令的不同版本可能会有略微不同的选项和行为，请查阅你所使用的 tar 版本的文档或使用 tar --help 命令获取更多详细信息。如何恢复linux误删文件如果你在Linux系统中误删了文件，可以尝试以下方法来恢复文件：使用回收站：如果你使用的是图形界面的文件管理器（如Nautilus、Nemo等），删除的文件可能会被移动到回收站（Trash）中。你可以打开回收站并还原误删的文件。使用命令行工具：如果你在命令行中删除了文件，可以尝试使用一些命令行工具来恢复它们。以下是一些常用的命令行工具：extundelete：用于恢复被ext2、ext3或ext4文件系统删除的文件。使用该工具需要在文件系统上运行，因此需要从另一个存储介质（如USB驱动器）或Live CD/USB中启动系统，并在那里安装和运行extundelete。testdisk：一个功能强大的工具，用于恢复被删除的分区和文件。它支持多种文件系统，并且也需要从另一个存储介质或Live CD/USB中启动系统来运行。photorec：也是testdisk软件包的一部分，专门用于恢复各种类型的文件，包括照片、视频和文档等。它可以在文件系统上运行，也可以从另一个存储介质或Live CD/USB中启动系统来运行。这些工具的使用方法和恢复步骤可能会有所不同，因此请参考它们的文档或使用帮助命令来了解详细的操作步骤。使用数据恢复软件：如果以上方法无法恢复文件，你可以尝试使用一些专业的数据恢复软件。这些软件通常具有更高级的恢复功能，但可能需要付费购买或提供试用版。一些常见的数据恢复软件包括Recuva、TestDisk、PhotoRec、EaseUS Data Recovery等。无论你使用哪种方法，重要的是在发现误删文件后尽快采取行动。避免写入新数据到误删文件所在的存储介质上，以减少文件被覆盖的风险，并尽快尝试恢复文件。如何使用testdisk恢复rm误删文件？如果你使用的是 CentOS 系统，你可以按照以下步骤使用 testdisk 工具来尝试恢复 rm 误删的文件：安装 testdisk：打开终端并使用以下命令安装 testdisk：sudo yum install testdisk启动 testdisk：在终端中输入 testdisk 命令来启动 testdisk。选择磁盘：testdisk 启动后，它会显示可用的磁盘列表。选择包含误删文件的磁盘，并按下 Enter 键。选择分区类型：根据你的磁盘分区类型选择适当的选项。通常，testdisk 会自动检测分区类型，你只需按照提示进行选择。选择分区：在分区列表中，选择包含误删文件的分区，并按下 Enter 键。选择分区表类型：根据你的分区表类型选择适当的选项。如果不确定，可以选择默认选项。分析分区：testdisk 将开始分析分区并扫描已删除的文件和目录。这可能需要一些时间，具体取决于分区的大小和复杂性。寻找被删除的文件：在分析完成后，testdisk 会显示找到的文件和目录列表。你可以使用键盘导航来浏览列表。恢复文件：使用键盘导航找到要恢复的文件或目录，并按下 C 键来复制它们到另一个位置。选择一个安全的目标位置，以免覆盖其他数据。完成恢复：完成文件恢复后，你可以退出 testdisk。请记住，在使用 testdisk 进行文件恢复时要小心谨慎，并遵循其文档中的指示。尽量避免在误删除文件的磁盘上写入新数据，以提高恢复成功的机会。需要注意的是，无…