温馨提示×

怎么恢复linux删除文件

小樊
47
2026-09-22 20:14:57
栏目: 智能运维

在 Linux 下删除文件后能否恢复,取决于文件是如何被删除的、文件系统类型,以及是否有新数据写入覆盖。下面按常见情况说明:


一、先做的几件事(非常重要)

  1. 立即停止写入该磁盘/分区
    • 不要新建、下载、安装软件
    • 最好立刻卸载分区(如果可以):
      umount /dev/sdXn
      
  2. 不要在原分区上做恢复操作
    • 把恢复工具装到别的分区或 U 盘 Live 系统
  3. 确认删除方式
    • rm 删除?
    • 程序崩溃 / 误格式化?
    • 还在进程打开中?

二、情况 1:文件刚被 rm,但进程还在使用(最常见、最容易恢复)

例如:

rm /var/log/app.log

但程序还在写这个文件。

恢复方法

  1. 找到进程:
lsof | grep deleted

lsof /path/to/file
  1. 通过 /proc 恢复:
cp /proc/<PID>/fd/<FD> /恢复路径/文件名

成功率:极高


三、情况 2:文件被 rm,但没被覆盖(ext3 / ext4 / xfs)

常用恢复工具

1️⃣ extundelete(ext3/ext4)

sudo apt install extundelete
sudo extundelete /dev/sdXn --restore-all

恢复文件在:

RECOVERED_FILES/

2️⃣ testdisk(通用,支持分区/文件恢复)

sudo apt install testdisk
sudo testdisk

步骤:

  • Analyse
  • Quick Search
  • 找到文件 → Copy

3️⃣ photorec(按文件类型恢复)

sudo photorec /dev/sdX

✅ 适合:

  • 照片
  • 视频
  • 文档 ❌ 不支持文件名恢复

四、情况 3:误格式化分区

✅ 用 testdisk

  • 可恢复原分区表
  • 可找回原文件系统结构

五、情况 4:文件已被覆盖 / 磁盘持续写入

基本无法恢复

  • 数据被新内容覆盖
  • 尤其是 SSD(TRIM 后几乎不可逆)

六、不同文件系统的支持情况

文件系统 推荐工具
ext3/ext4 extundelete
xfs xfs_undelete(有限)
btrfs 快照恢复
NTFS testdisk / ntfsundelete

七、防止以后再丢文件

  • 使用 alias rm='rm -i'
  • 重要目录用 rsync 备份
  • 开启文件系统快照(btrfs / LVM)
  • 使用回收站工具:trash-cli

八、如果你愿意,我可以:

  • 根据你 具体命令 + 文件系统 给你精确步骤
  • 判断你当前是否还能恢复
  • 指导你用 Live USB 安全恢复

你可以直接告诉我:

我用了什么命令删除的?什么系统?硬盘还是 U 盘?

0