亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用 Linux 文件恢復工具

系統 2044 0

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

?

Linux 文件恢復的原理

inode 和 block

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

      mount /dev/sdb2 /tmp
ls -id /tmp
2 /tmp
    

?

文件恢復的原理

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

?

使用命令行工具恢復文件

foremost 和 extundelete 簡介

formost 是一個基于文件頭和尾部信息以及文件的內建數據結構恢復文件的命令行工具。這個過程通常叫做數據挖掘(data carvubg)。formost 可以分析由 dd、Safeback、Encase 等生成的鏡像文件,也可以直接分析驅動器。文件頭和尾可以通過配置文件設置,也可以通過命令行開關使用 formost 內建的文件類型。formost 最初是由美國空軍特別調查室(Air Force Office of Special Investigations)和信息系統安全研究中心(The Center for Information Systems Security Studies and Research)開發的,現在使用 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 只能支持恢復特定格式的文件。

?

使用 foremost

首先安裝軟件包

      apt-get install foremost
    

?

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

?

恢復單個類型文件

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

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

?

恢復完成后會在當前目錄建立一個 output 目錄,在 output 目錄下會建立 png 子目錄下會包括所有可以恢復的 png 格式的文件。

?

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

?

恢復多個類型文件

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

?

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

?

使用 extundelete

首先安裝軟件包

      apt-get install extundelete
    

?

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

?

模擬數據誤刪除環境

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

      # mkdir –p /backupdate/deldate
# mkfs.ext4 /dev/sdd1
# mount /dev/sdd1 /backupdate
#cd /backupdate/deldate
# touch del1.txt
# echo " test 1" > del1.txt
獲取文件校驗碼
# md5sum del1.txt                           
 66fb6627dbaa37721048e4549db3224d  del1.txt

刪除文件
# rm -fr /backupdate/*   

卸載文件系統或者掛載為只讀
# umount /backupdate
查詢恢復數據信息,注意這里的--inode 2 這里會掃描分區 :
# extundelete /dev/sdd1 --inode 2
.....
File name                                       | Inode number | Deleted status
Directory block 8657:
.                                                 2
..                                                2
lost+found                                        11             Deleted
del1.txt                                          12             Deleted
    

?

上面標記為 Deleted 是已經刪除的文件或目錄

開始恢復文件

默認恢復到當前目錄下的 RECOVERED_FILES 目錄中去。

      # extundelete /dev/sdd1 --restore-file del1.txt
如果恢復一個目錄
# extundelete /dev/sdd1 --restore-directory /backupdate/deldate
恢復所有文件
# extundelete /dev/sdd1 --restore-all
獲取恢復文件校驗碼,對比檢測是否恢復成功
# md5sum RECOVERED_FILES/ del1.txt                         
66fb6627dbaa37721048e4549db3224d  RECOVERED_FILES/del1.txt
    

?

查看校驗碼與之前的是否完全一致。

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

?

使用 scalpel

以上介紹的工具主要使用在 ext3 和 ext4 的文件系統,如果用戶使用的那些沒有日志機制的舊有文件系統,可以使用 scalpel 工具。scalpel 是一種快速文件恢復工具,它通過讀取文件系統的數據庫來恢復文件。它是獨立于文件系統的。

?

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

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

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

      [...]
        pdf     y       5000000 %PDF  %EOF\x0d  REVERSE
        pdf     y       5000000 %PDF  %EOF\x0a  REVERSE
[...]
    

?

然后保存文件。

下面看看使用方法

      # scalpel /dev/sdb1 -o /RECOVERY/
    

?

其中/dev/sdb1 是目標驅動器,/RECOVERY/ 是恢復文件存儲目錄。目錄下的 audit.txt 文件是恢復文件列表。

?

使用字符終端工具 testdisk 和 phtorec

testdisk 簡介

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

?

使用方法

首先安裝

      #apt-get install testdisk
    

?

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

啟動 testdisk

      #testdisk
    

?

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

?
圖 1.選擇恢復操作中的 log 文件的紀錄方式

圖 1 選擇恢復操作中的 log 文件的紀錄方式

[Create]新建

[Append]追加

[No Log]不紀錄

選擇了 log 文件的記錄方式后、系統顯示處于連接狀態的磁盤設備見圖 2。

?
圖 2.處于連接狀態的磁盤設備

圖 2 處于連接狀態的磁盤設備

在列出的磁盤設備中,選擇要恢復的分區,然后選擇磁盤分區的種類。若是 ext4 文件系統的話,請選擇 [None ] Non partitioned media 見圖 3

?
圖 3.選擇 [None ] Non partitioned media

Figure xxx. Requires a heading

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

下面的畫面中選擇[Analyse],對分區進行分析見圖 4。

?
圖 4.對分區進行分析

圖 4 對分區進行分析

下面顯示了當前分區的狀態。這是軟件分析的當前分區表的分區結果,我們選擇“Deep Search”進行一次深入檢測見圖 5。

?
圖 5.選擇“Deep Search”進行一次深入檢測

圖 5 選擇“Deep Search”進行一次深入檢測

下面是檢測完成界面見圖 6

?
圖 6.檢測完成界面

圖 6 檢測完成界面

在這個畫面時,按 P 鍵就可以列出硬盤上的文件見圖 7

?
圖 7.紅色的文件名稱就是已經被刪除的文件

圖 7 紅色的文件名稱就是已經被刪除的文件

紅色的文件名稱就是已經被刪除的文件,選擇好你要恢復的文件后,按 c 鍵之后,它就會問你要復制到哪個目錄,這時請選擇你要 復制的目地地(destination)即可。

?

photorec 簡介

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

?

使用 photorec 恢復文件

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

啟動 photorec

      # photorec
    

?

圖 8 中顯示了已連接磁盤設備,準備恢復的文件在那個設備上就選擇它,然后在選擇 Proceed 按鈕繼續下一步。

?
圖 8.已連接磁盤設備

圖 8 已連接磁盤設備

接下來,選擇恢復的磁盤分區格式。這里選擇 ext4 見圖 9。

?
圖 9.選擇恢復的磁盤分區格式

圖 9 選擇恢復的磁盤分區格式

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

?
圖 10.可供恢復的文件種類

圖 10 可供恢復的文件種類

說明:如果只是 root 據某些文件簽名要恢復部分文件類型,那么可以按 s 取消全部勾選,然后移動光標到要恢復的文件類型,可按空格來選擇高亮選中的類型。

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

?
圖 11.設定要分析的磁盤空間區域

圖 11 設定要分析的磁盤空間區域

下面選擇分區所使用的文件系統類型,然后設定導出的文件目錄,一般輸入 Y 并回車即可。圖 12 是恢復完成界面。

?
圖 12.恢復完成

圖 12 恢復完成

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

?

功能對比

表 1 是 Linux 刪除文件恢復工具

?
表 1.Linux 刪除文件恢復工具
工具名稱/功能對比 工作界面 功能簡介
foremost 命令行 formost 是一個基于文件頭和尾部信息以及文件的內建數據結構恢復文件的命令行工具
extundelete 命令行 Extundelete ext3、ext4 文件系統的恢復工具
s calpel 命令行 scalpel 是一種快速文件恢復工具,它通過讀取文件系統的數據庫來恢復文件。它是獨立于文件系統的
testdisk 字符終端 Testdisk 支持分區表恢復、raid 恢復、分區恢復
phtorec 字符終端 photorec 用來恢復硬盤、光盤中丟失的視頻、文檔、壓縮包等文件,或從數碼相機存儲卡中恢復丟失的圖片

?

總結

可以使用 testdisk 進行文件恢復的場合,也就是硬盤上的分區(該分區有原有數據紀錄)已經損壞的情形。但是如果損壞之后,重新再次做成了新分區的話,文件恢復的可能性比較小,很困難。photorec 不僅針對 硬盤、USB 設備、CD-ROM、SD 卡,而且還可以對其它存儲設備進行應用。因此大多數常用的文件如果被誤操作的話,均可利用其來進行恢復,只不過它的初衷是針對照片而制作的。

?

參考資料

學習

討論

  • 加入 developerWorks 中文社區 ,developerWorks 社區是一個面向全球 IT 專業人員,可以提供博客、書簽、wiki、群組、聯系、共享和協作等社區功能的專業社交網絡社區。

來源: http://www.ibm.com/developerworks/cn/linux/1312_caoyq_linuxrestore/index.html

使用 Linux 文件恢復工具


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中文字幕亚洲色图 | 成年女人免费毛片视频永久 | 亚洲精品美女一区二区三区乱码 | 亚洲国产成人在线 | 大片毛片 | 免费观看四虎精品国产永久 | 99热久久国产精品这里 | 国产美女在线免费观看 | 日日摸夜夜欧美一区二区 | 99久久精品久久久 | 精品精品国产自在香蕉网 | 青青久久久| 综合图色 | 六月色婷婷 | 四虎精品影院 | 欧美一区二区三区综合色视频 | 亚洲国产观看 | 人成精品视频三区二区一区 | 亚洲国产第一区二区香蕉 | 亚洲一级黄色大片 | 精品欧美一区二区三区在线观看 | 日韩免费高清一级毛片在线 | 野外一级毛片 | 在线观看久久 | 污宅男666在线永久免费观看 | 国产精品网址你懂的 | 亚洲在线国产 | 中文字幕日韩在线观看 | 免费亚洲网站 | 午夜视频在线观看网站 | 日本一区二区三区免费在线观看 | 激情欧美一区二区三区中文字幕 | 色久天 | 在线国产视频 | 四虎永久免费在线 | 91久久精品午夜一区二区 | 国产精品视_精品国产免费 国产精品视频2021 | 日本二级毛片免费 | 99热播| 久久久久久人精品免费费看 | 国产成人精品午夜 |