⑴关键字搜索法;
如果知道被删除的文件内容中若干字节的内容,而且该文件长度又不超过一个磁盘块,那么可以在整个文件系统中搜索这一字节串,得出一个文件所在的数据块,将它们的块号填入一个i节点,即可恢复一个文件,搜索文件系统的算法很简单,说明如下:;
a. #df -k 确定文件系统的设备文件名(如/dev/root);
b.用下述函数搜索,若成功,返回数据块号,反之返回-1 。其中fsname是文件系统的设备名,如/dev/root,comp()参数是实现搜索条件的函数 。;
long searchfs(char *fsname , int comp());
{;
FILE *fp
char buf[1024]
long i=0
fp=fopen(fsname,"r")
while (!feof(fp));
{;
fread(buf,1024,1,fp)
if (comp()) /* 检查是否符合搜索条件 */;
return i; /* 若成功返回块号 */;
i
};
fclose(fp)
return -1; /* 未找到符合条件的块,返回-1*/;
};
⑵精确长度搜索法;
如果知道被删除文件的精确长度(字节数),那么可根据一个数据块的大小,计算出文件的最后一个数据块中数据的精确长度,该数据块中其他字节必然是全0 。根据这一条件,通过搜索整个文件系统,找出其中符合条件的数据块,若出现多个块符合要求,则还需要根据其他条件区分 。但不管怎样,根据精确长度分析也是恢复数据的一个策略 。;
⑶内容关联法;
如果知道文件内容中存在某种可实现的关联,例如文件的校验和,或者文件内容的某种上下文关系,那么也可通过搜索整个文件系统,通过反复尝试寻找符合关联条件的磁盘数据块,进而恢复一个文件 。;
⑷环境比较法;
如果知道删除文件所在的文件系统的安装过程,那么,另行找一台完全相的机器,按原来完全相同的步骤安装相同版本的UNIX和相应的其他软件,可以想象,新的机器环境会与原来的环境基本相同,比较两个机器上相同文件系统的内容,可以推断出被删除文件的大致位置,至少可以大大减少查找的范围,一旦查找的范围足够小时,可以用逐个观察和尝试的方法结合其他条件恢复数据,降低恢复的难度,增加恢复的可靠性 。;
UNIX系统下文件系统恢复的具体实现依赖于不同操作系统和不同版本的具体文件系统结构和磁盘块分配算法 。本文试图总结出一种一般性的思路和策略,限于篇幅,不能详细讨论它们的具体实现过程 。
推荐阅读
- 利用Ghost软件快速安装和恢复系统
- 跟“系统崩溃”说再见
- 打开开始菜单的第三只手
- 微信被拉黑发消息会显示什么
- 解读windows系统中TMP格式文件
- 华为官网怎么申请鸿蒙系统
- 什么是操作系统的SID?
- qq怎么解除被恶意举报 恶意举报解除方式一览
- 让你的系统一尘不染,天天都是新系统
- Windows系统自动启动程序藏匿地点知多少
