之前一直想把自己开发的数据恢复软件开源,但一直没有进行基本原理、研发过程文档的编写和代码的整理,这几天找出以前的源码,再补充几篇基本原理和研发思路的博文。
为什么会有数据恢复软件?
平时我们使用电脑的时候,会发现删除文件的速度比拷贝文件的速度快很多,但这是为什么呢?这里就有文件系统的基本原理了,我们在创建文件的时候,文件系统会创建文件文件名、属性信息、文件内容,但我们在删除文件的时候,文件系统只会将我们的文件属性设置为“已删除”,将我们文件内容所占的空间设置为未使用,这样文件系统的shell(windows系统就是explorer)就不会显示出已删除的文件,这个很容易理解,一件物品扔到垃圾箱里面就是垃圾,但它仍然存在,只不过放在我们不去关注的地方,磁盘上的文件也是一样,如果我们没有彻底的粉碎它,只是按了一下delete按钮,那它的内容仍然存在在我们的磁盘上,只不过文件系统的shell向我们撒了谎,并没有显示它。
因此,只要我们能够掌握文件系统的实现原理,就可以将delete的文件找回来,这就是为什么会有数据恢复软件存在的根本原因。
对了,前面提到粉碎,如果你确实想把一些文件销毁掉,连FBI也查不到它是否曾经存在,那就要用文件粉碎软件将它彻底销毁,否则你看过的文档、图片、视频什么的,在数据恢复软件的面前就会一览无余。:)
好吧,我们就开始来学习FAT32文件系统吧。
FAT32文件系统是windows系列操作系统上广泛应用的文件系统,相对也比较简单,所以我们从它开始。
首先要理解的一个概念是引导