自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用 Linux 文件恢復(fù)工具

系統(tǒng) Linux
本文以 Ubuntu 12.04 平臺(tái)為例介介紹四個(gè)(foremost、extundelete、testdisk 和 phtorec)常用的 Linux 刪除文件恢復(fù)工具的使用方法,希望可以給Linux系統(tǒng)管理員們一些幫助。

Linux 系統(tǒng)管理員守則中有這么一條:“慎用 rm -rf 命令,除非你知道此命令所帶來(lái)的后果“,不過 Linux 下刪除文件并不是真實(shí)的刪除磁盤分區(qū)中的文件,而是將文件的 inode 節(jié)點(diǎn)中的扇區(qū)指針清除,同時(shí)釋放這些數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)塊,當(dāng)釋放的數(shù)據(jù)塊被系統(tǒng)重新分配時(shí),那些被刪除的數(shù)據(jù)就會(huì)被覆蓋,所以誤刪除數(shù)據(jù)后,應(yīng)馬上卸載文件所在的分區(qū)。然后使用相關(guān)工具進(jìn)行恢復(fù)。本文以 Ubuntu 12.04 平臺(tái)為例介介紹四個(gè)(foremost、extundelete、testdisk 和 phtorec)常用的 Linux 刪除文件恢復(fù)工具的使用方法。

Linux 文件恢復(fù)的原理

inode 和 block

首先簡(jiǎn)單介紹一下 Linux 文件系統(tǒng)的最基本單元:inode。inode 譯成中文就是索引節(jié)點(diǎn),每個(gè)存儲(chǔ)設(shè)備(例如硬盤)或存儲(chǔ)設(shè)備的分區(qū)被格式化為文件系統(tǒng)后,應(yīng)該有兩部份,一部份是 inode,另一部份是 block,block 是用來(lái)存儲(chǔ)數(shù)據(jù)用的。而 inode 呢,就是用來(lái)存儲(chǔ)這些數(shù)據(jù)的信息,這些信息包括文件大小、屬主、歸屬的用戶組、讀寫權(quán)限等。inode 為每個(gè)文件進(jìn)行信息索引,所以就有了 inode 的數(shù)值。linux 操作系統(tǒng)下可以使用 ls –id 命令來(lái)查看文件或者目錄的 inode 值,一般”root”目錄的 inode 值為 2,一個(gè)分區(qū)掛載到一個(gè)目錄下時(shí),這個(gè)”root”目錄的 inode 值為 2。

  1. # mount /dev/sdb2 /tmp  
  2. # ls -id /tmp  
  3. 2 /tmp  

文件恢復(fù)的原理

本文要介紹的命令是通過文件系統(tǒng)的 inode 值(一般是 2 )來(lái)獲取文件系統(tǒng)信息。在 ext3 和 ext4 文件系統(tǒng)中,每個(gè)文件都是通過 inode 來(lái)描述其數(shù)據(jù)存放的具體位置,當(dāng)文件被刪除以后,inode 的數(shù)據(jù)指針部分被清零,文件目錄區(qū)沒有太多變化。文件的讀寫都是通過 inode 來(lái)實(shí)現(xiàn),當(dāng) inode 數(shù)據(jù)指針被清零以后,即便文件內(nèi)容還在,也沒有辦法把文件內(nèi)容組合出來(lái)。當(dāng) ext3 和 ext4 文件系統(tǒng)中的元數(shù)據(jù) metadata 發(fā)生變化時(shí),相應(yīng)的元數(shù)據(jù) metadata 在日志文件會(huì)有一份拷貝。比如一個(gè)文件被刪除了,它的 inode 信息會(huì)在日志文件中先保存一份,然后把要?jiǎng)h除文件 inode 相關(guān)信息清零。這個(gè)日志文件是循環(huán)使用的,當(dāng)操作過多時(shí),刪除的文件的 inode 日志記錄會(huì)被新的數(shù)據(jù)替換,這就徹底喪失了根據(jù) inode 找回?cái)?shù)據(jù)的機(jī)會(huì)了。如果是大量文件的刪除,這個(gè)日志文件會(huì)被反復(fù)循環(huán)利用多次,只留給***刪除的那些文件的恢復(fù)機(jī)會(huì)。

使用命令行工具恢復(fù)文件

foremost 和 extundelete 簡(jiǎn)介

formost 是一個(gè)基于文件頭和尾部信息以及文件的內(nèi)建數(shù)據(jù)結(jié)構(gòu)恢復(fù)文件的命令行工具。這個(gè)過程通常叫做數(shù)據(jù)挖掘(data carvubg)。formost 可以分析由 dd、Safeback、Encase 等生成的鏡像文件,也可以直接分析驅(qū)動(dòng)器。文件頭和尾可以通過配置文件設(shè)置,也可以通過命令行開關(guān)使用 formost 內(nèi)建的文件類型。formost 最初是由美國(guó)空軍特別調(diào)查室(Air Force Office of Special Investigations)和信息系統(tǒng)安全研究中心(The Center for Information Systems Security Studies and Research)開發(fā)的,現(xiàn)在使用 GPL 許可。Foremost 支持恢復(fù)如下格式: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。

針對(duì) Linux 下的 ext 文件系統(tǒng)來(lái)說,常用的 Linux 文件刪除恢復(fù)工具有 debugfs、ext3grep、extundelete 等。extundelete 是一個(gè)開源的數(shù)據(jù)恢復(fù)工具,支持 ext3、ext4 文件系統(tǒng),其官方站點(diǎn)位于http://extundelete.sourceforce.net/,目前***穩(wěn)定版本為 0.2.0。

上面介紹的兩種命令行工具 foremost 和 extundelete 二者相比,foremost 支持的文件系統(tǒng)比較多(包括 ext2、 ext3 、vfat、NTFS、ufs、jfs 等)和 extundelete 支持的文件系統(tǒng)較少(ext3、ext4)文件系統(tǒng)。不過 foremost 只能支持恢復(fù)特定格式的文件。

使用 foremost

首先安裝軟件包:

  1. #apt-get install foremost  

其它 Linux 發(fā)行版用戶可以在 http://foremost.sourceforge.net/ 下載源代碼編譯安裝。下面看看使用方法。

恢復(fù)單個(gè)類型文件

筆者刪除一個(gè) USB(/dev/sdba1)存儲(chǔ)器中一個(gè) png 文件然后使用 formost 恢復(fù)。

  1. #rm -f /dev/sdb1/photo1.png  
  2. #foremost -t png -i /dev/sdb1  

恢復(fù)完成后會(huì)在當(dāng)前目錄建立一個(gè) output 目錄,在 output 目錄下會(huì)建立 png 子目錄下會(huì)包括所有可以恢復(fù)的 png 格式的文件。

需要說明的是 png 子目錄下會(huì)包括的 png 格式的文件名稱已經(jīng)改變,另外 output 目錄下的 audit.txt 文件是恢復(fù)文件列表。

恢復(fù)多個(gè)類型文件

  1. #foremost -v -T -t doc,pdf,jpg,gif -i /dev/sda6 -o /media/disk/Recover  

恢復(fù)完成后會(huì)在當(dāng)前目錄建立一個(gè) output 目錄,在 output 目錄下會(huì)建立四個(gè)子目錄(/doc,/pdf,/jpg,/gif),分別包括四種類型文件。另外 output 目錄下的 audit.txt 文件是恢復(fù)文件列表。

使用 extundelete

首先安裝軟件包:

  1. #apt-get install extundelete  

其它 Linux 發(fā)行版用戶可以在http://extundelete.sourceforce.net/下載源代碼編譯安裝。下載安裝 extundelete 之前要安裝兩個(gè)軟件包 e2fsprogs 和 e2fslibs。下面看看使用方法

#p#

模擬數(shù)據(jù)誤刪除環(huán)境

這里我們使用一個(gè)分區(qū)/dev/sdd1 掛在在/backupdate 上,建立一個(gè)測(cè)試目錄/delete 并建立一文件:del1.txt 。

  1. # mkdir –p /backupdate/deldate  
  2. # mkfs.ext4 /dev/sdd1  
  3. # mount /dev/sdd1 /backupdate  
  4. #cd /backupdate/deldate  
  5. # touch del1.txt  
  6. # echo " test 1" > del1.txt  

獲取文件校驗(yàn)碼:

  1. # md5sum del1.txt                             
  2. 66fb6627dbaa37721048e4549db3224d  del1.txt  

刪除文件:

  1. # rm -fr /backupdate/*     

卸載文件系統(tǒng)或者掛載為只讀:

  1. # umount /backupdate  

查詢恢復(fù)數(shù)據(jù)信息,注意這里的--inode 2 這里會(huì)掃描分區(qū) :

  1. # extundelete /dev/sdd1 --inode 2  
  2. .....  
  3. File name                                       | Inode number | Deleted status  
  4. Directory block 8657:  
  5. .                                                 2  
  6. ..                                                2  
  7. lost+found                                        11             Deleted  
  8. del1.txt                                              12             Deleted  

上面標(biāo)記為 Deleted 是已經(jīng)刪除的文件或目錄。

開始恢復(fù)文件

默認(rèn)恢復(fù)到當(dāng)前目錄下的 RECOVERED_FILES 目錄中去。

  1. # extundelete /dev/sdd1 --restore-file del1.txt  

如果恢復(fù)一個(gè)目錄:

  1. # extundelete /dev/sdd1 --restore-directory /backupdate/deldate  

恢復(fù)所有文件:

  1. # extundelete /dev/sdd1 --restore-all  

獲取恢復(fù)文件校驗(yàn)碼,對(duì)比檢測(cè)是否恢復(fù)成功:

  1. # md5sum RECOVERED_FILES/ del1.txt                           
  2. 66fb6627dbaa37721048e4549db3224d  RECOVERED_FILES/del1.txt  

查看校驗(yàn)碼與之前的是否完全一致。

應(yīng)用總結(jié):筆者在現(xiàn)實(shí)使用過程中發(fā)現(xiàn) extundelete 還是有很大的不完整性,基于整個(gè)磁盤的恢復(fù)功能較為強(qiáng)大,基于目錄和文件的恢復(fù)還不夠強(qiáng)大。在 Linux 下誤刪除了文件,當(dāng)發(fā)現(xiàn)數(shù)據(jù)丟失以后,不要進(jìn)行任何操作,保留現(xiàn)場(chǎng)。要想辦法把數(shù)據(jù)丟失的文件系統(tǒng)經(jīng)過 dd 命令或者 AIR(Automated Image Restore,http://cdnetworks-kr-2.dl.sourceforge.net/ )工具到另外的存儲(chǔ)空間上作為最原始的備份,以便數(shù)據(jù)恢復(fù)專家現(xiàn)場(chǎng)診斷恢復(fù)。

使用 scalpel

以上介紹的工具主要使用在 ext3 和 ext4 的文件系統(tǒng),如果用戶使用的那些沒有日志機(jī)制的舊有文件系統(tǒng),可以使用 scalpel 工具。scalpel 是一種快速文件恢復(fù)工具,它通過讀取文件系統(tǒng)的數(shù)據(jù)庫(kù)來(lái)恢復(fù)文件。它是獨(dú)立于文件系統(tǒng)的。

用戶可以在http://www.digitalforensicssolutions.com/Scalpel/ 下載源代碼編譯安裝。下面看看使用方法:

使用 scalpel 工具之前,首先要修改配置文件: /etc/scalpel/scalpel.conf。

例如用戶要恢復(fù)所有刪除 pdf 文件,那么要在/etc/scalpel/scalpel.conf 把包括 pdf 文件格式的兩行之前的# 去掉。

  1. [...]  
  2. pdf     y       5000000 %PDF  %EOF\x0d  REVERSE  
  3. pdf     y       5000000 %PDF  %EOF\x0a  REVERSE  
  4. [...]  

然后保存文件。

下面看看使用方法:

  1. # scalpel /dev/sdb1 -o /RECOVERY/  

其中/dev/sdb1 是目標(biāo)驅(qū)動(dòng)器,/RECOVERY/ 是恢復(fù)文件存儲(chǔ)目錄。目錄下的 audit.txt 文件是恢復(fù)文件列表。

#p#

使用字符終端工具 testdisk 和 phtorec

testdisk 簡(jiǎn)介

testdisk 是分區(qū)表恢復(fù)、raid 恢復(fù)、分區(qū)恢復(fù)的開源免費(fèi)工具(testdisk 支持如下文件系統(tǒng): FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4)。testdisk 支持的功能: 修復(fù)分區(qū)表, 恢復(fù)已刪除分區(qū),用 FAT32 備份表恢復(fù)啟動(dòng)扇區(qū),重建 FAT12/FAT16/FAT32 啟動(dòng)扇區(qū),修復(fù) FAT 表,重建 NTFS 啟動(dòng)扇區(qū),用備份表恢復(fù) NTFS 啟動(dòng)扇區(qū),用 mft 鏡像表(mft mirror)修復(fù) mft 表,查找 ext2/ext3 備份的 superblock,從 FAT,NTFS 及 ext2 文件系統(tǒng)恢復(fù)刪除文件,從已刪除的 FAT,NTFS 及 ext2/ext3 分區(qū)復(fù)制文件。

使用方法

首先安裝:

  1. #apt-get install testdisk  

其它 Linux 發(fā)行版用戶可以在http://www.cgsecurity.org/wiki/TestDisk_Download 下載源代碼編譯安裝。下載安裝 testdisk 之前要安裝幾個(gè)軟件包 libjpeg8 ,libncursesw5, libuuid1, zlib1g 。下面看看使用方法。

啟動(dòng) testdisk:

  1. #testdisk  

testdisk 啟動(dòng)后的工作界面首先是選擇恢復(fù)操作中的 log 文件(testdisk.log)的紀(jì)錄方式見圖 1。

圖 1.選擇恢復(fù)操作中的 log 文件的紀(jì)錄方式

[Create]新建
[Append]追加
[No Log]不紀(jì)錄

選擇了 log 文件的記錄方式后、系統(tǒng)顯示處于連接狀態(tài)的磁盤設(shè)備見圖 2。

圖 2.處于連接狀態(tài)的磁盤設(shè)備

在列出的磁盤設(shè)備中,選擇要恢復(fù)的分區(qū),然后選擇磁盤分區(qū)的種類。若是 ext4 文件系統(tǒng)的話,請(qǐng)選擇 [None ] Non partitioned media 見圖 3:

圖 3.選擇 [None ] Non partitioned media

說明:一般選擇[Intel] Intel/PC partition(如果是 GPT 分區(qū),請(qǐng)選擇 EFI GPT),對(duì)于 ext4 文件系統(tǒng)選擇 [Intel] Intel/PC partition 也能正確識(shí)別,只是分析硬盤時(shí)比較慢。

下面的畫面中選擇[Analyse],對(duì)分區(qū)進(jìn)行分析見圖 4。

圖 4.對(duì)分區(qū)進(jìn)行分析

下面顯示了當(dāng)前分區(qū)的狀態(tài)。這是軟件分析的當(dāng)前分區(qū)表的分區(qū)結(jié)果,我們選擇“Deep Search”進(jìn)行一次深入檢測(cè)見圖 5。

圖 5.選擇“Deep Search”進(jìn)行一次深入檢測(cè)

下面是檢測(cè)完成界面見圖 6。

圖 6.檢測(cè)完成界面

在這個(gè)畫面時(shí),按 P 鍵就可以列出硬盤上的文件見圖 7。

圖 7.紅色的文件名稱就是已經(jīng)被刪除的文件

紅色的文件名稱就是已經(jīng)被刪除的文件,選擇好你要恢復(fù)的文件后,按 c 鍵之后,它就會(huì)問你要復(fù)制到哪個(gè)目錄,這時(shí)請(qǐng)選擇你要 復(fù)制的目地地(destination)即可。

#p#

photorec 簡(jiǎn)介

photorec 是一款用于恢復(fù)硬盤、光盤中丟失的視頻、文檔、壓縮包等文件,或從數(shù)碼相機(jī)存儲(chǔ)卡中恢復(fù)丟失圖片的數(shù)據(jù)恢復(fù)軟件(因此,該軟件命名為 photo recovery 這個(gè)名字)。 photorec 忽略文件系統(tǒng),能直接從介質(zhì)底層恢復(fù)數(shù)據(jù),因此,在介質(zhì)的文件系統(tǒng)嚴(yán)重破壞或被重新格式化后,它也能進(jìn)行數(shù)據(jù)恢復(fù)。出于安全考慮, photorec 以只讀方式來(lái)訪問您要恢復(fù)數(shù)據(jù)所在的磁盤或存儲(chǔ)卡介質(zhì)。提示: 一旦發(fā)現(xiàn)丟失或意外刪除了某個(gè)圖片、文件, 請(qǐng)不要繼續(xù)往該存儲(chǔ)設(shè)備或磁盤保存新文件;否則您可能會(huì)覆蓋原來(lái)的數(shù)據(jù)。 這意味著您在使用 photorec 時(shí),您千萬(wàn)不要將恢復(fù)的文件寫入到原數(shù)據(jù)所存儲(chǔ)的同一分區(qū)。

使用 photorec 恢復(fù)文件

photorec 是 testdisk 的伴侶程序,安裝 testdisk 后 photorec 就可以使用了。

  啟動(dòng) photorec

  1. # photorec 

圖 8 中顯示了已連接磁盤設(shè)備,準(zhǔn)備恢復(fù)的文件在那個(gè)設(shè)備上就選擇它,然后在選擇 Proceed 按鈕繼續(xù)下一步。

圖 8.已連接磁盤設(shè)備

接下來(lái),選擇恢復(fù)的磁盤分區(qū)格式。這里選擇 ext4 見圖 9。

圖 9.選擇恢復(fù)的磁盤分區(qū)格式

畫面下方[File Opt]中有可供恢復(fù)的文件種類提供被選擇見圖 10。

圖 10.可供恢復(fù)的文件種類

說明:如果只是 root 據(jù)某些文件簽名要恢復(fù)部分文件類型,那么可以按 s 取消全部勾選,然后移動(dòng)光標(biāo)到要恢復(fù)的文件類型,可按空格來(lái)選擇高亮選中的類型。

下面設(shè)定要分析的磁盤空間區(qū)域,可整個(gè)分區(qū)搜索,也可只搜索自由空間(相當(dāng)于未分配簇)見圖 11 。

圖 11.設(shè)定要分析的磁盤空間區(qū)域

下面選擇分區(qū)所使用的文件系統(tǒng)類型,然后設(shè)定導(dǎo)出的文件目錄,一般輸入 Y 并回車即可。圖 12 是恢復(fù)完成界面。

圖 12.恢復(fù)完成

恢復(fù)完了選擇 Quit 退出 PhtoRec。被恢復(fù)的文件是 recup_dir.x 的若干數(shù)字子組合為文件名被保存在當(dāng)前目錄的/recup_dir 子目錄下的。

功能對(duì)比

表 1 是 Linux 刪除文件恢復(fù)工具

 

總結(jié)

可以使用 testdisk 進(jìn)行文件恢復(fù)的場(chǎng)合,也就是硬盤上的分區(qū)(該分區(qū)有原有數(shù)據(jù)紀(jì)錄)已經(jīng)損壞的情形。但是如果損壞之后,重新再次做成了新分區(qū)的話,文件恢復(fù)的可能性比較小,很困難。photorec 不僅針對(duì) 硬盤、USB 設(shè)備、CD-ROM、SD 卡,而且還可以對(duì)其它存儲(chǔ)設(shè)備進(jìn)行應(yīng)用。因此大多數(shù)常用的文件如

責(zé)任編輯:黃丹 來(lái)源: developerWorks
相關(guān)推薦

2011-01-25 09:26:30

2017-01-11 10:09:14

2021-01-07 09:56:43

Windows 功能系統(tǒng)

2013-07-16 10:25:05

災(zāi)難恢復(fù)災(zāi)難恢復(fù)工具

2024-09-10 08:00:00

PostgreSQL數(shù)據(jù)庫(kù)

2020-06-28 09:05:21

工具微軟數(shù)據(jù)

2023-05-31 08:54:14

MySQL邏輯備份

2015-08-25 09:23:00

2015-08-06 09:19:09

2017-01-18 21:44:21

Linux工具恢復(fù)文件

2011-08-05 12:07:23

2010-12-21 10:49:27

Pwdump

2021-01-07 09:32:43

Windows10操作系統(tǒng)微軟

2011-05-29 15:28:30

文件恢復(fù)360

2021-07-08 08:00:00

Windows工具數(shù)據(jù)

2023-05-25 14:25:55

2020-07-02 15:55:34

微軟數(shù)據(jù)恢復(fù)應(yīng)用商店

2011-04-18 10:08:53

2021-07-26 11:23:05

Chrome密碼恢復(fù)瀏覽器

2024-12-16 15:07:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)