使用 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技能
※通向架構師的道路(第十八天)萬能框架 Spring ( 一 )(上)
※不同的垃圾回收器的比較
TAG:ImportNew |