Linux误删文件恢复核心是停止写入+匹配工具+依赖文件系统残留信息:ext3/ext4可用extundelete保名恢复,XFS/Btrfs等需photorec扫描或快照;根分区须用Live USB操作,立即只读挂载防覆盖,成功率取决于响应速度与是否被新数据覆盖。

rm 删除的文件不会进回收站,恢复不靠“撤销”,而靠**停止写入 + 工具介入 + 文件系统残留信息**。成功率取决于你动手有多快、分区是否还在被使用、以及文件系统类型。ext3/ext4 有较大概率恢复;XFS、Btrfs、ZFS 则基本只能靠快照或 photorec 这类块级扫描工具。
确认文件系统类型和分区状态再动手
别急着运行恢复命令——先看清楚目标分区是不是 ext3 或 ext4,否则 extundelete 直接报错或无效:
- 用
df -T /path/to/deleted/file查挂载点类型,输出中Type字段必须是ext3或ext4 - 如果目标是系统根分区(如
/),不要直接umount,而是立刻重启进 Live USB 环境(如 Ubuntu Live)再操作 - 若无法卸载,至少执行
sudo mount -o remount,ro /dev/sdXN强制只读挂载,避免新数据覆盖 - 检查磁盘是否在持续写入:
iostat -x 1观察%util和wrqm/s,高值说明仍在活跃写入,得先停服务
extundelete 恢复单个文件或目录(仅限 ext3/ext4)
extundelete 是唯一能保留原路径、原文件名的方案,但它依赖未被覆盖的日志(journal)信息,越早运行越可靠:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 安装:Ubuntu/Debian 上跑
sudo apt install extundelete;CentOS/RHEL 需先启用 EPEL,再sudo yum install extundelete - 恢复单个文件:
sudo extundelete /dev/sdXN --restore-file "home/user/report.txt"(注意路径是相对于分区根目录,不是绝对路径) - 恢复整个目录:
sudo extundelete /dev/sdXN --restore-directory "var/log/nginx"(空目录不会被恢复) - 恢复所有可识别的已删文件:
sudo extundelete /dev/sdXN --restore-all,结果默认存进当前目录下的RECOVERED_FILES/ - 常见失败提示:
No journal found表示日志已被清空或分区类型不符;Device or resource busy说明没卸载/没切只读
photorec 扫描原始数据块(通用但无文件名)
当 extundelete 失效、文件系统是 XFS/Btrfs、或分区已被重新挂载写入,就只能靠 photorec ——它不认文件系统结构,只按文件头尾特征(如 JPEG 的 FF D8 FF)拼数据块:
- 安装:
sudo apt install testdisk(photorec是testdisk套件的一部分) - 运行:
sudo photorec /dev/sdXN,交互式菜单里选分区 → 选文件系统类型(一般选Other)→ 选保存路径(务必不在同一块盘上,比如挂到/mnt/external) - 恢复出的文件名全是
f0000000.jpg、f0000001.pdf这类编号,需人工筛选;文本类文件可能残缺,因为没文件系统元数据对齐 - 优势是不怕格式化、不怕非 ext 系统;劣势是耗时长(全盘扫)、不保名、不保目录结构、大文件可能断裂
别忽略最简单的回收站路径
很多人忘了 GUI 删除 ≠ rm 删除。如果你是通过桌面环境(GNOME/KDE)删的,文件大概率还在本地回收站里:
- 检查:
ls ~/.local/share/Trash/files/和ls ~/.local/share/Trash/info/ - 还原方法:
mv ~/.local/share/Trash/files/accident.py ~/original/location/ - 注意:
rm命令、SSH 终端删除、或启用了trash-cli --empty清空行为,都会绕过这个目录 - 某些发行版(如 Ubuntu)的回收站路径可能带用户 ID 后缀,可用
find ~ -path "*/Trash/*" -type d快速定位
rm 回车那刻,手就得离开键盘去查 df -T。

















