温馨提示×

Debian怎么恢复删除文件

小樊
40
2026-07-27 15:16:02
栏目: 智能运维

在 Debian(以及大多数 Linux 系统)中,恢复误删文件的可能性取决于文件系统类型、删除方式以及是否继续写入数据。下面按常见场景给你一个实用指南。


一、先确认几个关键信息(非常重要)

在尝试恢复前,请先确认:

  1. 文件系统类型

    df -T
    

    常见:

    • ext4(最常见,可恢复)
    • xfs(难度较大)
    • btrfs(支持快照,较容易)
  2. 文件是怎么删的

    • rm 删除 ✅ 可尝试恢复
    • 清空回收站 ✅ 可尝试恢复
    • dd / 格式化 ❌ 基本无法恢复
  3. 删除后是否写入新数据

    • ❗ 删除后立即停止写入磁盘
    • 最好卸载分区或进入 Live 系统

二、最常用方案(ext4 文件系统)

✅ 方法 1:使用 extundelete(推荐)

1️⃣ 安装

sudo apt update
sudo apt install extundelete

2️⃣ 卸载目标分区(关键)

假设删除的是 /home

sudo umount /home

如果无法卸载:

sudo systemctl isolate rescue.target

3️⃣ 查看可恢复的文件

sudo extundelete /dev/sdaX --restore-all

或使用 inode 查看:

sudo extundelete /dev/sdaX --inode 2

4️⃣ 恢复文件

sudo extundelete /dev/sdaX --restore-file path/to/file

恢复的文件会保存在当前目录的:

RECOVERED_FILES/

✅ 方法 2:使用 testdisk(通用、强大)

适合:

  • 误删文件
  • 误删分区
  • 文件系统损坏

1️⃣ 安装

sudo apt install testdisk

2️⃣ 运行

sudo testdisk

3️⃣ 操作步骤(简要)

  1. 选择磁盘
  2. 选择分区表类型(一般选 Intel
  3. 选择 Advanced
  4. 选择分区 → Undelete
  5. 选择文件 → c 复制到安全位置

不需要卸载分区(但建议只读挂载)


三、XFS 文件系统(难度较大)

XFS 没有成熟的 undelete 工具,可尝试:

sudo apt install xfsprogs

但成功率很低,建议:

  • 使用备份
  • 或尝试 testdisk

四、Btrfs(如果你在用)

如果你使用的是 Btrfs:

sudo btrfs subvolume list /

查看是否有快照:

sudo btrfs subvolume snapshot -r / /snapshots/backup

从快照中直接拷贝文件即可。


五、如果没有任何工具,还能做什么?

❌ 不推荐但可尝试

  • grep 扫描磁盘(仅限文本文件)
sudo grep -a -C 50 "关键词" /dev/sdaX > recovered.txt

❗ 风险大,仅应急使用


六、恢复失败的常见原因

原因 说明
文件已被覆盖 几乎无法恢复
SSD + TRIM 数据可能已被清空
使用 rm -rf 无回收站
没有立刻停止写入 数据被新文件覆盖

七、重要建议(以后防丢)

✅ 使用 trash-cli 代替 rm

sudo apt install trash-cli
alias rm=trash

✅ 定期备份

rsync /data /backup

✅ 启用快照(btrfs / LVM)


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

  • 判断你的文件系统是否还能恢复
  • 给你一步一步命令
  • 分析 df -T 输出

你可以直接贴出:

df -T
lsblk

0