您的位置:首页 > 其它

误删文件恢复,系统启动原理,数据的存取原理(文件存储原理),文件恢复原理

2007-02-09 11:18 627 查看
硬盘作为最主要的存储设备却又恰恰是个人电脑中最不可靠、最脆弱的零部件,非常容易出现故障而导致数据的丢失。另外,操作系统的脆弱、病毒、误操作等问题也容易造成数据的丢失。但事实上,除了硬盘的硬件损坏所造成的数据丢失问题,大部分情况下的数据是可以恢复的,而且如果您在问题发生之前就已经建立起自己的数据恢复策略,则恢复的机率可达到95%以上。
       一个已经投入使用的硬盘一般被划分为主引导区、操作系统引导区、文件分配表、目录分配表和数据存储区五个部分。电脑系统启动时,从BIOS设置中获取硬盘的信息并装载主引导区的信息,主引导记录将首先检查分区表信息并将控制权交给位于活动分区的操作系统引导记录。主引导区在Windows操作系统上由Fdisk等分区程序负责建立,由于电脑系统在启动时将在第一时间装载主引导记录,具有比操作系统优先的控制权,因此该区域是许多病毒都试图侵占的地方,出现错误导致整个硬盘的数据无法访问的机率也较高。当主引导记录出现错误时,系统就无法准确识别硬盘,启动时也很少给出提示信息。而分区表错误虽然有许多种类型,一般系统都能够准确地指出错误的原因,例如缺少活动分区等等,此类错误可以归类为无法识别硬盘,在下面的恢复操作中将指明应该使用的方式。在主引导记录之后,获得控制权的是操作系统引导记录,操作系统引导记录将通过分区信息记录获得分区的起止位置,了解分区的大小,并按照所属操作系统的文件格式读取文件分配表和目录分配表,找到需要的启动程序,例如IO.SYS、MSDOS.SYS。不同的操作系统引导记录不同,所需的启动程序也不同,在微软的操作系统上,操作系统引导区在安装系统或者使用SYS、Format/S命令时建立。当操作系统引导区出现错误时,系统只是无法启动,并不会造成数据的丢失。
        电脑系统在硬盘上存取数据时将用到文件分配表、目录分配表和数据存储区,电脑系统将硬盘的数据存储区以簇为单位划分并编号使用。当系统读取数据时,首先通过目录分配表获得文件的起始簇位置,并在此开始读取,然后通过文件分配表了解该簇是否有后继簇,有则继续读取,直至一个指明没有后继簇的结束簇,完成文件的读取操作。在保存文件时,也需要通过文件分配表找到哪些簇是可以使用的,将数据存储到第一个可用簇后,如果还有数据没有存储就查找第二个可用簇,并且在文件分配表中为第一个簇指明后继簇的位置,重复操作至数据存储完毕后,在目录分配表中记录下文件的名称、属性、初始簇等信息。需要注意,在使用删除、快速格式化、标准格式化等命令操作硬盘时,数据存储区的内容并没有被清除,这就为数据恢复提供了可能。另外,由于文件分配表的重要性,硬盘上将另外留有一份备份,这也是Scandisk之类的硬盘检查软件能够修复硬盘数据错误的原因。通过系统存取数据的原理可以得知,当文件分配表、目录分配表等索引信息损坏时,我们将只能通过直接读取簇内的数据来进行数据恢复。可见,经常检查硬盘错误可以避免在丢失数据时由于需要的信息丢失而无法恢复的问题。也可以得知,为何硬盘使用一段时间后会出现所谓的硬盘碎片(也就是一个文件所使用的簇并不是连续的)。在需要通过读取簇内容来恢复数据时不难想像,一个没有硬盘碎片的硬盘恢复起来会容易很多。因此,在曰常操作中经常整理硬盘不只是一种可以提高硬盘效率的工作,还是一种可以提高数据恢复机率的好习惯。此外,由于NTFS格式增加了一个索引文件信息的主文件表,而且在存储数据时系统将在存储工作完成后将存储的结果与源数据进行比较以确认操作的正确性,因此使用NTFS格式的硬盘数据更为安全,当发生数据丢失问题时可恢复的程度也较高。
        磁盘由一层或多层可读写磁介质盘片组成。从中心向外辐射,盘片分为若干扇区; 以不同半径为跨度,分为若干磁道; 扇区和磁道相交构成多个存储区(x磁道x扇区); 盘片内侧和外围的弧长不同、容量不同,为便于管理,每个存储区又分为数量不同、容量相同的簇,簇是数据存储和磁盘管理的最基本单位。软盘采用FAT12格式,DOS、Win3.x以及Win95管理的硬盘为FAT16格式,Win98/ Me兼容FAT16/32,WinNT/2000/XP兼容FAT16/32和NTFS,它们的“簇”容量是不同的。 磁盘有一个最基本的读取点——引导区(在0磁道1扇区)。对磁盘分区时,启动系统所需的最基本信息: 包括BIOS引导记录、分区表(管理各分区)均保存在引导区。每个分区都有一个文件分配表(用来记录文件在磁盘中的保存布局)和一个根目录,磁盘上的文件再多,都要按一定的结构区(子目录)包含在根目录中,在文件分配表中留下一个记录。系统软件就是通过读取文件分配表,在根目录的相应位置寻找文件的。 簇大小是固定的,而每个文件的大小却不同,它们占用的簇数自然不同。每个文件都有一个文件头(用来记录文件名、文件大小和属性、占用簇号等信息),文件头保存在一个簇并映射在文件分配表中。系统软件查找文件,就是从文件分配表中查找文件头,通过文件头中的信息读出各簇中链接的全部数据,来再现这个文件的。
        删除文件,其实是修改文件头的前2个代码。这种修改映射在文件分配表中,就为文件作了删除标记,但文件的内容仍保存在原来的簇,如果不被后来保存的数据覆盖,它就不会从磁盘上抹掉。文件被删除后,既然其数据仍在磁盘上,文件分配表中也有它的信息,这个文件就有恢复的机会,只要找出文件头,并恢复前2个代码,在文件分配表中重新映射一下,这个文件就被恢复了。但是,文件被删除后,如果它所占的簇被存入其他数据,文件头也被覆盖,这个文件在文件分配表中的信息就会被新的文件映射所代替,这个文件一般也就无法恢复了。恢复文件,其实就是用恢复软件的查找分析功能找出文件头,重写前2个代码,并修改文件分配表中的映射记录。仅仅是删除的文件,恢复起来比较容易,如果整个磁盘被格式化了,恢复的困难就更大些,但是只要恢复软件能搜寻,并分析到它的残存的文件头,就有可能利用文件头中的信息,连接文件原来占用的簇,以恢复被删除的文件。然而,如果一个文件的某些簇被其他数据覆盖,即使恢复软件强行把原来占用各簇的数据连接起来恢复文件,但是因为其中的某些簇已不是该文件自身的数据,所以这个恢复后的文件往往无法使用。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐