一、垃圾数据的危害
朋友,当您的软盘损坏不能使用,随手将它丢弃的时候,当您的旧硬盘需要转让的时候,您有没有想过自己的秘密会被别人看到呢?即使您已经将上面的数据删除 (Del或者Shift+Del),甚至进行了格式化、重新分区。如果硬盘或软盘上有公司的报表、技术资料等商业秘密,是否想过在不经意间这就可能让公司蒙受巨大损失呢?
现在有很多工具可以恢复用一般方法删除的数据,甚至连高级格式化几次后的磁盘上的数据都可以恢复。数据粉碎就是将磁盘上的垃圾数据彻底从磁盘上彻底删除,使得通过一般的软件方法不能恢复。
对垃圾数据进行粉碎是非常必要的,这点我们还有理由反驳吗?下面我们就先从磁盘的结构和文件系统入手,先分析数据恢复的原理,然后讲解如何真正删除数据,最后介绍几种常用的数据恢复工具和数据粉碎工具。
二、基础知识
1、磁盘的物理结恫
对于新购置的磁盘,无论是软盘还是硬盘,都需要格式化后才能够使用。磁盘格式化分为两部分:低级格式化和高级格式化。
低级格式化 (也叫物理格式化)生成磁盘的磁道和扇区。完整的扇区由地址标识 (说明扇区的位置)及数据存储区组成。硬盘在出厂时己经做了低级格式化,除非确有必要,用户一般不需要对硬盘进行低级格式化。
高级格式化则是转换成对应某种操作系统的标准化格式。高级格式化是让其他操作系统管理磁盘的基础。
硬盘分区后,将会被划分为磁道、扇区和面。
磁道:磁盘是典型的直接存取设备,为了随机存取磁盘中的数据,将磁盘划分成若干个同心圆,每个同心圆称为一个磁道。磁道个数与磁盘类型有关,3.5英寸软盘被划1.44MR,分为80个磁道。每个磁道都有各自的编号,编号从最外面的磁道开始,为磁道0。
扇区:磁道又被划分成若干段,每段称为一个扇区 (Sector)。一个扇区一般存放512字节的数据。扇区也需要编号,同一磁道中的扇区,分别称为1扇区、2扇区等。同类型的磁盘及格式化方法的不同,使得每个磁道的扇区数也不同。3.5英寸软盘每磁道有182个扇区。
面:一张软磁盘有两面,通常两面部用来存放信息。硬盘一般由若干个盘片组成。磁盘的面也用数字编号,最上面为0面。对应磁盘的每个面都有一个数据读写磁头,所以面和磁头个数是相同的。也可用磁头编号代表磁盘的面。
柱面:所有磁盘的相同磁通称为一个柱面。
绝对扇区:可以用磁头、柱面、扇区编号确定一个扇区的位置,称为绝对扇区。如0面0道1扇区是硬盘的主引导扇区。
逻辑区号:将所有扇区从开始直到最后的扇区进行编号,便得到逻辑区号。
磁盘分区:便盘可以分区使用,一个分区就是硬盘上的一块连续区域。硬盘使用时必须将某个分区设置成活动分区,即便整个硬盘只用一个分区,初次使用时也需要进行分区设置。
2、磁盘的逻辑结构
磁盘在使用前,要进行物理格式化、分区、逻辑格式化后才能使用。在格式化完毕之后,磁盘分为以下几部分:引导扇区 (BOOT)、文件分配表(FAT)、文件目录表 (FDT)和数据区,如表1所示。如果是硬盘,在0面0道1扇区还存在一个由分区命令FDISK形成的主引导扇区。它由主引导记录十分区表十有效标志组成。
硬盘结构如下:
主引导记录(MBR)
分区表(DPT)
Dos引导区(DBR)
FAT表
根目录区(DIR)
数据区(DATA)
(1)MBR区
MBR(Main Boot Record),为主引导记录区,位于整个硬盘的0磁道0柱面1扇区,在总共512字节的主引导区中,MBR只占用了其中的446个字节(偏移0-IBDH),另外的64个字节 (偏移IRKH-1FDH)交给了DPT(Disk Partition Table硬盘分区表),最后两个字节"55AA"(偏移IFEH-IFFH)是分区的结束标志。这便构成了硬盘的整个主引导扇区。
主引导记录中包含了硬盘的一系列参数和一段引导程序。其中主引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给其启动程序。MBK是由分区程序 (如Fdisk)所产生的,它不依赖任何操作系统,并且硬盘引导程序也是可以改变的,从而实现多系统共存。
(2)DBRIX
DBR(DOS Boot Record)是操作系统引导记录区的意思。它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(Bios ParameterBlock)的本分区参数记录表。DBR是由高级格式化程序(即Format.com等程序)所产生的。
(3)FAT区
在DBR之后的是FAT(File Allocation Table文件分配表)区。在解释文件分配表的概念之前,我们先来谈谈簇(cluster)的概念。
簇是磁盘文件存储的基本单位,每个簇的扇区数由磁盘类型决定,并由FORMAT程序建立。程序将新数据与人1个磁盘文件时,文件系统需找到磁盘上的本用扇区。操作系统要求每张盘都有个文件分配表,以找到文件所安排的扇区。但如果逐个扇区地跟踪将使效率太低。例如。1个10MB的硬盘有20000扇区,每个扇区都跟踪将使表很大。查这FAT张大表也很花时间。如果文件分配表小些,则搜索将更快,文件访问也更快。较好的解决方法是将扇区分组,当需要使用磁盘上的剩余空间时,便分配给该文件一组扇区。此分组称之为扇区分簇,它能使文件系统更有效地根据内存需要来管理文件分配表。盘簇 (简称为簇)即是一组固定数目的扇区。
注:簇在文件系统中是一个非常重要的概念。后面我们还会接触到簇链 (数据恢复中很难缺少的部分)。
文件占用磁盘空间时,基本单位不是字节而是簇。簇的大小与磁盘的规格有关,一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64个扇区等。
每个磁盘上的可用簇郡有一个登记项,表示该簇是在使用、空闲或者已经损坏。文件存储时是以簇力最小单位进行分配的,如果文件要占用两个或两个以上的簇,并且这些簇在磁盘上很可能不是连续,这样就带来了其他的一些间题:访问文件时如何定位文件的各个部分。分配磁盘空间时如何知道某个簇是否空闲等,这些问题都是通过使用FAT (即文件分配表)来完成的。硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个己经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。
注:FAT,表实际上就是各个簇使用信息的集合,譬扣对于FAT52来说,每个簇就对应FAT表中的32位 (即4个字节)。通过这张FAT表。文件系统可以找到每个文件对应的簇链。
当操作系统需要建立文件时,它总是首先搜索FAT。跳过所有己分配的簇去找到第一个可用簇(其项值为0),然后将该簇簇号作为该文件的起始簇号写到文件目录表目录登记项的相应域中。并将数据存人该簇中。如果文件大小小于一个簇的话,则将此FAT项的值改为文件结束标志。如果一个簇存不下该文件,则会继续查找下一个值为0的FAT项,然后在前一个FAT项中写入这个FAT项对应簇的簇号,依次类推,直至找到满足文件长度的全部可用簇。这样就形成了一个簇链,并在最后一个簇中填人文件结束标志。访问文件时,顺着这条链就可以找到全部文件的内容。
对于硬盘的每一个逻辑分区,即每一个盘符所代表的磁盘空间,其部有自己的文件分配表。FAT中有许多项,这些项和磁盘中的簇一一对应,用于表示相应簇的使用状态,如下所示 (以FAT16为例)。
簇为空白,表示没有任何文件使用到它,其值为OOOOH
簇包含了一个或数个不可使用的受损扇区,其值为FFF7H,
此簇为文件的最后一个簇
其值为FFFFH-FFF8H,
如果簇已经被使用但不是文件的最后一个簇,那么FAT记录表会记录其下一个簇的位置值为0002H-FFEFH.
对于每一个逻辑分区,可用簇的编号都是从2开始的 (0号和1号由系统保留)。
既然FAT对于文件管理如此重要,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。这样一旦第一个FAT被破坏,就可以将第二个FAT拷贝到第一个FAT进行恢复。
注:这第二个FAT表往往是很多数据恢复事例中关键!
(4)DIR区
DIR.(Directory)是根目录区,紧接着第二FAT表 (即备份的FAT表)之后,记录着根目录下每个文件 (目录)的起始单元、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
每个文件目录由一个个32字节组成,其中(以FAT32为例)
0~7字节表示文件名:第0个字节为ooh时,表示该目录项未使用;
第0个字节为E5h时,表示该目录项已被删除;
提醒 注意这里目录项被删除后的描述(第0个等节为E5h 。
8-10字节表示文件扩展名
11字节表示文件属性L为01h,表示只读文件;
为02h,表示隐含文件等;
13~15字节表示文件建立时间;
16-17字节表示文件建立日期:其中的高7位为相结于1980年的年份值,次4位为月份,后5位为月内日期.
18-19字节表示文件最新访问日期;
20-21字节表示文件的起始族号的高16位,高字节在高位,低字节在低位;
22-25字节表示文件的创建访问的时间日期;
26-27字节表示文件的起始簇号的低16位,高字节在高位,低字节在低位;
28-31字节表示文件的长度(以字节为单位).
提醒:请注意这里最关键的两个位置20~21、26~27。这4个字节(32位)给出了一个文件对应的首簇号,通过这个首簇号文件系统可以找出整个文件对应的族链。
在文件系统中,我们要访问一个文件时是按名存取的,系统根据我们给出的目录和文件名在相应的文件目录项中查