硬盘数据常识Word文档下载推荐.docx
《硬盘数据常识Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《硬盘数据常识Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
×
柱面(磁道),×
磁头,×
扇区,从0柱0磁1扇开始,编号整个硬盘。
2.逻辑(logic)地址(“相对扇区”):
只有一个逻辑扇区号,可以从0柱0磁1开始计数(如LBA),也可以从0柱1磁1扇开始计数(如DOS扇区)即各分区单独计数。
DOS扇区即是一种相对扇区,它从0柱1磁1扇(DBR)开始计数,把第一个DOS扇区(DOS能访问的第一个扇区)编号为逻辑0扇(即C盘逻辑0扇,而MBR所在的0柱0磁1扇则没有DOS扇区编号,只能调用BIOS访问)。
两种地址在不同地方称呼各不相同。
◇硬盘的工作模式:
1.NORMAL:
最大1024柱,16磁头,63扇,因此最大容量528MB。
2.LARGE:
当柱面大于1024时,把柱面数除以2,把磁头数乘以2,其总容量不变。
3.LBA:
由IDE控制器中的地址翻译器把CHS参数转换为单一的扇区参数。
◇硬盘的寻址方式:
1.CHS寻址方式(物理寻址方式,8.4GB以下使用):
柱面:
范围为0~1023柱,表示硬盘每一面盘片上有几条磁道,最大为1024。
磁头:
范围为0~254个,表示硬盘总共有几个磁头,也就是有几面盘片,最大为255。
扇区:
范围为1~63扇,表示每一条磁道上有几个扇区,最大为63。
NORMAL和LARGE使用的是CHS寻址方式。
在CHS寻址方式中,最大寻址范围是:
255×
1024×
63×
512/1000/1000/1000=8.4G。
注意:
这里的CHS参数与硬盘真实的CHS其实并不相同(硬盘中一般一个盘片对应两个磁头。
单碟对应两个磁头;
双碟则只有三个磁头,其中一个磁头被两张盘片共用;
有的硬盘则只有一磁头。
因此物理磁头数不可能多达255个)。
硬件意义上的CHS与文件系统的CHS的转换是由硬盘的固件来完成的。
2.LBA寻址方式(LogicBlockAddress,逻辑块寻址,8.4GB以上使用):
早期硬盘的扇区在同心圆磁道中呈扇面形状(如上图),由于每个磁道的扇区数相等(与软盘一样),所以外磁道的记录密度要远低于内磁道,会浪费很多磁盘空间。
现在改用等密度结构生产硬盘,外侧磁道一圈因周长更大,所以扇区数量更多(大于63个,在磁道数量一样的情况下,文件系统的柱面数因此变多了),内侧则更少。
采用这种结构后,硬盘不再具有实际的CHS参数。
系统在写入数据时是从柱面的0磁头1扇区开始写入,第一个磁道写满后,就在同一柱面的下一盘面来写。
一个柱面写满后才移动磁头到下一个柱面,从而使磁盘性能最优。
硬盘读写数据时采用以扇区(即逻辑块)为单位进行线性寻址的方式,扇区编号也就是该扇区的LBA地址。
LBA方式把0柱0磁1扇编为逻辑“0”扇区(即零磁道,与“DOS扇区”的“0”扇区不同),0,0,2为逻辑1扇区,0,0,63为逻辑62扇区(此扇后为非隐藏扇区),0,1,1,为逻辑63扇区,0柱编完后再转到1,0,1依次进行,直至把所有的扇区都编上号。
WinHex把LBA扇区(及DOS扇区)称为“逻辑扇区”,PM则称为“绝对扇区”。
查看LBA扇区都应先打开它们HD0的“扇区查看”,然后再输入LBA号。
LBA是逻辑地址(但不同于相对地址的“DOS扇区”),也可以说成是物理地址。
一般我们称CHS模式下的扇区号为物理扇区号,扇区编号是1”至“63”,而LBA方式的扇区从“0”开始。
LBA(逻辑扇区号)=总磁头数×
每磁道扇区数×
当前所在柱面号+每磁道扇区数×
当前所在磁头号+当前所在扇区号–1
例如:
CHS=0/0/1,则根据公式LBA=255×
0+63×
0+1–1=0,也就是说物理0,0,1为LBA逻辑0扇。
现在的硬盘一般都支持LBA和CHS寻址,是因为在HD控制器内部安装了一个地址翻译器,可以将C/H/S参数翻译成LBA地址。
小于8.4G的分区仍需用CHS方式寻址,在大于8.4G的分区,CHS参数就没有什么意义了,此时须用LBA方式寻址。
现代硬盘件系统的柱面数已经突破了1024的限制,最大磁头数和扇区数仍为255和63,所以硬盘的大小一般是与柱面的多少相联系的。
相对于LBA来说,CHS模式较为直观,所以磁盘编辑器通常采用CHS模式来作为磁盘逻辑结构划分方式。
●硬盘存储计数
存储容量=磁头数×
磁道(柱面)数×
每道扇区数×
每扇区字节数。
一个扇区若为512字节大小,那么硬盘容量=C(柱面数)×
H(磁头数)×
S(扇区数)×
512Byte。
若干扇区为一簇(文件最小单位),FAT32一簇最大为32扇区,NTFS一簇4K。
硬盘的容量以兆字节(MB)或千兆字节(GB)为单位,1GB=1024MB,1M=1024KB,1KB=1024B(yte)1Byte=8bit(二进制位)。
但硬盘厂商在标称硬盘容量时通常取1G=1000MB,因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。
DOS/Windows下硬盘数据结构
一个完整硬盘的数据应该包括五部分:
MBR,DBR,FAT,DIR区和DATA区。
其中只有MBR(主引导扇区)是唯一的,其它则随你的分区的不同而不同。
●MBR(MasterBootRecord,主引导扇区或主引导记录):
主引导扇区,位于0柱0磁1扇(大小是512字节,也就是零磁道),外加DPT,由Fdisk命令产生,以55AA标志结束。
◇MBR主要完成的任务是:
(1)存放硬盘分区表(DPT),这是硬盘正确读写的关键数据。
(2)检查硬盘分区的正确性,要求只能并且必须存在一个活动分区。
(3)确定活动分区号,并读出相应操作系统的引导记录。
(4)检查操作系统引导记录的正确性,DOS引导扇区末尾也存在着一个AA55H标志,供引导程序识别。
(5)释放引导权给相应的操作系统。
例如,当确认DOS操作系统引导纪录存在时,则调出DOS引导程序并执行。
硬盘主引导区截图:
注:
HEX为地址数值,十六进制。
DEC为十进制。
BIN为二进制。
OCT为八进制。
◇MBR的结构:
1.主引导程序(446字节,含出错提示),偏移地址为0H-1BDH。
其中0000H-00D9H为主引导记录代码区(0000H-008AH寻找开机分区;
008BH-00D9H启动字符串)。
00DAH-01BDH为保留的空闲区。
DOS命令Fdisk/MBR可以重写这一部分,内容较为固定。
其在截图的上面,占了MBR的最大部分。
2.DPT(DiskPartitionTable)硬盘分区表(主分区表):
01BEH-01FDH。
有四个分区表项,各16字节,共64字节,后两项常不用。
其内容在截图下面的最后五行内,以80开头,以55AA结束。
※第一分区项(指向活动主分区):
01BEH-01CDH(参照上图来寻找此地址,01BEH纵坐标为1B0,横坐标为最上面一行的E,其它地址与此相同)。
800101000CFEFFFF3F0000009AE53F01
各字节含义有以下几项:
①引导标志:
第一表项第1字节,必须是80(表示为活动分区,00则表示非活动分区,那么操作系统将不能启动)。
②C盘逻辑0扇:
2、3、4字节即010100,依次为磁/扇/柱,为0柱1磁1扇,表示DBR(DOS引导记录)所在位置。
分区项将指向活动主分区(一般就是C盘)的DOS引导记录DBR。
③分区类型:
为各表项的第5字节,0C表示DBR所在分区为FAT32主分区(LBA)。
④C盘逻辑尾扇:
6、7、8字节FEFFFF,由于该分区大于8G,所以它的CHS参数已经没有意义,大硬盘中的C盘逻辑尾扇一般都是此数,下同。
⑤C盘零扇前的隐含扇区总数:
9-12字节3F000000,为63扇(一般都如此),MBR就位于隐含扇区首扇。
硬盘主分区和每一个逻辑分区前都有63个隐含扇区,一般都保存有一个分区表。
因为在OS中被隐藏,所以各分区的开始扇区应该是DBR或EBR所在扇区。
⑥C盘扇区总数(不含隐藏扇区):
13-16字节9AE53F01。
由于所用扇区数是用十六进制表示,低位在前,高位在后,扇区数应该是0x13FE59AH。
用十六进制计算器(Windows中自带计算器选程序员或科学型也可进行换算),计算后为20964762个扇区,大小约为10G。
※第二分区项(指向扩展区):
01CEH-01DDH。
0000C1FF0FFEFFFFD9E53F0127C01008…55AA
①扩展区标志:
首字节00。
②扩展区首扇:
234字节00C1FF,一般为D盘分区表所在扇区(00C1FF无意义,道理同上)。
CHS为:
0磁1扇x柱(x柱=主分区扇区总数/63×
255,x柱在此为1305柱)。
LBA为:
“C盘扇区总数+MBR所在的63个隐藏扇区”(即9-12字节数)。
③扩展分区类型标志:
第5字节0F,为Win95Extended分区(大于8GB)。
④扩展区尾扇:
678字节FEFFFF(大硬盘都是此数,无意义),为扩展分区结束的C/H/S。
(HD总磁头数-1)63扇(HD总柱数-1),处于HD尾。
⑤主分区扇区总数(含隐藏扇区):
9-12字节D9E53F01,位于扩展扇区前。
主分区扇区总数=C盘逻辑扇区数+隐含扇区数(63个),此处为20964825个扇区,比C盘扇区总数(无隐藏扇区)多63,此LBA号即D盘分区表所在。
⑥扩展扇区总数(含隐藏扇区):
13-16字节27C01008。
主分区、扩展扇区两数相加为HD扇区总数。
※其它分区项:
分区3(01DEH-01EDH)、分区4(01EEH-01FDH):
可以为隐藏分区。
隐藏分区为主分区,一键还原精灵所产生的隐藏分区,想把它变成逻辑分区,可直接操作DPT,把代表它的分区表项删除,即可顺利完成。
3.结束标志55AA,位于1FEH-1FFH。
其值为AA55,十六进制存储时低位在前,高位在后,即看上去就是55AA。
FDISK/MBR,再SYSC:
,再难缠的引导扇区病毒都OK了。
其它磁盘工具也可以完成同样的工作。
Fdisk/MBR在结构正常下重写MBR不破坏DPT,55AA错则全部重写。
为保护分区表(DPT)数据,需要先修复55AA标志,才能进行此操作。
在0柱0磁2扇(MBR的下一扇区),可以备份MBR。
当MBR出错时,把它复制、粘帖到MBR扇区,可以恢复原来的MBR。
DBR前的空白隐藏扇区都可以用来备份或存文件。
MBR先于操作系统装入内存,具有公共引导的特性。
但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它。
●DBR(DosBootRecord):
DOS引导记录,又称DOS引导区或BOOT区,位于0柱1磁1扇(C盘逻辑0扇),由Format命令产生,可用sysc:
修复。
在FAT32和NTFS中,引导扇区在以前的DBR基础上逐步演变成OBR(OSBootRecord)。
◇DBR结构(FAT16、FAT32、NTFS各部分并不相同,以下是FAT32的DBR结构):
1.跳转指令,下图所示为扇首EB5290三字节,属NTTFS分区(FAT32为EB5890)。
2.厂商标志和OS版本号,跳转指令后8字节。
3.BPB(BIOSParameterBlock,BIOS参数记录块)(53字节),记录DOS分区的磁盘信息。
位于DBR偏移0BH处,包含HD大小,FAT、FDT位置大小,可算出逻辑地址和物理地址。
4.扩展BPB(26字节)。
5.分区引导程序(420字节)。
完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载。
DBR是由硬盘的MBR装载的程序段。
DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。
DBR只有一个,但每个分区都有引导扇区(ExtendedBootRecord,EBR),但只有位于活动分区的DBR才会被MBR装入内存运行。
6.有效结束标志55AA(2字节)。
因为DBR对操作系统非常重要,NTFS格式分区,在其分区最后的扇区上,备份了DBR,如果它是正常的,我们只需将最后一个扇区的内容复制到DBR位置,如果没有其它问题,这个分区就正常了。
其它分区的引导程序(EBR)也同样在该分区的最后一个扇区备份了EBR,同样可以把此备份复制到分区引导扇区,使该分区恢复正常。
DBR大小:
FAT16为1扇,FAT32为3扇,FAT表起始位置一般为95扇区,操作系统引导记录备份在69扇区,FAT表标记是F8FFFF0FFFFF。
NTFS为1扇,主索引记录一般起始位置在本分区第6291456扇区,OS引导记录备份在分区最后一个扇区。
C盘逻辑0扇截图(0柱1磁1扇,逻辑扇区63,DBR所在)
●FAT(FileAllocationTable,文件分配表)。
是DOS文件组织结构的主要部分,反映硬盘上所有簇的使用情况。
一般有两个FAT表,内容一样,起备份作用。
FAT32的FAT1(第一文件分配表)位于0柱1面33扇区。
由于FAT表的长度不固定,FAT2的地址也并不固定。
每个FAT表的前两个字节都是:
"
F8FF"
。
当从磁盘上读取一个文件时,首先从文件目录表(FDT)中找到该文件的目录登记项。
继而从目录登记项的有关字段,查到分配给该文件的第一个簇号,根据第一个簇号,就能形成一条能够检索整个文件的“簇链”,完成文件的读取。
NTFS的文件系统:
MFT(MasterFileTable主文件表),NTFS分区的主文件表。
NTFS分区用于存放目录、索引、安全性等信息,以及小文件等,由文件记录(FileRecord)数组构成。
FileRecord的大小一般是固定的,通常情况下均为1KB,是这个卷上每一个文件的索引,为每一个文件保存着一组称为“属性”的记录,每个属性存储了如下数据:
大小、时间戳、安全属性和数据位置。
系统空间分配、读写磁盘时会频繁地访问MFT,因此MFT对NTFS的卷的性能有着至关重要的影响。
一但MFT产生碎片,磁盘碎片整理程序无法对其进行整理。
NTFS通过保留1/8的磁盘空间留作MFT专用(称为MFT区域),磁盘的此区域尽可能在MFT增大时保持其连续性,从而将磁盘碎片降至最低。
NTFS针对FAT/FAT32文件系统安全性差、容易产生碎片、难以恢复等缺点作了重大改进。
NTFS把整个分区的全部扇区都作为簇来划分,所有的分区信息(扇区分配表,引导记录等)都被组织起来以系统文件的形式存放在磁盘各处,而不是先放文件分配表,后接数据区的做法。
NTFS利用B-Tree文件管理方法来跟踪文件在磁盘上的位置,文件名是顺序存放的,因而查找速度更快,访问次数最少,这种技术比FAT的链接表技术具备更多的优越性。
其中只有$Boot(分区引导记录)文件的位置是固定存放在分区首部,其他的文件都可以随意存在于分区中的任何一个位置。
这样使得对所有数据的读写都有一个较为统一的方法,而且使得改变分区的尺寸和碎片整理变得非常容易。
NTFS是一个可恢复的文件系统。
发生系统失败事件时,NTFS使用标准的事务日志文件和检查点信息自动恢复文件系统的一致性,用户很少需要运行磁盘修复程序。
在NTFS分区上,可以为共享资源、文件夹以及文件设置访问许可权限,可以进行磁盘配额管理,可以在NTFS卷中压缩单个文件和文件夹,并支持活动目录和域。
NTFS支持4GB以上的文件(FAT32不能),支持的分区大小可以达到2TB,簇的大小都为4KB,支持稀疏文件,最大限度地避免了磁盘空间的浪费。
●DIR区(根目录区,即Directory的简写),又称为ROOT区,主要为FDT(FileDirectoryTable文件目录表)。
DOS的DIR命令就是显示该区的内容。
DIR紧接在第二FAT表之后的下一个扇区,长度为32个扇区(256个表项)。
FAT32/FAT16支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;
后32个字节为文件属性说明,包括文件名、后缀名、文件长度大小、起始地址、时间、修改日期和文件在数据区保存的第一个簇的簇号。
如不支持长文件名,则每个表项为32个字节的属性说明。
FAT16的根目录紧跟在FAT2表后,并把子目录放到数据区。
FAT32根目录区可以不固定大小,在DBR中提供根目录区的第一个簇的簇号。
FAT必须和DIR配合才能准确定位文件的位置。
DIR记录着每个文件(目录)的起始单元(最重要)、文件的属性等。
定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。
注意:
Win9x的文件删除只在目录区做了一个小标记――将目录区的文件的第一个字符改成了E5就表示将此文件删除了。
被删除文件仍旧能够找到开始簇,数据恢复就依靠这一特点。
●DATA区(硬盘的数据区)。
在DIR区之后,才是真正意义上的数据存储区(紧跟在FDT的下一个扇区,直到逻辑盘的结束地址)。
它存储着所有的数据,而且即使文件目录被破坏仍旧可能从磁盘里把信息读出。
文件删除只在FDT中将第1字符改成“E5”,DATA区将首字节改为“0E”,格式化也不能根本删去,Format命令只是重写FAT和DBR,并没有把DATA区的数据清除,除非你使用了“FormatX:
/U”全面格式化命令,强制对每一扇区写“F6”。
至于硬盘分区,也只是修改了MBR和DBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。
但即便如此,MBR,DBR,FAT,DIR之一被破坏的话,我们的数据也无法正常读取。
如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复。
数据恢复通常只能在数据文件删除之后相应存储位置没有写入新数据的情况下进行。
因为一旦新的数据写入,磁粒子极性将无可挽回的被改变从而使得旧有的数据真正意义上被清除。
但是只是单纯的对存储介质进行覆写,乃至从物理上破坏存储设备,都不能保证数据不会被恢复出来。
在一些拥有尖端设备的实验室中,既使被覆盖多次的磁盘,也可能被还原出最早存储在上面的磁性信号。
这种情况对那些需要恢复他们宝贵数据的用户来说可能是个令人激动的消息。
DOS/Windows分区知识:
硬盘可激活分区数不得大于3,扩展分区数不得大于1,当前活动分区数必须小于等于1(一般为C:
)。
一个分区的所有扇区必须连续,硬盘可以有最多4个物理上的分区,这4个物理分区可以是4个主分区或者3个主分区(包括隐藏分区)加一个扩展分区。
扩展分区在DOS/Windows管理下,可以而且必须再继续划分逻辑分区(逻辑盘如D:
E:
等)。
●扩展分区
由于MBR仅仅为DPT保留了64个字节的存储空间,每分区的参数各占16个字节,总计只可以存储4个分区的数据。
为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。
这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此类推可以找到所有的分区。
硬盘分区实例:
上图所见,序号0,1,2三个分区属于主分区,只有序号0有引导标志80,属于活动分区;
而序号1的扩展分区严格说来仅仅是位于D盘前面的隐藏扇区中的一张分区表,它只是一个指向下一个分区(D:
)的指针;
序号2是一键还原精灵建立的隐藏分区,它虽然起始于硬盘最后的59800柱,但它仍是主分区;
一块硬盘可以有四个主分区,那么这块硬盘还可以建一个主分区。
通过对起止柱面数的观察,观察到C、D、E、F盘前后相连,各分区都自成一体。
标准Windows分区软件都是按柱面分区的,所有分区的大小都是整数柱面。
有些特殊软件为了节省会按磁道或扇区计算划定分区,这样的分区方式再按柱面方式搜索,包括DiskGenius、分区表医生PTDD在内的分区恢复软件就不可能找到分区信息。
●分区表链接
◇分区表的一般结构:
有四分区表项,一般只用前两表项。
以位移1BEH开始,以55AA终止。
第一分区表项(指向分区表所在分区):
1.首字节,所指分区的分区标志。
2.2-4字节,所指分区的首扇。
3.5字节,所指分区的分区类型。
4.6-8字节,所指分区的尾扇。
5.9-12字节,所指分区的DOS首扇(逻辑0扇)与本分区表所在扇区的距离(是分区表与分区逻辑0扇的链接,大小固定为63扇,即为分区前的隐藏扇区数)。
6.13-16字节,所指分区的逻辑扇区总数(不包括隐藏扇区)。
第二分区表项(指向下一分区):
5.9-12字节,所指分区与前一主分区表间的扇区总数。
也就是所指分区表扇区(隐藏扇区之首)与主分区表或第一扩展分区表(也为主分区表)所在扇区的距离(是两分区表的链接,扩展分区表中此数是下一扩展分区表与第一扩展分区表的间隔,以此数可轻松找到下一扩展分区表)。
6.13-16字节,所指分区的扇区总数(包括隐藏扇区)。
DPT为主分区表,剩余的扩展(extend)分区表(EPT)位置可以由主分区表依次推导出来。
以位移1BEH开始的第一分区表作为链首,有表内的链接表项(第二分区表项的9-12字节)指示下一分区表的物理位置(x柱面、0磁头、1扇区),在该位置的扇区内同样位移1BEH处,保存着第二逻辑分区表,依次类推,直至指向最后一张分区表的物理位置(y柱面、0磁头、1扇区)。
因该分区表内不存在链接表项,即作为分区表链的链尾。
◇分区表的寻找:
从主分区表中开始推算:
DPT的第二表项9-12字节为主分区扇区总数(含隐藏扇区),此也是第一扩展分区表的LBA号(因为LBA是从0扇开始)。
从第一扩展