找回密码
 立即注册

QQ登录

只需一步,快速开始

教程经验总索引TVMW5/小日本5 索引【视频转换】小日本4/TE4XP 索引【视频转换】TAW4 / TDA3 索引【DVD打包软件】
Nero 索引DVD-Lab 索引【DVD打包软件】编解码器 索引 【必读】固顶帖011号
查看: 3801|回复: 0

硬盘数据结构

[复制链接]

9334

威望

924

金钱

1万

贡献

管理员

自由的灵魂

积分
100587
主题
5294
回帖
26246
注册时间
2003-4-10
最后登录
2024-12-28
发表于 2006-10-30 11:29:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
&nbsp;<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">硬盘数据结构</a>
       

  初买来一块硬盘,我们是没有办法使用的,你需要将它<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>、格式化,然后再<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">安装</a>上操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>才可以使用。就拿我们一直沿用到现在的<a href="http://www.pcfree.cn/cn/service/OS/windows/2004/09/20/article012022343.html">Win</a>9x/Me系列来说,我们一般要将硬盘分成<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">主引导扇区</a>、<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">操作系统引导扇区</a>、FAT、DIR和Data等五部分(其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加)。

  1.<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">主引导扇区</a>
       

  <a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">主引导扇区</a>位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的Fdisk.exe)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区<a href="http://www.pcfree.cn/cn/service/networksecurity/virus/2005/01/10/article151003546.html">病毒</a>)。

  2.操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>引导扇区

OBR(OS Boot Record)即操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>/<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">扩展分区</a>的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(<a href="http://www.pcfree.cn/cn/service/desktop/motherboard/2004/07/16/article17161131.html">BIOS</a> Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的<a href="http://www.pcfree.cn/cn/service/OS/windows/2004/09/20/article012022343.html">Win</a>9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS 的Format.com)。

  3.<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">文件分配表</a>
       

  FAT(File Allocation Table)即<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">文件分配表</a>,是DOS/<a href="http://www.pcfree.cn/cn/service/OS/windows/2004/09/20/article012022343.html">Win</a>9x<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>的文件寻址系统,为了数据<a href="http://www.pcfree.cn/cn/service/network/wireless/2004/09/05/article110507250.html">安全</a>起见,FAT一般做两个,第二FAT为第一FAT的<a href="http://www.pcfree.cn/cn/service/dataBackup/generalknowledge/2004/09/05/article120512781.html">备份</a>, FAT区紧接在OBR之后,其大小由本<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>的大小及文件分配单元的大小决定。关于FAT的格式历来有很多选择,Microsoft 的DOS及<a href="http://www.pcfree.cn/cn/service/networksecurity/virus/2004/09/29/article132913890.html">Windows</a>采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。

  4.<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/13/article011344921.html">目录区</a>
       

  DIR是Directory即根<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/13/article011344921.html">目录区</a>的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。

  5.数据区

  DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据<a href="http://www.pcfree.cn/cn/service/notebook/maintainTechnique/2004/07/09/article230956718.html">清除</a>,只是重写了FAT表而已,至于<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。

  硬盘<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>方式

  我们平时说到的<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>概念,不外乎三种:主分区、<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">扩展分区</a>和逻辑分区。

  主<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。

  扩展<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">主引导扇区</a>中总计可以存储4个分区的数据。操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">扩展分区</a>的概念。

  所谓扩展<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">主引导扇区</a>中除了主分区外,仅需要存储一个被称为<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/10/article141007453.html">扩展分区</a>的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。

  需要特别注意的是,由于主<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。

  数据存储原理

  既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题……

  文件的读取

  操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>从<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/13/article011344921.html">目录区</a>中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。

  操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。

  文件的写入

  当我们要保存文件时,操作<a href="http://www.pcfree.cn/cn/service/OS/windows/2005/01/10/article151001859.html">系统</a>首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。

  文件的删除

  看了前面的文件的读取和写入,你可能没有往下边继续看的信心了,不过放心,<a href="http://www.pcfree.cn/cn/service/OS/windows/2004/09/20/article012022343.html">Win</a>9x的文件删除工作却是很简单的,简单到只在<a href="http://www.pcfree.cn/cn/service/dataRecovery/harddiskRecovery/2004/07/13/article011344921.html">目录区</a>做了一点小改动——将目录区的文件的第一个字符改成了E5就表示将改文件删除了。

  Fdisk和Format的一点小说明

  和文件的删除类似,利用Fdisk删除再建立<a href="http://www.pcfree.cn/cn/article/2005/01/10/article161050406.html">分区</a>和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被<a href="http://www.pcfree.cn/cn/service/dataRecovery/knowledge/2004/08/01/article080122171.html">误删除</a>的分区和<a href="http://www.pcfree.cn/cn/service/dataRecovery/knowledge/2004/08/01/article080122171.html">误格式化</a>的硬盘完全有可能恢复……

IsaacZ的发言中如果提到任何字母缩写或专有名词,在本论坛中一般都能搜索到。点此立即搜索点拨论坛。如有搜索不到的,请尝试搜索百度百科,或者跟帖提问。
发帖前请注意看置顶帖。如果你发现自己的问题没有得到回答,说明你的问题提错了地方或者提问前未先阅读版规。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2024-12-28 17:59 , Processed in 0.076511 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表