当前位置: 首页 > Linux

误删文件怎么办?不要惊慌,这里是解决方案!

时间:2023-04-06 20:14:25 Linux

前言无论在哪个系统,删除文件都要慎重。因为如果不小心删除了重要文件,会给个人或公司带来重大损失。类似于Windows系统不小心删除了文件,可以使用一些软件来恢复。Linux还有几个软件可以通过误删恢复。注意:虽然有软件可以恢复误删数据,但完全恢复数据的概率不是100%。因此,在使用rm命令删除文件时,一定要小心;必须备份重要数据;并且在恢复被删除的数据之前,被删除文件的目录下不能存放新的东西,否则被覆盖的信息将无法找回。下面是Linux中误删文件的恢复操作。1、lsof的原理:这个命令实际上不能直接用来恢复文件,但是可以列出各个进程打开的文件信息。配合其他命令从/proc目录下的信息中恢复“文件已被删除,但进程仍保持文件打开状态”的文件。/proc目录挂载为内存中映射的区域。我们在读写这些文件的时候,实际上是在从内存中获取相关信息。因此,当我们读取或写入一个文件时(即一个进程正在使用该文件时),即使硬盘中的文件已经删除,也可以通过内存中的信息恢复该文件。注意:必须以root权限运行,因为lsof需要访问内核内存和各种文件。只能恢复“文件已删除但进程仍打开”文件。如果该目录被误删除,该目录下的其他文件不会被进程打开,不使用的文件也无法通过该方法恢复。lsof输出信息的含义:COMMAND#进程的PID(进程标识符)USER#进程所有者FD#用来标识文件(文件描述符)DEVICE#指定磁盘的名称SIZE#文件大小NODE#索引节点(fileIdentificationondisk)NAME#打开文件的确切名称最常用的参数:`-c#显示当前被某个进程打开的文件-p#显示哪些文件被某个pid进程打开-g#显示属于某个gid的进程状态-d#显示目录下该进程打开的文件-d#显示使用fd为4的进程-i:80#显示打开80端口恢复文件的进程Operating环境:/mnt下有一些文件,其中一个是train.less正在查看,然后另一个终端删除它[1]lsof查看正在使用删除文件的进程号lsof/mnt[2]恢复和切换到/proc,删除文件目录对应的进程pid下的文件描述符中的文件;redirectorcp对应的内容到其他文件。重点:PID和FDcd/proc/31284/fd/cat4>/mnt/ferris_train.less2,extundelete原理:利用分区日志中保存的信息,尝试恢复ext3或ext4分区被删除的文件优点:与只能恢复ext3文件系统中的文件的ext3grep相比,其适用范围更广,恢复速度更快extundelete官方地址(官方文档):http://extundelete.sourceforg...extundelete下载地址:http://downloads.sourceforge....(extundelete最新版本为0.2.4,2013年1月发布)注意:删除数据后,如果系统不存在,必须卸载被删除数据所在的磁盘或分区根分区被误删,需要进入单用户模式,以只读方式挂载根分区,尽量避免数据被覆盖。数据被覆盖后,将无法恢复。还是有一定的失败概率。平时要备份重要数据,慎用rm。安装1.依赖安装#centos安装操作yuminstalle2fsprogs-devele2fsprogs*gcc*#ubuntu安装操作apt-getinstallbuild-essentiale2fslibs-deve2fslibs-dev2,编译安装wgethttp://downloads.sourceforge.net/项目/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2tarxfextundelete-0.2.4.tar.bz2cdextundelete-0.2.4./configuremakeinstallcd/root/extundelete-0.2.4/srcextundelete-v执行make命令会在src目录下生成extundelete可执行文件,这里可以直接执行recovery命令。执行makeinstall会把程序安装到/usr/local/bin/下恢复文件操作执行extundelete命令的当前目录必须是可写的。1、查看恢复文件分区的文件系统df-Th2,卸载恢复文件分区的umount/mnt,查看可恢复的数据,搜索误删文件的分区。最后一列被标记为Deletedfiles,即被删除的文件。extundelete/dev/vdb1--inode2(根分区的inode值为2)4.恢复单个目录指定要恢复的目录名。如果是空目录,则不会恢复。extundelete/dev/vdb1--restore-directoryferris当执行恢复文件的命令时,会在执行命令的当前目录下生成RECOVERED_FILES目录,恢复的文件会放在该目录下。如果没有生成目录,则失败。5.恢复单个文件指定要恢复的文件名。如果文件大小为几千字节,则恢复失败的可能性很大。extundelete/dev/vdb1--restore-fileopenssh-7.7p1.tar.gz6.恢复所有删除的文件,不指定文件名或目录名,恢复所有删除的数据。extundelete/dev/vdb1--restore-all作者:莫晓_原文:https://blog.csdn.net/GX_1_11...