前言:无论在哪个系统中,删除文件都必须小心操作。
因为如果您不小心删除了重要文件,将会对个人或公司造成重大损失。
类似于Windows系统中错误删除的文件,您可以使用某些软件来还原它。
Linux还具有一些可能会被误删除和恢复的软件。
注意:尽管有一些软件可以恢复被误删除的数据,但是恢复数据的可能性不是100%。
因此,使用rm命令删除文件时必须小心。
重要数据必须备份;并且在还原已删除的数据之前,您无法进入已删除文件的目录以存储新内容,否则将无法检索覆盖的信息。
下面介绍在Linux中错误删除的文件的恢复操作。
1. lsof的原理:实际上,该命令不能直接用于还原文件,但是可以列出由各个进程打开的文件的信息。
与其他命令协作以恢复“文件已被删除,但是该过程仍保持打开文件的状态”。
从/ proc目录中的信息。
/ proc目录是在已挂载的内存中映射的区域。
当我们读写这些文件时,实际上是从内存中获取相关信息。
因此,当我们读写文件时(即进程正在使用该文件时),即使硬盘中的文件已被删除,也可以从内存中的信息中恢复该文件。
注意:必须以root用户权限运行,因为lsof需要访问核心内存和各种文件。
您只能使用“文件已被删除,但该过程仍保持文件打开”来还原文件。
如果误删除目录,则该进程尚未打开该目录中的其他文件,并且无法使用此方法还原未使用的文件。
lsof输出信息的含义:COMMAND进程PID(进程标识符)USER进程所有者FD用于标识文件(文件描述符)DEVICE指定磁盘的名称SIZE文件大小NODE索引节点(在磁盘)NAME打开的文件的确切名称。
最常用的参数:-c显示当前由进程打开的文件-p显示由pid进程打开的文件-g显示属于gid的进程-d在目录-d中显示该进程打开的文件显示使用fd作为4 -i:80的过程显示打开端口80以恢复文件操作环境的过程:/ mnt下有一些文件,其中一个文件train.less正在被查看,然后另一个终端将其删除。
[1] lsof查看用于删除文件lsof / mnt的进程号[2]恢复到/ proc的开关,删除该文件的进程pid下文件描述符中目录中的文件;将相应的内容或cp重定向到其他文件以集中处理:PID和FD cd / proc / 31284 / fd / cat 4> /mnt/ferris_train.less 2. extundelete原理:使用分区日志中存储的信息来尝试从ext3或ext4还原数据。
分区中删除文件的优点:与只能还原ext3文件系统文件的ext3grep相比,它具有更广泛的应用范围和更快的恢复速度。
extundelete官方地址(官方文件):http://extundelete.sourceforge.net extundelete下载地址: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 install e2fsprogs-devel e2fsprogs * gcc * ubuntu安装操作apt-get install build-必不可少的e2fslibs-dev e2fslibs-dev 2.编译并安装wget http://downloads.sourceforge.n et / project / extundelete / extundelete / 0.2.4 / extundelete-0.2.4.tar.bz2tar xf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4./configuremakemake install cd /root/extundelete-0.2.4/ src extundelete -v执行make命令将在src目录中生成一个extundelete可执行文件,您可以在其中直接执行restore命令。
执行make install将把程序安装在/ usr / local / bin /下。
恢复文件操作。
执行extundelete命令的当前目录必须是可写的。
1.检查要在其中还原文件的分区的文件系统df -Th 2.卸载要在其中还原文件的分区