在任何系统中,删除文件都是一项谨慎的操作。
因为如果不小心删除了重要文件,会给个人或公司造成重大损失。
类似windows系统,误删文件,可以用一些软件恢复。Linux也有几个软件可以误删误恢复。
注意:虽然有软件可以恢复误删的数据,但是完全恢复数据的概率不是100%。
所以用rm命令删除文件的时候一定要小心;重要数据必须备份;而且在被删除的数据恢复之前,新的东西是不能存储在被删除文件的目录中的,否则被覆盖的信息是检索不到的。
以下是Linux中误删文件的恢复操作。
1、lsof
原则:
这个命令实际上不能直接用来恢复文件,但是可以列出各种进程打开的文件的信息。
配合其他命令从/proc目录的信息中恢复文件“文件已被删除,但进程仍保持文件打开”。
/proc目录被挂载为内存中的一个映射区域。当我们读写这些文件时,实际上是从内存中获取相关信息。
因此,当我们读或写一个文件时(即当一个进程正在使用该文件时),即使硬盘中的文件已经被删除,我们仍然可以从内存中的信息恢复该文件。
注:
您必须以root身份运行,因为lsof需要访问核心内存和各种文件。
只有带有“文件已被删除,但进程仍保持文件打开”的文件才能被恢复。
如果该目录被误删除,则该进程不会打开该目录中的其他文件,并且无法通过该方法恢复未使用的文件。
lsof输出信息的含义:
命令进程PID(进程标识符)
用户流程所有者
FD用于标识文件(文件描述符)
指定设备磁盘的名称。
文件的大小
节点信息节点(文件在磁盘上的标识)
命名打开文件的确切名称。
最常用的参数:
-c显示进程当前打开的文件。
-p显示pid进程打开了哪些文件。
-g显示了gid的进度。
-d显示目录中由进程打开的文件。
-d用fd 4显示进程。
-i:80显示了打开80端口的过程。
还原文件操作
环境:
/mnt下有一些文件,其中一个是train.less,然后另一个终端删除了。
[1] lsof view
检查正在使用的删除文件的进程号。
lsof /mnt
【2】恢复[2]恢复
切换到/proc并删除文件对应的进程的pid下的文件描述符中的目录;将相应的内容重定向或cp到其他文件。
重点关注:PID 与 FD
cd /proc/31284/fd/
第4类& gt/mnt/ferris_train.less
2、extundelete2、文本删除
原则:使用分区日志中存储的信息,尝试恢复从ext3或ext4的分区中删除的文件。
优点:
相对于ext3grep只能恢复ext3文件系统的文件,它的适用范围更广,恢复速度更快。
删除官方地址(官方文件):
http://extundelete.sourceforge.net
extend delete下载地址:
http://downloads.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
(extundelete的最新版本是0.2.4,发布于2013年1月)
注:
在数据删除之后,要卸载被删除数据所在的磁盘或是分区如果是系统根分区遭到误删除,就要进入单用户模式,将根分区以只读的方式挂载,尽可能避免数据被覆盖数据被覆盖后无法找回恢复仍有一定的机率失败,平时应对重要数据作备份,小心使用rm
安装
1。依赖安装
Centos安装操作
yum安装e2fsprogs-devel e2fsprogs* gcc*
Ubuntu安装操作
apt-get install build-essential e2fs libs-dev e2fs libs-dev
2。编译并安装
wget http://downloads . SourceForge . net/project/extend delete/extend delete/0 . 2 . 4/extend delete-0 . 2 . 4 . tar . bz2
tar xf extendelete-0 . 2 . 4 . tar . bz2
cd文本删除-0.2.4
。/配置
制造
进行安装
CD/root/extendelete-0 . 2 . 4/src
文本删除-v
执行***ke命令将在src目录中生成extundelete可执行文件,您可以在其中直接执行recovery命令。
执行***ke install将在/usr/local/bin/下安装程序
还原文件操作
执行extundelete命令的当前目录必须是可写的。
1。检查要将文件还原到的分区的文件系统
df -Th
2。卸载要恢复的文件的分区
卸载/管理
3。检查可恢复的数据
指定要搜索的误删文件的分区。
最后一列标记为Deleted的文件,即为删除了的文件
text endelet/dev/VD B1 –索引节点2(根分区的索引节点值是2)
4。恢复单个目录
指定要还原的目录名。
如果是空目录,则不会恢复。
text endelet/dev/VD B1 –恢复目录费里斯
当执行恢复文件的命令后,会在执行命令的当前的目录下生成RECOVERED_FILES目录,恢复的文件都会放入此目录中。如未生成目录,即为失败。执行恢复文件的命令时,将在执行该命令的当前目录中生成RECOVERED_FILES目录,恢复的文件将放在该目录中。如果没有生成目录,则是失败的。
5。还原单个文件
指定要还原的文件名。
如果几k大小的小文件,有很大几率恢复失败
text endelet/dev/VD B1 –还原文件openssh-7.7p1.tar.gz
6。恢复所有删除的文件
在不指定文件名或目录名的情况下还原所有已删除的数据。
text endelet/dev/VD B1 –全部还原
本文来自一纸枕书投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/587210.html