3种找回nix删除文件方法
创始人
2024-06-29 20:00:40
0次

我们知道Unix删除一个文件的具体步骤是: 根据文件i节点的地址表逐一释放文件占用的磁盘数据块,然后清空相应的节点,最后释放i节点。 删除一个目录的过程是: 首先逐一删除目录里的所有文件,然后删除目录。目录本身也是一个文件,故Unix删除方法与删除文件一致。

要恢复被删除的文件,只能根据删除后留下的东西去做文章。Unix删除文件后留下了什么呢?由上述分析可知: 其一,留下了文件的内容; 其二,留下了“现场”。文件的恢复策略只能从这两个方面来分析。

根据内容恢复

若现场已被破坏,即硬盘发生过写操作,那么只好根据内容来恢复。而且,由于Unix是一个多进程、多用户系统,它每一次开关机或硬件、通信故障等都会记录 系统日志、.sh_history等,硬盘现场被破坏的可能性极大。因此讨论按内容恢复的方法具有更大的实用价值。笔者经过实际探索得出下列几种恢复策略 供参考。

● Unix删除文件关键字搜索法

如果知道被删除的文件内容中若干字节的内容,而且该文件长度又不超过一个磁盘 块,那么可以在整个文件系统中搜索这一字节串,得出一个文件所在的数据块,将它们的块号填入一个i节点,即可恢复一个文件。

搜索文件系统的算法很简单,说 明如下: 首先,用“#df -k”命令确定文件系统的设备文件名(如/dev/root); 然后,用下述函数搜索,若成功,返回数据块号,反之返回-1。其中fsname是文件系统的设备名,如/dev/root,comp()参数是实现搜索条 件的函数。
 

  1. long searchfs(char *fsname , int comp())   
  2. { FILE *fp;   
  3. char buf[1024];   
  4. long i=0;   
  5. fp=fopen(fsname,"r");   
  6. while (!feof(fp))   
  7. { fread(buf,1024,1,fp);   
  8. if (comp()) /* 检查是否符合搜索条件 */   
  9. return i; /* 若成功返回块号 */   
  10. i++;   
  11. }   
  12. fclose(fp);   
  13. return -1; /* 未找到符合条件的块,返回-1*/ }  

● Unix删除文件精确长度搜索法

如果知道被删除文件的精确长度(字节数),那么可根据一个数据块的大小,计算出文件的最后一个数据块中数据的精确长度,该数据块中其他字节必然是全0。根 据这一条件,通过搜索整个文件系统,找出其中符合条件的数据块,若出现多个块符合要求,则还需要根据其他条件区分。但不管怎样,根据精确长度分析也是恢复 数据的一个策略。

● Unix删除文件内容关联法

如果知道文件内容中存在某种可实现的关联,例如文件的校验和或者文件内容的某种上下文关系,那么也可通过搜索整个文件系统,通过反复尝试寻找符合关联条件的磁盘数据块,进而恢复一个文件。

Unix删除的文件找回方法,我们就讲解到这里。

【编辑推荐】

  1. Unix操作系统脚本的讲解
  2. Unix文本文件知识讲解
  3. Unix操作系统进程知识学习
  4. Unix操作系统中DOS文件知识
  5. Unix文件系统自动安装与拆卸

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...