Linux中恢复误删文件的方法及工具

在Linux操作系统中,没有类似于Windows的回收站,它需要借助工具才能恢复已删除的文件,在执行rm命令时一定要小心谨慎,因为,有工具也并不代表能百分百恢复数据。本文介绍几种在Linux操作系统中恢复被删除文件的方法和工具。

方案一 恢复处于打开状态的已删除文件

通过lsof命令列出被各种进程打开的文件信息,其原理是从内存中的信息恢复文件,先了解lsof命令:

常用参数

参数 说明
lsof {filenam} 显示打开指定文件的所有进程
lsof -a 两个参数都必须满足时才显示结果
lsof -c {string} 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -d FD 显示指定文件描述符的进程
lsof +d /DIR/ 显示目录下被进程开启的文件
lsof +D /DIR/ 显示目录下被进程开启的文件,同时搜索子目录
lsof -g {gid} 显示归属{gid}的进程情况
lsof -i:{port} 显示打开{port}端口号的进程
lsof -n 不将IP转换为{hostname}
lsof -u {username} 显示所属{user}进程打开的文件

字段说明

字段 说明
COMMAND 进程的PID(进程标识符)
USER 进程所有者
FD 用来识别该文件(文件描述符)
DEVICE 指定磁盘的名称
SIZE 文件的大小
NODE 索引节点(文件在磁盘上的标识)
NAME 打开文件的确切名称

以恢复正在使用中的/opt/chkfile.txt文件为例,我们新建一个终端,将该文件删除。

0x01 查看正在使用删除文件的进程号

重点在COMMAND列,即进程{PID},下一步将用到它。

0x02 恢复/proc中对应的文件

方案二 恢复已删除但未被覆盖的文件(xfs/ext文件系统)

据说没有特别适合xfs文件系统的数据恢复软件,但 TestDisk & PhotoRec 还是可以一试的。

访问testdisk下载地址

1x01 安装TestDisk(PhotoRec)

在程序目录中有三个可执行文件,分别是fidentify_static、photorec_static和testdisk_static,我们使用photorec_static工具来恢复数据。

1x02 开始恢复数据

上下方向键选择对应的选项,左右方向键选择底部菜单,分别是:

菜单 说明
Search 开始恢复
Options 调整恢复参数
File Opt 调整扫描的文件类型
Quit 退出

此外,通过回车键、空格键进行选择、修改或返回。

方案三 恢复已删除但未被覆盖的文件(ext文件系统)

该方案适用于ext3/ext4文件系统,通过extundelete工具根据存储在ext3/ext4分区日志中的信息恢复被删除的文件。

访问extundelete网站

2x01 卸载分区

恢复前卸载分区或磁盘,如果删除的是系统根分区,须进入单用户模式以只读模式挂载根分区。

2x02 安装extundelete

2x03 查找已删除的数据

查找指定分区上被删除的文件,最后一列为红色的deleted标记。

2x04 开始恢复数据

执行恢复文件的命令后,会在当前位置生成RECOVERED_FILES目录,成功恢复的文件都会出现在该目录中。

原创文章禁止转载:技术学堂 » Linux中恢复误删文件的方法及工具

精彩评论

4+2=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏