在 Debian(或其他 Linux 系统)上误删数据后,能否恢复取决于删除方式、文件系统类型、是否有备份以及后续操作是否覆盖了磁盘。下面按常见场景给你一个实用恢复指南。
立刻停止写入该磁盘
尽量不要在当前系统直接恢复
确认文件系统类型
df -T
常见:
ext4(最常见)xfsbtrfsntfs(双系统)推荐工具:extundelete
sudo apt install extundelete
恢复单个文件:
sudo extundelete /dev/sdXn --restore-file /home/user/test.txt
恢复整个目录:
sudo extundelete /dev/sdXn --restore-directory /home/user/docs
恢复全部:
sudo extundelete /dev/sdXn --restore-all
恢复文件会保存在当前目录的 RECOVERED_FILES/
⚠️ 注意:
/dev/sdXn 是分区,不是整块硬盘mount -o ro /dev/sdXn /mnt
sudo apt install debugfs
sudo debugfs -w /dev/sdXn
在 debugfs 中:
lsdel
查看被删文件 inode,再尝试恢复(偏专业)
✅ 优先尝试 extundelete ✅ 如果删除时间很短,成功率较高
如果是刚删除且程序仍占用文件:
lsof | grep deleted
如果看到:
nginx 1234 user 3w REG ... /var/log/test.log (deleted)
可以恢复:
cp /proc/1234/fd/3 /tmp/test.log
如果是桌面环境(GNOME / KDE):
~/.local/share/Trash/files/
直接复制出来即可。
推荐工具:TestDisk
sudo apt install testdisk
sudo testdisk
功能:
适合:
mkfssudo btrfs restore /dev/sdXn /mnt/recovery
或查看快照:
btrfs subvolume list /
rsynctimeshiftborgrsnapshotdeja-dup直接还原即可。
| 情况 | 恢复成功率 |
|---|---|
| rm 后立刻恢复 | ⭐⭐⭐⭐ |
| 删除后继续写数据 | ⭐⭐ |
| 格式化 ext4 | ⭐⭐⭐ |
| 格式化后重装系统 | ⭐ |
| SSD + TRIM | ⚠️ 极低 |
⚠️ SSD + TRIM(discard) 会定期清空数据块,恢复难度极大
trash 代替 rmsudo apt install trash-cli
alias rm='trash'
timeshift
rsync
borgbackup
chattr +i 文件名
你可以直接告诉我:
rm / rm -rf / 格式化?)ext4 / btrfs / xfs)我可以给你最稳妥的恢复方案。