恢复Linux误删除文件系列之foremost工具

本文发布时间: 2019-Mar-22
文件恢复的原理:首先简单介绍一下Linux文件系统的最基本单元:inode。inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是block,block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。在ext3和ext4文件系统中,每个文件都是通过inode来描述其数据存放的具体位置,当文件被删除以后,inode的数据指针部分被清零,文件目录区没有太多变化。文件的读写都是通过inode来实现,当inode数据指针被清零以后,即便文件内容还在,也没有办法把文件内容组合出来。当ext3和ext4文件系统中的元数据metadata发生变化时,相应的元数据metadata在日志文件会有一份拷贝。比如一个文件被删除了,它的inode信息会在日志文件中先保存一份,然后把要删除文件inode相关信息清零。这个日志文件是循环使用的,当操作过多时,删除的文件的inode日志记录会被新的数据替换,这就彻底丧失了根据inode找回数据的机会了。如果是大量文件的删除,这个日志文件会被反复循环利用多次,只留给最后删除的那些文件的恢复机会。linux操作系统下可以使用ls–id或者stat命令来查看文件或者目录的inode值[root@crushlinux~]#statinstall.logFile:“install.log”Size:34226Blocks:80IOBlock:4096一般文件Device:303h/771dInode:4672098Links:1Access:(0644/-rw-r--r--)Uid:(0/root)Gid:(0/root)Access:2014-05-0614:49:22.000000000+0800Modify:2013-05-0422:24:21.000000000+0800Change:2013-05-0422:24:38.000000000+0800[root@crushlinux~]#ls-iinstall.log4672098install.log上面信息给出install.log文件的inode号码为:4672098formost是一个基于文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具。这个过程通常叫做数据挖掘(datacarvubg)。formost可以分析由dd、Safeback、Encase等生成的镜像文件,也可以直接分析驱动器。文件头和尾可以通过配置文件设置,也可以通过命令行开关使用formost内建的文件类型。formost最初是由美国空军特别调查室(AirForceOfficeofSpecialInvestigations)和信息系统安全研究中心(TheCenterforInformationSystemsSecurityStudiesandResearch)开发的,现在使用GPL许可。Foremost支持恢复如下格式:avi,bmp,dll,doc,exe,gif,htm,jar,jpg,mbd,mov,mpg,pdf,png,ppt,rar,rif,sdw,sx,sxc,sxi,sxw,vis,wav,wmv,xls,zip。针对Linux下的ext文件系统来说,常用的Linux文件删除恢复工具有debugfs、ext3grep、extundelete等。extundelete是一个开源的数据恢复工具,支持ext3、ext4文件系统,其官方站点位于http://extundelete.sourceforce.net/,目前最新稳定版本为0.2.0。上面介绍的两种命令行工具foremost和extundelete二者相比,foremost支持的文件系统比较多(包括ext2、ext3、vfat、NTFS、ufs、jfs等)和extundelete支持的文件系统较少(ext3、ext4)文件系统。不过foremost只能支持恢复特定格式的文件。模拟实验环境:[root@crushlinux~]#cd~/Desktop[root@crushlinuxDesktop]#lsdesktop.png[root@crushlinuxDesktop]#rm-fdesktop.png[root@crushlinuxDesktop]#cd/root/下载并编译安装foremost:[root@crushlinux~]#wgethttp://foremost.sourceforge.net/pkg/foremost-1.5.7.tar.gz[root@crushlinux~]#tarxfforemost-1.5.7.tar.gz-C/usr/src/[root@crushlinux~]#cd/usr/src/foremost-1.5.7/[[email protected]]#lsapi.ccli.cdir.cextract.cforemost.8.gzhelpers.cmain.hole.hstate.cCHANGESconfig.cengine.cextract.hforemost.confmain.cMakefileREADME[[email protected]]#make&&makeinstall先确定被删除文件的所在分区,我的文件在/root/Desktop/下属于/,而/上挂载了设备/dev/hda3[[email protected]]#mount/dev/hda3on/typeext3(rw)[[email protected]]#foremost-tpng-i/dev/hda3恢复完成后会在你的当前所在目录中建立一个output目录,并在在output目录下会建立png子目录下会包括所有已经恢复回来的png格式的文件。注意:恢复回来的文件,文件名已经改变,另外output目录下有一个audit.txt文件是恢复成功文件的列表。[root@crushlinuxoutput]#pwd/usr/src/foremost-1.5.7/output[root@crushlinuxoutput]#lsaudit.txtpng[root@crushlinuxoutput]#cdpng[root@crushlinuxpng]#ls-l38019080.png-rw-r--r--1rootroot1302405-0614:3938019080.png原本叫desktop.png的文件恢复回来之后文件名改成38019080.png,需要自己找哦!!恢复多种类型文件[root@crushlinuxabc]#lsfile.docfile.pdf[root@crushlinuxabc]#rm-f*[root@crushlinuxabc]#ls[root@crushlinuxabc]#foremost-v-tpdf,doc-i/dev/hda1-o/tmp/recover[root@crushlinuxabc]#lsfile.docfile.pdf[root@crushlinuxabc]#rm-f*[root@crushlinuxabc]#ls[root@crushlinuxabc]#foremost-v-tpdf,doc-i/dev/hda1-o/tmp/recoverforemostversion1.5.7byJesseKornblum,KrisKendall,andNickMikus.foremost[-v|-V|-h|-T|-Q|-q|-a|-w-d][-t<type>][-s<blocks>][-k<size>][-b<size>][-c<file>][-o<dir>][-i<file]-V-displaycopyrightinformationandexit显示版权信息并退出-t-specifyfiletype.(-tjpeg,pdf...)指定的文件类型-d-turnonindirectblockdetection(forUNIXfile-systems)打开间接块检测-i-specifyinputfile(defaultisstdin)指定输入文件-a-Writeallheaders,performnoerrordetection(corruptedfiles)写出所有头文件,检测是否有错误-w-Onlywritetheauditfile,donotwriteanydetectedfilestothedisk只写审计文件,不写所有检测到的文件到磁盘-o-setoutputdirectory(defaultstooutput)指定输出目录-c-setconfigurationfiletouse(defaultstoforemost.conf)设置配置文件并使用-q-enablesquickmode.Searchareperformedon512byteboundaries.可使用快速模式,搜索是在512字节边界进行。-Q-enablesquietmode.Suppressoutputmessages.可使用快速模式,抑制输出消息。-v-verbosemode.Logsallmessagestoscreen详细模式,记录所有消息到屏幕切记:硬盘有价,数据无价!!


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表