关于NTFS文件修复一些见解

       最近公司想做一款Windows文件恢复软件,通过此软件,把一些用户误删除或误格式化的文件恢复回来。让我先做下这方面的预判(由于我对NTFS有些了解,上个项目就是跟NTFS相关)。

       想做文件恢复,那就涉及到文件系统,目前windows端,最常用的就是NTFS文件系统。其次是FAT文件系统。FAT文件系统又可以细分为FAT16、FA32、exFAT等。这里先说下对于NTFS文件系统内,文件恢复的大概的思路(目前FAT还没详细了解,后续查了相关资料再说)。

       NTFS文件系统里,NTFS分区主要由引导扇区、主文件表(Master File Table,MFT)、系统文件和文件存储区域等4个部分组成。而文件的读写是以簇为单位。

       新建一个文件或文件夹时,会在MFT里增加一条记录,用以记录文件的相关信息(文件的大小、访问时间、修改时间、存储位置、父目录、文件属性等),并在一个BitMap的系统文件里,改变文件所占簇的使用情况。

       删除一个文件时,MFT表有如下改动:

         1.把MFT表里,这个文件的标志位改为未使用状态

         2.把这个文件,在BitMap里所占用的簇,标记未0(未使用)

         3.从MFT里,文件所在目录里,移除此文件

       通过上面的描述,可以看出,NFTS文件系统里,文件删除实际上只是一个标记的删除,真正的内容还是存在的,只要MFT表里相应的文件记录没有被覆盖,并且文件内容所在的簇,没有被重写,文件是完全有可能被恢复的。(这也是很多文件恢复软件,反复提及、恢复文件时,要对硬盘少操作。因为一旦硬盘发生了写操作,文件的MFT记录或者是文件所占用的簇,就有可能被新文件覆盖)

      文件恢复操作的实际过程:

         1.遍历MFT表,找出标记为删除的文件记录

         2.从文件记录里,获取文件所占用的簇

         3.分析BitMap,判断文件所占用的这些簇,是否是未使用状态(*注:如果恢复前对这些簇进行了读写操作,此判断会不准确)

        4.对数据进行读取及恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值