ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

rm -rf误删文件如何恢复?银河麒麟V10系统下数据恢复实践指南

rm -rf误删文件如何恢复?银河麒麟V10系统下数据恢复实践指南 在服务器日常维护和国产化项目交付中一条rm -rf命令引发的“事故”并不少见。尤其是当误删目录恰好是业务数据、配置文件或者刚迁移完成的数据库导出文件时很多人第一反应都是上网搜索“rm -rf 之后文件还能恢复吗”。本文就针对国产操作系统银河麒麟 V10 环境完整梳理误删文件后的应急处理流程、不同文件系统下的恢复方法、底层工具用法以及事前预防方案。内容偏实操命令都可直接复制但请在真正操作前先理解每一步的意义。1. 背景与核心概念1.1 rm命令的工作机制在 Linux 和国产操作系统中rm命令删除文件时并不会像 Windows 回收站那样把文件移动到某个隐藏目录而是直接对文件系统的目录项和 inode 链接计数进行操作。当文件被删除后目录项被移除inode 状态被标记为“已释放”文件对应的数据块会被文件系统视为“可用空间”。这里的关键点在于rm只是把文件的“索引”删掉了数据块里的二进制内容并不会被立刻清零。只要删除后没有新的写入操作覆盖这些数据块文件内容在物理层面仍然存在。这也是“误删后还有可能恢复”的唯一理论基础。很多初学者会把rm -rf理解为“彻底粉碎文件”其实不对。真正的彻底删除必须对磁盘做多次覆写或使用专门的擦除工具。rm -rf的可怕之处在于递归删除的破坏范围极大而不是文件数据本身的不可恢复性。1.2 银河麒麟V10下的恢复特点银河麒麟 V10 是国内使用较广的国产操作系统兼容 CentOS / RHEL 生态默认文件系统通常为 ext4 或 xfs。这对文件恢复来说是一个有利条件因为 ext4 和 xfs 都是 Linux 下非常成熟的文件系统社区中有不少针对性的恢复工具理论上可以正常编译和运行。但与纯 CentOS 环境相比麒麟系统在软件仓库、内核版本、依赖库路径上可能有一定差异某些恢复工具不能直接通过yum安装需要手动编译。另外如果目标机器是 ARM 架构飞腾、鲲鹏等工具还需要交叉编译或在目标机上直接编译。这些细节会在后面的章节逐一说明。还有一个容易被忽略的问题在国产化项目中服务器往往部署着数据库、中间件等核心业务进程。误删文件后如果业务进程还在持续写入日志或者后台任务还在跑定时备份那么被删除文件所占用的数据块很快就会被重新分配恢复成功率会急剧下降。因此“立刻停止一切写操作”比“马上找恢复工具”更加重要。1.3 误删后必须立即执行的三个动作先说结论。一旦发现误删文件请按照下面三个动作执行顺序不要乱。第一停止对目标分区的一切写操作。包括但不限于停止业务进程、暂停日志轮转、关闭可能创建临时文件的计划任务、不要再往该分区拷贝任何文件。如果误删的是系统分区且无法完全静默至少也要把写入量降到最低。第二确认误删文件所在的分区和文件系统类型。通过df -hT或findmnt查看目标目录的挂载点。不同文件系统对应的恢复工具不一样先确认类型能少走很多弯路。第三做磁盘镜像或逻辑卷快照。这一步是最容易被人忽略的也是最重要的。直接在原始盘上执行恢复工具本质上也属于“写操作”可能对已删除的数据造成二次破坏。正确做法是先对目标分区做一份完整镜像然后在镜像文件上执行恢复操作。这样即使恢复过程出错原始数据依然保持原状可以换一种方案继续尝试。2. 环境准备与恢复工具清单2.1 系统环境与示例约定本文示例环境以银河麒麟 V10 高级服务器操作系统为例shell 使用 Bash操作账户为 root 或具有 sudo 权限的普通用户。需要注意麒麟 V10 存在 x86_64 和 aarch64 两种常见架构不同架构的编译方法一致但依赖包名称可能略有区别实际操作时以本机uname -m的输出为准。以下命令用于查看系统信息和架构uname -m cat /etc/kylin-release df -hT示例中假设误删目录为/data/www该目录挂载在独立分区/dev/sdb1上文件系统类型为 ext4。在后文 XFS 场景中则假设挂载点为/data文件系统类型为 xfs。2.2 确认分区与文件系统类型恢复前必须先确认文件所在目录到底位于哪个分区。很多人会把/根分区和/data业务分区混在一起如果没有确认就直接在整个磁盘上扫描效率很低还可能选错设备。使用下面的命令查看挂载关系df -hT /data/www命令输出会显示文件系统类型、设备路径、总容量和使用量。例如文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sdb1 ext4 100G 50G 45G 53% /data如果需要更详细的挂载参数可以使用findmntfindmnt /data输出中可以看到文件系统类型、挂载选项、是否只读等信息。如果发生误删后你担心继续写入也可以直接将分区重新以只读方式挂载但这要求业务已经停止。示例mount -o remount,ro /data恢复完成后再以读写方式重新挂载。2.3 恢复工具的适用场景对比在开始实战前先把常用恢复工具的适用场景列出来方便后续选择。工具名称适用文件系统适用场景风险等级extundeleteext3 / ext4文件被删除、inode尚未被覆盖可恢复文件和目录中xfs_undeletexfs扫描分区空闲空间查找文件头特征适合小文件高可能破坏元数据debugfsext2 / ext3 / ext4直接操作文件系统底层查看已删除inode高/proc文件描述符任意文件系统文件已被删除但进程仍持有文件句柄低LVM快照任意文件系统误删后立刻对逻辑卷做快照从快照中恢复低从上表可以看出恢复成功率最高的场景是“文件被进程占用但已被删除”也就是通过/proc文件系统找回。其次是 ext4 文件系统的 extundelete 方案。xfs 的恢复工具相对有限成功率不稳定更多依赖备份和快照。3. 误删恢复前的判断与镜像保护3.1 先判断文件是否还被进程占用有一种特殊情况文件已经被rm删除但某个进程仍然打开着这个文件比如 Nginx 的 access.log、Java 进程的 stdout 日志、数据库临时文件等。只要进程不退出文件内容就不会被真正释放可以通过/proc/PID/fd/目录把文件完整复制回来。使用lsof可以快速列出已删除但仍被进程占用的文件lsof L1输出中会包含类似下面的记录COMMAND PID USER FD TYPE DEVICE SIZE/OFF NLINK NAME java 12345 root txt REG 8,1 2048000 0 /data/app.jar (deleted)NLINK 为 0 表示该文件的目录项已经被删除但文件内容仍被进程引用。NAME后缀为(deleted)的就是需要关注的。找到 PID 和文件描述符后可以直接从/proc恢复具体方法见第 6 章。3.2 对目标分区做裸镜像如果文件没有被进程占用接下来第一件事就是做镜像。目标分区有多大镜像文件就有多大。假设/dev/sdb1是目标分区使用dd制作镜像mkdir -p /recovery sudo dd if/dev/sdb1 of/recovery/sdb1.img bs4M convnoerror,sync statusprogress这里有两个必须特别注意的地方第一of指向的镜像保存目录绝对不能与if指定的分区相同。如果把镜像写到同一个分区dd 在读取原始数据的同时又在覆盖这个分区恢复成功率会大打折扣。第二convnoerror,sync参数告诉 dd 遇到读取错误时不要中断而是用空数据补齐尽量把整块分区读完。BS 设为 4M 可以提升复制速度实际可以根据磁盘性能调整。如果你的环境支持 LVM 快照也可以在误删后立刻创建快照lvcreate -L 20G -s -n data_snap /dev/vg_data/lv_data快照创建成功后可以从快照逻辑卷/dev/vg_data/data_snap进行挂载和恢复业务可以继续运行这是比较理想的方式。但快照需要提前规划如果数据卷本身不是 LVM只能用 dd 方法。3.3 恢复时优先操作镜像镜像制作完成后后续所有恢复工具都应该尽量在镜像文件上执行而不是直接在/dev/sdb1上操作。这样做的好处是即使 extundelete 或 debugfs 因为误操作破坏了数据原始分区仍然保留着初始状态还可以重新制作镜像再试。把镜像文件当作回环设备挂载sudo losetup /dev/loop0 /recovery/sdb1.img然后可以像操作普通块设备一样在/dev/loop0上执行 extundelete。不过 extundelete 需要直接访问设备节点所以后续恢复命令中把/dev/sdb1替换为/dev/loop0即可。需要提醒的是dd 镜像文件会占用大量磁盘空间。操作前先确认/recovery目录所在分区有足够剩余容量。如果分区本身有 1TB而可用空间不足以保存完整镜像建议优先对误删目录所在的小范围空间做针对性处理或者评估 LVM 快照方案。4. 场景一EXT4文件系统使用extundelete恢复4.1 extundelete安装extundelete 是经典的 ext3/ext4 文件误删恢复工具也是本文最常用的实战方案。在银河麒麟 V10 环境下默认仓库不一定直接提供该软件包建议先尝试 yum 安装sudo yum install -y extundelete如果提示找不到软件包就需要手动编译。先安装编译依赖sudo yum install -y gcc gcc-c make e2fsprogs e2fsprogs-devel然后从官方项目地址下载源码。extundelete 0.2.4 是使用较广的版本但下载地址可能随项目迁移而变化建议优先从项目官方发布页获取最新源码。下载并编译的命令如下wget https://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2 tar xjf extundelete-0.2.4.tar.bz2 cd extundelete-0.2.4 ./configure make sudo make install编译完成后执行extundelete --version确认安装成功。如果是 ARM 架构的麒麟环境同样命令在目标机上直接编译即可。4.2 卸载分区或以只读方式挂载在 extundelete 恢复前建议先把目标分区卸载避免 extundelete 操作过程中文件系统又被写入。如果分区无法卸载说明有进程在使用可以用fuser查看fuser -mv /data如果确认业务已停止卸载分区sudo umount /data无法卸载时至少也要改用只读方式挂载sudo mount -o remount,ro /data这里要强调umount前必须确保所有业务进程对/data的读写已经停止否则会导致进程报错甚至数据写入失败造成更大的二次故障。如果前面已经制作了镜像最好的做法是直接在镜像文件对应的回环设备/dev/loop0上操作不需要动原始分区。以下命令均以/dev/sdb1为例实际用时按你的设备路径替换。4.3 恢复指定文件假设被误删的文件路径是/data/www/index.html恢复命令如下sudo extundelete /dev/sdb1 --restore-file www/index.html注意路径不能以/开头。extundelete 的路径是相对分区根目录的路径。执行完成后当前目录下会生成RECOVERED_FILES目录恢复出的文件会按照原有目录结构放在里面ls -l RECOVERED_FILES/www/index.html如果文件内容为空或文件体积为 0说明 inode 指向的数据块已经被覆盖恢复失败。4.4 恢复整个目录如果你想恢复整个误删的目录可以用--restore-directory参数sudo extundelete /dev/sdb1 --restore-directory www这个命令会尝试把/data/www目录下所有已删除且仍然可恢复的文件全部捞回来。优点是省事缺点是恢复出的文件数量可能很大而且部分文件可能不完整。也可以先查看 extundelete 认为哪些 inode 可以恢复sudo extundelete /dev/sdb1 --inode 2输出中会列出目录项和 inode 编号其中带有Deleted标记的记录就是可尝试恢复的对象。根据 inode 编号可以直接恢复特定文件sudo extundelete /dev/sdb1 --restore-inode 123454.5 结果说明与限制extundelete 恢复成功率主要取决于三个因素文件系统在删除操作后是否发生了大量写入、文件是否是连续存储、删除后是否执行过fsck或磁盘整理。如果误删后立刻停机并制作镜像通常能恢复大部分文本文件和配置文件如果是数据库文件这种在删除前就频繁读写的文件恢复难度就会上升。另外extundelete 对 ext4 的支持并不是十全十美的特别是开启flex_bg、metadata_csum等特性的文件系统不同版本表现差异较大。因此更稳妥的做法是准备一块空闲的恢复盘将镜像 dd 出来后再尝试恢复。不要抱有“extundelete 一定能成功”的预期它只是众多手段中概率较高的一种。5. 场景二XFS文件系统的恢复思路5.1 XFS删除机制与恢复难点银河麒麟 V10 默认安装时如果采用自动分区方案根分区通常是 xfs。和 ext4 不同xfs 采用日志式结构和 B 树管理元数据删除文件后元数据会较快回收数据块也可能被快速重新分配。因此xfs 误删文件的恢复比 ext4 困难得多社区也没有像 extundelete 那样成熟的命令行工具。xfs 的恢复思路主要是扫描整个分区的空闲空间通过文件头部特征来识别数据块然后尽可能拼接。对文本文件、配置文件这样的“可识别内容”文件有一定效果但对数据库文件、压缩包等二进制大文件恢复成功率极低。这也是很多运维人员在 xfs 分区上执行rm -rf后求助无门的原因。所以在 xfs 环境中重点应该放在事前备份和快照上事后恢复更多是“尽力而为”。5.2 使用xfs_undelete恢复社区中有一个开源工具叫 xfs_undelete设计思路是扫描 xfs 分区把空闲块中以已知文件头开始的数据内容提取出来。使用它需要先从 GitHub 等平台获取源码并在目标机器上编译。由于项目维护情况可能变化下面只给出思路性命令具体参数以项目 README 为准# 从项目仓库克隆源码 git clone https://github.com/ianka/xfs_undelete.git cd xfs_undelete make编译完成后在 xfs 类型的分区上执行扫描。工具通常要求传入块设备路径并且建议在只读状态下操作sudo ./xfs_undelete /dev/sdb1工具会把扫描到的候选文件输出到指定目录并可能要求你根据文件特征确认哪些是真正需要恢复的内容。由于 xfs 中的碎片化问题恢复出来的文件可能会被切分需要手工拼接整个过程比较依赖经验和运气。5.3 没有工具时的应急处置如果 xfs 分区误删文件后你无法编译 xfs_undelete或者工具处理效果不理想还有两个相对可靠的兜底方案。方案一是利用 LVM 快照。如果 xfs 所在逻辑卷属于 LVM且误删后立刻创建了快照可以直接挂载快照卷把文件复制出来。这是 xfs 场景下最推荐的恢复方式。lvcreate -L 10G -s -n xfs_snap /dev/vg_data/lv_xfs mkdir /mnt/snap mount -o nouuid /dev/vg_data/xfs_snap /mnt/snap cp /mnt/snap/data/important.txt /recovery/挂载 xfs 快照时通常需要加nouuid选项否则因为快照和原卷拥有相同的 UUID内核可能拒绝挂载。方案二是依靠定期灾备。xfs 文件系统本身支持xfsdump如果之前配置了 xfsdump 备份那么恢复就只是从备份介质回推的问题。再退一步讲如果备份都没有xfs 场景下的文件恢复大概率需要交给专业数据恢复公司处理自己反复扫描分区只会加速数据块覆盖反而不利于后续救援。6. 场景三文件被进程占用时的 /proc 恢复法6.1 原理说明/proc是 Linux 内核提供的虚拟文件系统其中/proc/PID/fd/目录里保存着进程打开文件描述符对应的符号链接。当一个文件被删除但进程仍然持有该文件句柄时通过文件描述符可以继续访问已经“不存在”的文件内容。这种方式恢复的数据完整性是最好的因为文件内容仍然由进程持有数据块尚未被真正释放。常见场景包括Nginx 或 Tomcat 日志文件被误删、Python 脚本正在写入的临时文件被误删、系统服务进程无法重启等。6.2 查看打开文件并恢复先用lsof找到仍持有已删除文件句柄的进程lsof L1输出示例java 4567 root 12w REG 253,1 1024000 0 /data/logs/app.log (deleted)这里的 PID 是 4567文件描述符是 12。可以从/proc/4567/fd/12复制出完整文件cp /proc/4567/fd/12 /recovery/app.log恢复完成后要确认文件内容是否与删除前一致可以使用file和wc -l快速检查file /recovery/app.log wc -l /recovery/app.log需要注意复制操作不会影响原进程继续写文件但复制出的文件是一个稳定的快照之后进程写入的新内容不会同步到这个副本中。如果想要让进程重新写到原路径需要把复制出的文件替换回原目录然后重启进程或重新打开文件描述符。6.3 综合示例下面演示一个完整流程。假设有一个 Java 服务进程PID 为 4567其日志文件/data/logs/app.log被误删但进程仍在运行。第一步确认进程仍持有日志句柄ls -l /proc/4567/fd/12输出中如果显示/data/logs/app.log (deleted)就符合恢复条件。第二步从文件描述符合并复制cat /proc/4567/fd/12 /recovery/app.log第三步确认文件完整性tail -10 /recovery/app.log这种恢复方式几乎零风险但依赖一个前提进程不能退出。如果误删后进程崩溃或被重启文件描述符会关闭这种恢复路径随即失效。因此在发现日志被误删后千万不要盲目重启服务先执行lsof L1看看有没有进程还占着文件。7. 场景四基于debugfs的底层inode恢复7.1 debugfs能做什么debugfs 是 e2fsprogs 自带的一个文件系统调试工具可以直接对 ext4 文件系统进行底层读取和修改。在文件误删场景下debugfs 可以用来查看已删除文件的 inode 信息并尝试恢复还没有被覆写的数据。与 extundelete 相比debugfs 更底层适合在 extundelete 恢复失败时作为补充方案。不过 debugfs 的操作模式是“直接操作文件系统”如果命令使用不当可能对文件系统造成破坏因此强烈建议只在镜像设备上操作。7.2 查看已删除inode并恢复先用只读方式打开目标设备。这里以镜像回环设备/dev/loop0为例sudo debugfs -w /dev/loop0进入交互界面后使用lsdel查看已删除的 inode 列表debugfs: lsdel输出会列出 inode 编号、大小、删除时间等信息。找到目标 inode 后执行恢复。常见的操作是通过dump导出指定 inode 对应文件的内容debugfs: dump 12345 /recovery/file_from_inode12345是 lsdel 中看到的 inode 编号/recovery/file_from_inode是输出的文件路径。如果导出成功可以用file命令检查文件类型确认是否为目标内容。在 debufs 中还存在一个undel命令用于尝试将由攻击链接的 inode 重新链接到原始路径但这个命令需要手动提供额外参数并且对文件系统状态要求很高普通运维场景下直接使用dump更加稳妥。7.3 操作注意事项debugfs 属于“双刃剑”工具以下是实际操作中必须遵守的纪律。第一不要在原始分区上随意操作。最理想的方式是先在/recovery目录准备好镜像通过losetup挂载为回环设备再对回环设备执行 debugfs。第二lsdel列出的大量 inode 可能来自历史上多次删除操作不能凭文件大小猜测就盲目 dump。先根据文件名后缀、文件内容特征或删除时间大致筛选。第三使用dump导出文件时输出目录不要选在目标设备对应的挂载目录下否则同样会造成数据覆盖。debugfs 的恢复成功率并不高因为 inode 是否被复用、数据块是否被覆盖都不容易在操作前判断。它的价值更多在于“多一条恢复路径”而不是“一定能恢复”。8. 误删后的常见问题与排查清单8.1 常见问题对照表问题现象常见原因解决思路extundelete 编译失败缺少 e2fsprogs-devel 或编译器安装 gcc、make、e2fsprogs-devel 后重新编译extundelete 恢复出的文件为空inode 数据块已被新写入覆盖检查是否误删后还在原分区写入数据下次先 dd 镜像xfs 分区恢复工具无法编译xfsprogs 开发库缺失安装 xfsprogs-devel并按项目文档调整编译参数卸载分区提示 target is busy有进程仍在使用该目录用 fuser -mv 定位进程停止后再卸载lsof L1 没有任何输出文件已被完全释放改用 extundelete 或 debugfs 尝试底层恢复恢复出的文件无法打开文件碎片化或数据不连续对二进制大文件恢复率往往较低可考虑专业恢复工具8.2 “rm -rf *”清空目录后还能恢复吗这是一个高频问题直接给结论能不能恢复取决于文件系统类型和删除后的操作。如果文件在 ext4 分区删除后立刻停止写入并使用 extundelete 在镜像设备上恢复目录下的小文件、配置文件和文本文件有较大概率恢复。如果文件在 xfs 分区或者删除后系统持续运行了一段时间恢复概率会大幅下降尤其是大文件基本只能靠备份和快照。还有一种特殊情况执行rm -rf *时如果某些文件正被进程占用即使目录项被删除进程仍然持有文件句柄此时通过/proc/PID/fd/可以完整恢复。这是相对可靠、但很多人不知道的方法。8.3 恢复操作的通用排查流程在开始恢复前建议按照下面的顺序排查避免遗漏关键路径。第一步执行lsof L1确认是否有进程仍持有被删除文件的句柄。有则直接从/proc/PID/fd/恢复。第二步确认文件所在分区的文件系统类型通过df -hT或者findmnt完成。第三步制作分区镜像保存到独立目录。第四步在镜像设备上先尝试 extundeleteext4或 xfs_undeletexfs。第五步如果工具失效再使用 debugfs 检查 inode 状态。第六步任何恢复操作都只是应急手段最终还需要回归到备份体系。整个流程的关键在于“动手前先停止写入”。很多人误删后第一反应是打开各种恢复工具直接扫描原盘这反而会让数据块被工具自身的临时文件覆盖。9. 最佳实践如何从源头避免rm误删9.1 用回收站机制接管rm最简单的防误删方法是让rm变得“不是真正的删除”。可以在用户目录下建立一个回收站目录并用别名把rm替换为mvmkdir -p ~/.trash alias rmmv -t ~/.trash执行source ~/.bashrc后执行rm file.txt时文件会被移动到~/.trash目录而不是真正删除。需要真正清理时再手动执行rm -rf ~/.trash/*这种方案对交互式 shell 比较有效缺点是脚本中调用的rm不会走别名而且长期不清理回收站会占用磁盘空间。建议配合一个定时清理任务比如只保留 7 天内的回收文件。9.2 使用别名与路径校验在 root 用户的 shell 配置中增加交互确认是成本最低的安全措施alias rmrm -i这样执行rm时系统会逐个询问是否确认删除。对单个文件的保护效果较好但对rm -rf directory这种递归删除逐文件确认会让人失去耐心很多人会直接输入yes保护效果自然下降。更稳健的做法是编写一个包装脚本在执行删除前校验路径是否为空、是否为根目录或关键系统目录。例如下面的函数function safe_rm() { for path in $; do if [[ $path / || $path /etc || $path /usr ]]; then echo 拒绝删除危险路径: $path return 1 fi done /usr/bin/rm -i $ }在实际项目里这种路径校验脚本比单纯加-i更可靠尤其是面对rm -rf ${VAR}/*这种写法时如果VAR变量为空命令会变成rm -rf /*校验脚本可以拦截住这种致命情况。9.3 用备份、快照和事务性发布兜底任何恢复工具都不能保证 100% 成功最终的兜底一定是备份和快照。国产化项目交付时建议至少做到两层防护第一层是数据卷的定期快照比如使用 LVM 快照或云平台快照误删后能从最近一个快照恢复第二层是核心配置和数据库的离线备份定期同步到独立存储介质。对于发布类操作可以使用“先复制后切换”的事务性方案。例如发布新版本时不要直接覆盖旧文件而是把新版本部署到新目录再通过软链接切换到新版本。这样即使发布过程出错也可以快速回滚到上一个软链接指向的目录完全规避rm -rf的风险。9.4 生产环境变更纪律最后再强调几条生产环境纪律。删除文件前先确认自己在哪个目录用pwd核对路径。执行rm -rf前把变量内容先echo出来打印一遍特别是脚本中拼接的路径。使用find删除文件时先不带-delete参数列出将删除的文件确认无误后再执行真正删除。所有涉及删除、覆盖、权限变更的操作尽量在测试环境复现一遍并保留操作审计日志。这些纪律并不复杂但能在绝大多数场景下避免误删。对于运维人员和实施工程师来说养成这些习惯比掌握十种恢复工具更重要。10. 总结与学习建议本文从银河麒麟 V10 的操作场景出发完整梳理了误删文件后的恢复流程先停止写入、确认文件系统和分区类型再制作镜像然后根据文件系统类型选择 extundelete、xfs_undelete、debugfs 或/proc恢复方案。同时也给出了一套防误删的最佳实践包括回收站机制、路径校验和备份兜底。表面上看文章讲的是“文件恢复”但实际上更值得记住的是恢复工作背后的数据结构知识inode、数据块、文件句柄、文件系统日志。理解了这些概念你才能判断哪些场景值得尝试恢复哪些场景只能靠备份兜底。下一步可以继续学习 ext4 和 xfs 的内部结构以及 LVM 快照、xfsdump 备份工具的使用这些都比临渴掘井式的恢复更有价值。最后分享一个实用习惯重要目录尽量用独立分区或逻辑卷删除操作前先确认路径删除后不要急于继续写入。文件恢复是最后的逃生通道而合理的备份和操作纪律才是日常工作中最可靠的防线。
返回列表