我正在尝试使用 foremost 实用程序恢复 ext3 文件系统上已删除的文件。我要恢复的文件是hpp
C++ 源代码文件。但是,foremost 不会自动支持 hpp 文件扩展名,因此我必须将其添加到配置文件中。因此,按照手册页上的说明,我在配置文件中添加了以下行:
hpp n 50000 include include ASCII
然后我首先按如下方式运行:
$foremost -v -T -t hpp -i /dev/md0 -o /home/recover/
它什么也不做,只是显示帮助消息。如果我将 更改为hpp
或htm
,jpg
它就会起作用。所以显然 foremost 不接受我添加到配置文件中的自定义文件类型。但我已经看过几十遍了,我看不出我做错了什么。我完全按照说明操作。为什么 foremost 不能识别我添加到配置文件中的新文件类型?
答案1
我偶然发现了完全相同的问题,并通过查看资料对其进行了更深入的研究foremost
。
事实证明,使用配置文件添加的自定义类型无法通过该选项进行选择。如果您在中定义类型并使用,-t
则会找到您的文件hpp
/etc/foremost.conf
foremost -v -T -c /etc/foremost.conf -i /dev/md0 -o /home/recover/
这还将恢复与所有内置类型匹配的文件,这可能意味着很多文件。要解决这个问题,请修补源代码,使其在使用时不包含任何内置类型-t all
(相当于-t
根本不使用)。在 中state.c
,在函数末尾set_search_def
,init_all
如果 被调用strcmp(ft, "all") == 0
。只需注释掉对 的调用init_all
,内置类型将不再使用。
答案2
创建一个新的 .conf 文件并删除其中的所有内容,除了您需要的类型的设置。例如(foremost_pde.conf):
pde y 200000 #include #include ASCII
确保删除行首的所有制表符或空格,否则该行将无法识别。保存并关闭用户位置(例如 ~/Desktop)的 conf 文件。现在使用:
foremost -v -T -c ~/Desktop/foremost_pde.conf -i /dev/md0 -o /home/recover/
答案3
您是否尝试过使用-c config file
选项?