歡迎光臨
每天分享高質量文章

使用 foremost 恢復已刪除檔案

(點選上方公眾號,可快速關註)


來源:lujun9972,

lujun9972.github.io/blog/2018/03/08/使用foremost恢復已刪除檔案/

foremost是一款根據檔案頭,尾和內部結構來嘗試從映象檔案(或者磁碟)中恢復檔案的工具。

foremost預設可以掃描出 jpg, gif, png, bmp, avi, exe, mpg, mp4, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, html, cpp 檔案。

但是透過配置它的配置檔案(預設為 /etc/foremost.conf),你還可以為它增加新的支援型別。

安裝foremost

sudo pacman -S foremost

使用foremost掃描檔案

最常用的方法就是

sudo foremost -t 檔案型別 -i 磁碟/映象檔案

比如,我誤刪除了一個 png 檔案,那麼可以執行

sudo formost -t png -i /dev/sda1

這會掃描 /dev/sda1 分割槽,嘗試查詢其中的 png 檔案,並將這些 png 檔案儲存到當前目錄下的 output 目錄中。

你也可以透過 -o 選項來指定存放檔案的目錄,但要註意,這個目錄需要是空的,否則會提示錯誤。

sudo formost -t png -i /dev/sda1 -o /tmp/png

為了方便,你也可以使用 T 選項讓foremost自動根據當前時間戳來生成output目錄,這時生成的目錄是類似這樣的 output_Thu_Mar__8_11_43_40_2018

sudo formost -t png -i /dev/sda1 -T

foremost 需要掃描整個磁碟或映象檔案來查詢可能的檔案,這常常是一個很漫長的過程,可以使用 -q 來加快掃描速度。

當啟用 -q 選項後, foremost 會僅僅在每個扇區的開始位置與檔案頭進行對比,這會極大地減少掃描時間,但可能會丟失一些巢狀在其他檔案內的檔案(比如巢狀在doc檔案中的圖片)。

sudo formost -q -t png -i /dev/sda1 -T

與 -q 常連用的是 -b number, 它可以指定磁碟每個扇區的大小,預設是512個位元組。但對於 ext4 檔案系統來說,這個值一般是4096.

sudo formost -q -b 4096 -t png -i /dev/sda1 -T

具體檔案系統的扇區大小是多少,可以透過 dumpe2fs 來檢視

sudo  dumpe2fs /dev/sda1 |grep “Block size” |cut -f2 -d “:”

我們可以寫一個指令碼,將 foremost 和 dumpe2fs 結合起來實現快速掃描。

TYPE=$1

DIR=$2

fs=$(df  ${DIR}|tail -n 1 |cut -f 1 -d ” “)

block_size=$(sudo  dumpe2fs ${fs} |grep “Block size” |cut -f2 -d “:”)

foremost -t ${TYPE} -q -b ${block_size} -i ${fs} -T

第一個引數指定檔案型別

第二個引數指定被刪掉檔案所在的目錄

第三行找出檔案所屬的磁碟

第四行找出磁碟塊大小

第五行呼叫foremost掃描被刪除的檔案。

看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,提升Java技能

贊(0)

分享創造快樂