Ubuntu 误删文件的恢复步骤
一、立即止损与准备
- 立刻停止对原磁盘/分区的写入操作(下载、解压、缓存、日志等),避免被删除数据块被新写入覆盖。
- 优先从备份恢复:检查是否有 rsync、tar、Bacula/Amanda、云备份 等最近备份可用。
- 若系统无法启动或分区已卸载困难,使用 Ubuntu Live USB 启动后再进行恢复操作。
- 准备一个容量足够的外接硬盘/另一个分区用于保存恢复结果,切勿把恢复文件写回原分区。
二、优先尝试的方案
- 图形界面回收站:如使用 GNOME/KDE 桌面,打开桌面上的 Trash(回收站),找到文件后右键选择 Restore(恢复)。
- 系统仍运行且文件被某进程占用:用 lsof 查找仍打开被删文件的进程,从 /proc//fd/ 复制回原路径。例如:
- 查找:lsof | grep deleted
- 复制:cp /proc//fd/ /path/to/restore/file
- 包管理器误删系统目录(如 /usr/include):用 dlocate 定位所属包并重装,例如:
- 列出缺失文件所属包:dlocate –package-only /usr/include
- 重装:sudo apt-get install –reinstall $(dlocate –package-only /usr/include)
三、按文件系统选择恢复工具
- 先确认文件系统与分区:df -Th 或 lsblk,确定是否为 ext3/ext4,以及目标分区如 /dev/sda1。
- ext3/ext4 首选 extundelete(基于文件系统日志与元数据):
- 安装:sudo apt-get install extundelete
- 按文件恢复:sudo extundelete /dev/sda1 –restore-file /home/user/file
- 按 inode 恢复:sudo extundelete /dev/sda1 –restore-inode
- 全分区扫描:sudo extundelete /dev/sda1 –restore-all(结果在 RECOVERED_FILES/)
- ext2/ext3/ext4 的底层方案 debugfs(文件系统未严重损坏时):
- 进入:sudo debugfs /dev/sda1
- 列出已删项:debugfs: lsdel(记下 inode)
- 查看详情:debugfs: stat
- 导出数据:debugfs: dump /path/to/save/file
- 分区丢失/跨文件系统或文件被覆盖:TestDisk/PhotoRec
- 安装:sudo apt-get install testdisk
- 分区与引导恢复:sudo testdisk,按向导 Analyse → Advanced
- 文件雕刻恢复:sudo photorec,选择磁盘/分区、文件类型,设置输出目录到另一块盘
- 仅恢复特定格式(文件雕刻):foremost
- 安装:sudo apt-get install foremost
- 恢复 PNG:foremost -t png -i /dev/sdX -o /recover/out
- 恢复多类型:foremost -t doc,pdf,jpg -i /dev/sdX -o /recover/out
四、常见场景与命令速查
| 场景 | 工具 | 关键命令示例 |
|---|---|---|
| 回收站可找回 | 桌面回收站 | 打开 Trash → 右键 Restore |
| 进程仍占用被删文件 | lsof + /proc | lsof |
| ext3/ext4 按文件名 | extundelete | extundelete /dev/sda1 –restore-file /home/user/file |
| ext3/ext4 按 inode | extundelete | extundelete /dev/sda1 –restore-inode |
| ext2/ext3/ext4 底层导出 | debugfs | debugfs: lsdel;stat ;dump /restore/file |
| 分区丢失/结构损坏 | TestDisk | sudo testdisk → Analyse/Advanced |
| 文件被覆盖/跨FS | PhotoRec | sudo photorec → 选盘/分区/类型 → 设置输出目录 |
| 特定格式批量 | foremost | foremost -t jpg,pdf -i /dev/sdX -o /recover/out |
五、成功率与后续建议
- 成功率取决于删除后的写入量、时间、文件系统类型;越早开始、越少写入,成功率越高。
- 恢复文件务必输出到不同物理盘/分区,避免二次覆盖。
- 重要数据建议尽快寻求专业数据恢复服务;同时建立定期备份(如 rsync、tar、Bacula/Amanda、云备份)以防再次丢失。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1482647.html