-t 参数不接受最重要的自定义文件类型

-t 参数不接受最重要的自定义文件类型

我正在尝试使用 foremost 实用程序恢复 ext3 文件系统上已删除的文件。我要恢复的文件是hppC++ 源代码文件。但是,foremost 不会自动支持 hpp 文件扩展名,因此我必须将其添加到配置文件中。因此,按照手册页上的说明,我在配置文件中添加了以下行:

hpp n 50000 include include ASCII

然后我首先按如下方式运行:

$foremost -v -T -t hpp -i /dev/md0 -o /home/recover/

它什么也不做,只是显示帮助消息。如果我将 更改为hpphtmjpg它就会起作用。所以显然 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_definit_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选项?

相关内容