海阔天空

I'm on my way!
随笔 - 17, 文章 - 69, 评论 - 21, 引用 - 0
数据加载中……

硬盘 簇

文 件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起, 形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。

为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实 际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文 件的实际大小才会与所占空间完全一致。

文 件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起, 形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。

为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实 际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文 件的实际大小才会与所占空间完全一致。

簇是指可分配的用来保存文件的最小磁盘空间,计算机中所有的信息都保存在簇中。簇越小,保存信息的效率就越高。在FAT16文件系统中,每个分区最多有65525个簇,簇大小默认值为32KB;在FAT32文件系统中使用的簇比FAT16小,默认为4KB。
那么在NTFS文件系统中磁盘簇的大小设为多少才合适呢?下面看看大家的讨论:

一、在NTFS文件系统中如何设置簇大小

默认的情况下,在格式化的时候如果没有指定簇的大小,那么系统会根据分区的大小选择默认的簇值。其实在NTFS文件系统中格式化的时候,可以在 “Format”命令后面添加“/a:UnitSize ”参数来指定簇的大小,UnitSize表示簇大小的值,NTFS支持512/1024/2048/4096/8192/16K/32K/64K。比如 “format d:/fs:NTFS /a:2048”,表示将D盘用NTFS文件系统格式化,簇的值为2048B。

二、使用默认的设置

对于初学者来说,其实没有必要去手工设置簇的大小,因为一般情况下使用默认的设置就可以了。比如在用NTFS文件系统格式化分区的时候,系统会根据分区的大小自动选择默认的簇大小,比如4KB。

三、簇的大小因硬盘分区大小而异

在NTFS文件系统中,当分区的大小在2GB以下时,簇的大小应该比相应的FAT32簇小,即小于4KB;当分区的大小在2GB以上时(2GB~2TB),簇的大小应该都为4KB。

四、使用压缩功能对簇大小的要求

在Windows 2000/XP系统中,为了使用压缩功能来节省磁盘空间,必须遵循两个条件:

1.磁盘分区必须是NTFS文件系统;
2.分区中簇的大小不得超过4KB(默认簇的大小,即4096字节)。

五、簇的大小的影响

在NTFS文件系统中,簇的大小会影响到磁盘文件的排列,设置适当的簇大小可以减少磁盘空间丢失和分区上碎片的数量。如果簇设置过大,会影响到磁盘存储效率;反之如果设置过小,虽然会提高利用效率,但是会产生大量磁盘碎片。
硬 盘是计算机中极为重要的存储设备,计算机工作所用到的全部文件系统和数据资料的绝大多数都存储在硬盘中。硬盘是产生计算机软故障最主要的地方,常见的硬盘 软故障有:硬盘重要参数及文件丢失,电脑不能起动;碎片过多,电脑运行速度变慢;硬盘分区后丢失容量等。对付硬盘软故障,只要我们肯动脑并利用一些硬盘维 护工具,发挥一不怕苦、二不怕(硬盘)死的革命精神,外加胆大心细,当然还要掌握硬盘基本常识,这样就可以轻松搞定(说的容易、做起来可不简单 :( )。因此,我收集了大量的资料整理汇编了“硬盘软故障完全修复手册”,希望能在与大家一起学习的过程中掌握硬盘常见故障的排除方法,做到“自已动手、丰衣 足食”,凡事不求人的目的。
大家知道,一个硬盘要能存放文件,必须经过硬盘分区,格式化等操作步骤,因为经过这些步骤之后,在硬盘中就建立起了主分区,引导分区,确定了FAT16或 FAT32文件表。主分区的作用是保存硬盘中各逻辑分区在盘片上起始位置和终止位置及分区的容量大小。引导分区的作用是在固定的位置存放有操作系统文件, 在电脑送电或复位时,由BIOS程序将处于固定位置的系统文件装入内存,再将电脑控制权交给系统文件人而完成引导过程。扩展分区作为一个主分区占用了主分 区表的一个表项。在扩展分区起始位置所指示的扇区(即该分区的第一个扇区)中,包含有第一个逻辑分区表,同样从1BEH字节开始,每个分区表项占用16个 字节。逻辑分区表一般包含两个分区表项,一个指向某逻辑分区,另一个则指向下一个扩展分区。下一个扩展分区的首扇区又包含了一个逻辑分区表,
这样以此类推,扩展分区中就可以包含多个逻辑分区。下面我们就来学习一下硬盘数据的基本结构。
★ 硬盘的数据结构 ★
① MBR(Main Boot Record 主引导记录区)
MBR位于整个硬盘的0磁道0柱面1扇区,包括硬盘引导程序和分区表。在总共512字节的硬盘主引导扇区中,MBR只占用了其中的446个字节,其最后两 个字节“55 AA”是分区的结束标志。另外的64个字节交给了DPT(Disk Partition Table 硬盘分区表),从1BEH字节开始,共占用64个字节,包含四个分区表项。每个分区表项的长度为16个字节,它包含一个分区的引导标志、系统标志、起始和 结尾的柱面号、扇区号、磁头号以及本分区前面的扇区数和本分区所占用的扇区数。其中“引导标志”表明此分区是否可引导,即是否活动分区。当引导标志为 “80”时,此分区为活动分区;“系统标志”决定了该分区的类型,如“06”为FAT16分区,“0B”为FAT32分区,“07”为NTFS分 区,“63”为UNIX分区,等;起始和结尾的柱面号、扇区号、磁头号指明了该分区的起始和终止位置。
我们假设一个硬盘分区表从1BEH字节开始的16个字节为 80 01 01 00 06 0D 68 6D 28 00 00 00 78 20 03 00
硬盘分区表项的16个字节分配如下:
第1字节:是一个分区的激活标志,表示系统可引导。如是0则表示非活动分区。
第2字节:该分区起始磁头(HEAD)号
第3字节:该分区起始扇区(Sector)号
第4字节:该分区起始的柱面(Cylinder)号
第5字节:该分区系统类型标志
第6—8字节:该分区终止磁头(HEAD)号、分区结束的扇区号、分区结束的柱面号
第9-12字节:该分区首扇区的相对扇区号
第13-16字节:该分区占用的扇区总数
以上参数我们可以用NU 8.0中DISKEDIT工具软件可轻松获取,其功能非常强大,但应用不当会有很大错误,请各位注意使用方法。操作步骤如下:
以一台硬盘为270 MB,分为C盘(100 MB)和D盘(170 MB)的机子(老掉牙了 ^_^)为例,在纯DOS下启动DISKEDIT → 在对象菜单(Object)上选中驱动器(Drive)和物理磁盘选项后确定 → 在对象菜单(Object)上选中分区表(Partition Table) → 在显示菜单(View)中选择十六进制(Hex)
以下数据为主分区信息:
000001B0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 80 01
000001C0: 01 00 06 0D 68 6D 28 00 - 00 00 78 20 03 00 00 00
000001D0: 41 6E 05 0D E8 AE A0 20 - 03 00 30 EE 04 00 00 00
000001E0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 55 AA
② DBR(Dos Boot Record 操作系统引导记录区)
它通常位于硬盘的0磁道1柱面1扇区,是操作系统可直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为 例,即是Io.sys和Msodos.sys)。如果确定存在,就把它们读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇 区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元的大小等重要参数。DBR是由高级格式化程序(即Format等程序)所产生的。
③ FAT(File Allocation Table 文件分配表)
FAT是DOS、Windows 9X系统的文件寻址格式,位于DBR之后。
在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……
同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保 存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一 簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起 见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检 测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适 应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。
④ DIR (Directory 根目录区)
DIR位于第二个FAT表之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
⑤ DATA(数据区)
数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘的大部分空间。当将数据复制到硬盘时,数据就存放在DATA区。

posted on 2009-08-08 22:31 石头@ 阅读(1413) 评论(0)  编辑  收藏 所属分类: 基础技术


只有注册用户登录后才能发表评论。


网站导航: