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扫描被删除的文件。