-
场景A(EXT3/EXT4 且未被覆盖):优先用 extundelete 直接按目录恢复
- 安装:sudo apt-get update && sudo apt-get install extundelete
- 恢复目录:sudo extundelete /dev/sdXY --restore-directory /path/to/your/dir
- 恢复单个文件:sudo extundelete /dev/sdXY --restore-file /path/to/file
- 全盘尝试:sudo extundelete /dev/sdXY --restore-all(谨慎,可能产生大量文件)
- 结果默认在运行目录的 RECOVERED_FILES/ 中。
-
场景B(任意文件系统或 extundelete 失败):用 TestDisk/PhotoRec 深度扫描
- 安装:sudo apt-get install testdisk
- TestDisk 图形化向导:sudo testdisk → 选择磁盘 → Proceed → Advanced → Undelete,按提示勾选已删除目录并复制到其他磁盘。
- PhotoRec(按文件类型恢复,适合目录结构已损坏的情况):sudo photorec /dev/sdXY,选择分区类型、要恢复的文件类型、以及保存目录(务必在其他磁盘),开始扫描并恢复。
-
场景C(目录被进程占用未真正释放):通过 /proc//fd 复制回文件
- 查找被删除但仍被占用的句柄:lsof | grep deleted
- 从进程句柄复制:sudo cp /proc//fd/<FD_NUM> /path/to/save/recovered_file
- 适用于日志等“被删除但仍打开”的文件,可逐个恢复后再重建目录结构。