硬盘数据存储区域的结构

[复制链接]
  • TA的每日心情
    奋斗
    2012-4-26 09:09
  • 签到天数: 1 天

    [LV.1]布衣百姓

    63

    主题

    1842

    回帖

    2339

    积分

    [INTOHARD]营长

    金牌会员

    Rank: 6Rank: 6

    积分
    2339
    QQ
    发表于 2008-1-15 11:28:31 | 显示全部楼层 |阅读模式
    硬盘数据存储区域

    硬盘上的数据按照其不同的特点和作用大致可以分为5部分:MBR区,DBR区,FAT区,DIR区和DATA区,其中,MBR由分区软件创建,而DBR区,FAT区,DIR区和DATA区由高级格式化程序创建。文件系统写入数据时只是改写相应的FAT区,DIR区和DATA区。也正是这5个区域共同作用的结果,才使整个硬盘的管理有条不紊。
    1.MBR区
    MBR(Main Boot Record):即主引导记录区,位于整个硬盘的0磁道0柱面1扇区。在总共512字节的主引导扇区,MBR的引导程序占用其中的前446个字节(偏移0~偏移1BDH),随后的64字节(偏移1BEH~偏移1FDH)为DPT(Disk Partition Table,硬盘分区表),最后的两个字节“55 AA”(依稀1FEH~依稀1FFH)是分区有效结束标志。由它们共同构成硬盘主引导记录,也称主引导扇区。有时硬盘主引导记录专指点MBR的引导程序。
    2.DBR区
    DBR(DOS Boot Record):操作系统引导记录区。第1个分区的DBR通常位于硬盘0柱1面1扇区,是操作系统可以直接访问的第一扇区。它包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。引导程序的主要任务是,当MBR将系统控制权交给它时,判断本分区根目录前两个文件是不是操作系统的引导文件。以DOS为例,即是IO.SYS和MSDOS.SYS。低版本的DOS要求这两个文件必须是前两个文件,即位于根目录的起始处,占用最初的两个目录项,高版本已没有这个限制。另外,Windows与DOS是一个家族,所以Windows也沿用这种管理方式,只是文件名不一样。如果确定存在,就把IO.SYS读入内存,并把控制权交给IO.SYS。BPB参数块记录着本分区的起始扇区,结束扇区,文件存储格式,硬盘介质描述符,根目录大小,FAT个数,分配单元大小等重要参数。
    3.FAT区
    在DBR之后就是FAT(File Allocation Table,文件分配表)区。同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。硬盘上的文件常常要进行创建,删除,增长,缩短等操作。这样的操作做得越多,盘上的文件就可能被分得越零碎(每段至少1簇)。但是,由于硬盘上保存着段与段之间的连接信息(FAT),操作系统在读取文件时,问题能够准确地找到各段的位置并正确读出。不过,这种以簇为单位的存储法也不例外有其缺陷的,这主要表现在对空间的利用上。每个文件的最后一簇都可能有未被完全利用的空间(称为尾簇空间)。一般来说,当文件个数比较多时,平均每个文件要浪费单个簇的空间。
    为实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇,这些都由FAT表来保存。表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中,所有项都标明为“未占用”。如果磁盘有局部损坏,格式化程序会检测出损坏的簇,在相应的项中标出“坏簇”,以后存文件时就不会再使用这个簇。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。其中FAT16是指文件分配表使用两个字节即16位表示一个簇。由于16位分配表最多能管理65536(即2的16次方)个簇,而每个簇的存储裥最大只有32KB,所以在使用FAT16管理硬盘时,每个分区的最大存储容量就只有65536X32KB=2048MB,也就是常说的2G。现在的硬盘容量越来越大,由于FAT16对硬盘分区的容量限制,所以当硬盘容量超过2GB之后,用户只能将硬盘划分成多个2GB的分区后才能正常使用。为此微软公司从Windows95OSR2版本开始使用FAT32标准,即使用32位表示一个簇的文件分配表来管理硬盘文件,这样系统就能为文件分配多达42094967296(即2的32次方)个簇,所以在簇同样为32KB时,每个区容量最大可能达128TB以上。此外,使用FAT32管理硬盘时,每个逻辑盘中的簇大小也比使用FAT16标准管理的同等容量的逻辑盘小的多。由于文件存储在硬盘上占用的磁盘空间以簇为最小单位,所以,某一文件即使只有几十个字节也必须占用整个簇,因此,逻辑盘的簇单位容量越小越能合理利用存储空间,所以,FAT32更适用于大容量硬盘。
    4.DIR区
    DIR(Directory,也称文件目录表FDT,File Directory Table),是根目录区,紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可确定文件在硬盘中的具体位置和大小。
    5.DATA区
    DATA区(数据)区,是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分空间。
    这5个区域在硬盘逻辑分区上的排列如下图所示:
    MBR(63)        DBR(32)        FAT1        FAT2        DIR(32)        DATA
    其中,MBR一般占用63个扇区(实际只占用1个扇区);DBR占用32个扇区(实际只占用第1和第6两个扇区,第1扇区起作用,第6扇区为第一扇区的备份);FAT1=FAT2,FAT的长度为变长,随分区大小,每簇扇区数的变化而变化;DIR的变化最大,早期的系统中,DIR是固定长度,为32扇区,而每个文件目录项占用32个字节,所以,根目录下最多只能有512项(文件和目录总和),软盘只有112项,超过这个数就不能在根目录下建立文件或目录。后来为了突破这个限制,根目录和子目录一样的方式来管理,称为根目录文件,就没有这个限制了,从此也就不再有单独的根目录,而成为DATA的一部分。甚至,根目录文件并不一定紧跟在FAT之后,可以位于DATA区的任意位置。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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