在 Debian(以及大多数 Linux 系统)中,恢复误删文件的可能性取决于文件系统类型、删除方式以及是否继续写入数据。下面按常见场景给你一个实用指南。
在尝试恢复前,请先确认:
文件系统类型
df -T
常见:
ext4(最常见,可恢复)xfs(难度较大)btrfs(支持快照,较容易)文件是怎么删的
rm 删除 ✅ 可尝试恢复dd / 格式化 ❌ 基本无法恢复删除后是否写入新数据
extundelete(推荐)sudo apt update
sudo apt install extundelete
假设删除的是 /home:
sudo umount /home
如果无法卸载:
sudo systemctl isolate rescue.target
sudo extundelete /dev/sdaX --restore-all
或使用 inode 查看:
sudo extundelete /dev/sdaX --inode 2
sudo extundelete /dev/sdaX --restore-file path/to/file
恢复的文件会保存在当前目录的:
RECOVERED_FILES/
testdisk(通用、强大)适合:
sudo apt install testdisk
sudo testdisk
Intel)AdvancedUndeletec 复制到安全位置✅ 不需要卸载分区(但建议只读挂载)
XFS 没有成熟的 undelete 工具,可尝试:
sudo apt install xfsprogs
但成功率很低,建议:
testdisk如果你使用的是 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