解读分区表的秘密
硬盘GPT分区表的知识讲解
![硬盘GPT分区表的知识讲解](https://img.taocdn.com/s3/m/bebedd3b591b6bd97f192279168884868762b8d6.png)
硬盘GPT分区表的知识讲解GPT分区表是一种使用全局唯一标识符(GUID)的分区结构,用于定义磁盘的分区方案。
GPT分区表与MBR分区表不同,其使用的是一种更先进的分区方案,因此具有更高的性能和可靠性。
GPT分区表的特点1.更大的分区支持:GPT分区表支持最多128个分区,而MBR分区表仅支持4个。
2.更好的数据备份:GPT分区表将分区表的备份存储在磁盘的末尾,从而更好地保护数据。
3.更安全的引导:GPT分区表使用UEFI(统一可扩展固件接口)引导,提供更安全和更可靠的引导选项。
4.支持更大的磁盘容量:GPT分区表支持最大容量为9.4ZB(1ZB=1024EB),而MBR分区表最大容量为2TB。
GPT分区表的结构GPT分区表的结构与MBR分区表不同。
GPT分区表将磁盘分为若干个LBA(逻辑块寻址)区域,其中每个LBA区域都有一个唯一的GUID标识符。
每个分区都由一个GUID分区类型和一个GUID唯一标识符来定义。
此外,GPT分区表还包括一个主引导记录(MBR)和一个备用引导记录(EBR),用于磁盘引导。
GPT分区表的使用使用GPT分区表需要满足以下条件:1.操作系统支持:大多数现代操作系统都支持GPT分区表。
这包括Windows7及以上版本,MacOSX,Linux等操作系统。
2.计算机硬件支持:计算机的BIOS必须支持UEFI引导,以便能够使用GPT分区表。
如果计算机的BIOS不支持UEFI引导,则只能使用MBR分区表。
GPT分区表是一种先进的磁盘分区结构,具有更好的数据备份能力和更高的性能。
虽然GPT分区表支持更大的容量,但仍需满足操作系统和计算机硬件的支持要求。
在选择使用GPT分区表时,必须确保系统能够支持GPT分区表,并且硬件设备能够支持UEFI引导。
如果您需要支持大容量硬盘或多操作系统配置,那么GPT 分区表将是一个更好的选择。
以上是硬盘GPT分区表的知识讲解,希望可以帮助到大家更深入了解。
解读硬盘分区表-xiaosilent‘sBlog-BlogJava
![解读硬盘分区表-xiaosilent‘sBlog-BlogJava](https://img.taocdn.com/s3/m/f2fa9a72b94ae45c3b3567ec102de2bd9705de5b.png)
解读硬盘分区表-xiaosilent‘sBlog-BlogJava最近接触到一个0 磁道损坏的硬盘,做数据恢复,有机会学习了一下分区表的结构。
在这里简要的做点笔记。
MBR ( Main Boot Record )位于硬盘第一个物理扇区(绝对扇区)柱面 0 ,磁头 0 ,扇区 1 (简化成( 0 , 0 , 1 ))处。
由于DOS 是由柱面 0 ,磁头 1 ,扇区 1 开始,故 MBR 不属于 DOS 扇区,DOS 不能直接访问。
MBR 中包含硬盘的主引导程序和硬盘分区表。
分区表有4 个分区记录区,这也就是我们为什么只能在硬盘里最多拥有4 个主分区的原因了。
记录区就是记录有关分区信息的一张表。
它从主引导记录( MBR )偏移地址 01BEH 处连续存放,每个分区记录区占 16 个字节。
下面用我的硬盘的分区表来详细解释一下分区表各区段的具体含义。
1be ~ 1cd ( 016 字节)第一个分区入口(参数解释见下)1ce ~ 1dd ( 016 字节)第二个分区入口(同第一个分区)1de ~ 1ed ( 016 字节)第三个分区入口(同第一个分区)1ee ~ 1fd ( 016 字节)第四个分区人口(同第一个分区)1fe ~ 1ff ( 002 字节)引导记录标志位(固定值: 55 aa )要说明的是:这里讲的“分区”,确切说是:主分区。
扩展分区也当成主分区,扩展分区内部的分区信息不在 MBR 里面。
要注意的是,在这里出现的数字均是 16 进制数。
下面就分区记录这 16 个字节再详细解释一下,以我的第一个分区为例:80 分区状态( 80H 表示为激活分区, 00H 表示为非激活分区)01 分区的开始磁头01 00 分区的开始柱面和扇区(这个地方有点玄机,等会再详细解释)07 分区的类型( 0c 表示为 FAT32 , 07 为 NTFS , 0f 代表扩展)fe 分区的结束磁头bf fc 分区的结束柱面和扇区(表示同开始磁头,等会详解)3f 00 00 00 从 MBR 到第一个分区扇区的扇区个数(分区前的扇区数)7e 86 bb 00 分区的总扇区数也就是说我的第一个分区是一个从( 0,1,1 )位置开始的可引导的NTFS 格式的分区。
解读分区表的秘密
![解读分区表的秘密](https://img.taocdn.com/s3/m/0d909bcfa1c7aa00b52acbf5.png)
分区表信息8001010007FE FF FB3F000000BD08FA0000C1FC0F FE FF FF FC08FA002C CD05第一个字节的内容是分区的引导标志,80表示是引导分区,00表示不是引导分区。
第二,三,4字节表示分区的起始磁头,扇区,柱面,本例中三个参数分别是01 01 00,这代表第一个分区从0柱面1磁头1扇区开始。
第五个字节表示分区类型,07表示NTFS分区,常用的类型有 0F(扩展分区),0B(FAT32),06(FAT16)。
第六,七,八字节分别表示分区的结束磁头,扇区,柱面。
注意,这里有些玄机,分区的起始扇区和结束扇区看起来用了一个完整字节,其实不是。
由于C/H/S中扇区编号从1到63,因此用一个字节表示有些浪费,一个字节由八个二进制数组成,扇区编号只用了低六位,高2位给柱面用了。
因此,表示柱面其实用了10个二进制数,其中高2位是从扇区参数中借来的。
结合本例看看,六,七,八参数分别是 FE FF FB,分析一下,FE表示分区的结束磁头是254,FF拆为二进制是11111111,低六位是111111,用来表示分区的结束扇区,也就是说结束扇区是63。
FF拆开后高2位11给了柱面用,也就是说分区的结束柱面不是FB,而是3FB,3FB等于十进制的1019。
这下子我们明白了,第一个分区开始在0/1/1,结束在1019/254/63。
继续分析分区表项的第九,十,十一,十二字节,这四个字节代表分区之前的扇区数,意思是从分区的起始到硬盘的第一个扇区之前有多少扇区,其实是很隐晦地告诉我们分区从哪里起始。
本例中这四个字节的内容是3F 00 00 00,首先我们要高低位互换,四个字节的内容是00 00 00 3F,转为10进制是63,这意味着第一个分区之前的扇区数是63,也意味着第一个分区从63扇区开始。
为什么?有人这么问,既然第一个分区之前有63个扇区,那第一个分区应该从64扇区开始才对呀?主要是因为LBA表示扇区是从0开始编号而不是从1开始,分区之前有63个扇区意味着分区之前的扇区是从0到62,那分区起始自然应该从63开始。
解读分区表的秘密
![解读分区表的秘密](https://img.taocdn.com/s3/m/3dd1ef7b1eb91a37f1115cae.png)
解读分区表的秘密前几天写了一篇介绍恢复误Ghost硬盘的博文,反响出乎意料,很多博友对数据恢复表现出了浓厚的兴趣,希望能对数据恢复作进一步了解。
其中大家反映较多的就是希望能看懂分区表的格式,乍一看,由16进制数组成的分区表让人望而生畏,如同天书一般。
其实,只要理解了分区表参数的含义,天书也就不难读懂了。
今天我们就来介绍一下分区表参数,帮助大家掌握分区表。
介绍分区表之前,大家要先准备一些硬盘存储的基础知识,有这么几点:一进制转换分区表中会用到二进制,16进制和10进制,大家要熟悉它们之间的转换,例如16进制的3F等于10进制的63等于二进制的111111。
好在现在有计算器可以用,心算没把握就用计算器好了,所以进制转换相对不算难。
(图1)二常用存储单位1K=1024字节=210 字节1M=1024K=220 字节1G=1024M=230 字节1个扇区=512字节介绍这些是因为分区表中表示分区大小是用扇区表示,也就是说分区表中只会说这个分区有多少个扇区,而不会说有多少G,多少M,因此我们要习惯进行存储单位转换。
例如分区表中描述分区大小是72 A1 A9 03,首先你要明白这四个字节是高低位颠倒的,高位在后,低位在前,真正的分区大小是03 A9 A1 72。
然后我们把16进制转为10进制,这样就知道了这个分区大小是61448562扇区,换算为字节就是61448562×512=31461663744。
然后除以2的30次方,就可以知道分区的大小是31461663744/ 230 =29.3 G。
三扇区定位硬盘中有数以亿计的扇区,如何才能准确定位到每一个扇区呢?一般用C/H/S和LBA两种方法。
这两种定位方法都很重要,我们来好好看看。
C/H/S指的是利用柱面/磁头/扇区这三个参数来定位扇区,有的资料说C/H/S指的是磁道,磁头和扇区,这就不准确了。
磁道是硬盘盘体上的同心圆,每个磁道上排列了63个扇区,盘体最外圈为0磁道,从外圈向内圈编号逐步加大。
硬盘分区表详解
![硬盘分区表详解](https://img.taocdn.com/s3/m/547475df3b3567ec102d8ac7.png)
硬盘分区表详解人们在使用电脑时,有时由于异常操作,有时由于病毒侵袭,会导致某个分区消失或硬盘无法启动。
究其原因,就是硬盘分区表受损。
硬盘分区表可以说是支持硬盘正常工作的骨架.操作系统正是通过它把硬盘划分为若干个分区,然后再在每个分区里面创建文件系统,写入数据文件.本文主要讲述的是分区表的位置,结构以及各个分区表是如何链接起来的.当掌握了这些知识后,即使分区表受到破坏,一样也可以根据残存的数据手工修复分区表,从而修复分区。
一.分区表的位置及识别标志分区表一般位于硬盘某柱面的0磁头1扇区.而第1个分区表(也即主分区表)总是位于(0柱面,1磁头,1扇区),剩余的分区表位置可以由主分区表依次推导出来.分区表有64个字节,占据其所在扇区的[441-509]字节.要判定是不是分区表,就看其后紧邻的两个字节(也即[510-511])是不是"55AA",若是,则为分区表.二.分区表的结构分区表由4项组成,每项16个字节.共4×16 = 64个字节.每项描述一个分区的基本信息.每个字节的含义如下:分区表项含义1、(1,2,3)字节磁头号由(1)字节8位表示,其范围为(0 -- 28 - 1),也即(0 磁头-- 254磁头)。
扇区号由(2)字节低6位表示,其范围为(0 -- 26 - 1),由于扇区号从1开始,所以其范围是(1扇区-- 63扇区)。
柱面号由(2)字节高2位+ (3)字节,共10位表示,其范围为(0 --2 10 - 1),也即(0 柱面-- 1023柱面)。
当柱面号超过1023时,这10位依然表示成1023,需要注意。
(5,6,7)字节含义同上。
2、(8, 9, 10, 11)字节如果是主分区表,则这4 个字节表示该分区起始逻辑扇区号与逻辑0扇区(0柱面,0磁头,1扇区)之差。
如果非主分区表,则这4 个字节要么表示该分区起始逻辑扇区号与扩展分区起始逻辑扇区号之差,要么为63。
分区表原理
![分区表原理](https://img.taocdn.com/s3/m/129a2e013a3567ec102de2bd960590c69fc3d87f.png)
分区表原理
分区表(DivisionTable)是数据库中最小的一种表,它保
存了数据库中所有的行的地址,它的数据量很小,但具有很强的内存和磁盘访问能力,一般用于事务处理。
当对多个行进行事务时,由于数据库中的数据是以列表形式存在的,这样查询时就需要一个表来保存这些数据,而分区表则可以很好地解决这个问题。
其优点是:
1.对每个行都有一张表来保存它。
2.当对多个行进行事务时,不需要把整个表保存到磁盘上,
而是只需把分区表中的一部分保存到磁盘上就可以了。
3.当查询某一行时,可以只从分区表中读取该行所存储的数
据就可以了,这样可以加快查询速度。
4.当一个事务执行结束后,再把分区表中的另一部分存到磁
盘上。
5.当在某一时间段内事务较多时,对多个行进行事务时就会
把分区表中所有的行都写到磁盘上。
分区表应用:
在大型数据库系统中一般都采用了分区表。
分区表是一种重要的数据结构,它用来描述数据域和数据域内的数据分布。
—— 1 —1 —。
深入理解硬盘分区表
![深入理解硬盘分区表](https://img.taocdn.com/s3/m/53287d56f524ccbff0218425.png)
深入理解硬盘分区表相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。
可是,你清楚它们分别起什么作用吗?它们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解它呢??别急,让我们一步步来搞清楚吧!==必备基础知识:==以下先介绍一下有关扇区编号的基本知识:介绍一下有关硬盘扇区编号规则的3个易混淆的术语“物理扇区编号”、“绝对扇区编号”和“逻辑扇区编号”。
我们都知道硬盘扇区的定位有两种方法:1、直接按柱面、磁头、扇区3者的组合来定位(按这种编号方式得到的扇区编号称为物理扇区编号);2、按扇区编号来定位(又分“绝对扇区编号“和“逻辑扇区编号“两种)。
这两种定位方法的换算关系如以下图:(设图中所示硬盘每道扇区数均为63)如下图,由于目前大多数硬盘采用的是一种“垂直分区结构“,故左图一磁头数为2、盘片数为1的硬盘,图中0磁头所对扇区的表示方法就有2种,即:0柱面0磁头1扇区=绝对0扇区,而1磁头所对扇区的表示方法也有2种,即:1柱面0磁头1扇区=绝对63扇区。
如果是如右图所示磁头数为4、盘片数为2的硬盘,那么则顺着垂直于盘片的箭头线方向进行如图的绝对扇区的编号。
以上,我们说了物理扇区、绝对扇区的编号方式,而逻辑扇区编号由于是操作系统采用的扇区编号方式,而操作系统只能读取分区部的数据容,故逻辑扇区是从各分区的第一个扇区开始编号,如我们下文对mbr 的说明可以知道:mbr这个扇区所在硬盘磁道是不属于分区围的,紧接着它后面的才是分区的容,因此一般来说绝对63扇区= c:分区逻辑1扇区。
以下让我们总结一下3种编号方式的不同:编号方式表示方法采用该种方式编号的对象起始编号物理扇区编号 0柱面0磁头1扇区 BIOS置中断服务程序 0柱面0磁头1扇区绝对扇区编号绝对X扇区人们为方便所采用的方法绝对0扇区逻辑扇区编号逻辑X扇区操作系统逻辑1扇区需要说明的是:本文假设所使用的硬盘每道扇区数都为63。
Mysql分区表原理及使用详解
![Mysql分区表原理及使用详解](https://img.taocdn.com/s3/m/a4c0e365ae1ffc4ffe4733687e21af45b207fe56.png)
Mysql分区表原理及使⽤详解1.什么是表分区:表分区,是指根据⼀定规则,将数据库中的⼀张表分解成多个更⼩的,容易管理的部分。
从逻辑上看,只有⼀张表,但是底层却是由多个物理分区组成。
2.表分区与分表的区别:分表:指的是通过⼀定规则,将⼀张表分解成多张不同的表。
⽐如将⽤户订单记录根据时间分成多个表,分表与分区的区别在于:分区从逻辑上来讲只有⼀张表,⽽分表则是将⼀张表分解成多张表。
3.表分区有很多好处:1)分区表的数据可以分布在不同的物理设备上,从⽽⾼效的利⽤多个硬件设备2)和单个磁盘或者⽂件系统相⽐,可以存储更多数据3)优化查询,在where语句中包含分区条件时,可以只扫描⼀个或多个分区表来提⾼查询效率;涉及sum和count语句时,也可以在多个分区上并⾏处理,最后汇总结果4)分区表更容易维护,例如:想批量删除⼤量数据可以清楚整个分区5)可以使⽤分区表来避免某些特殊的瓶颈,例如InnoDb的单个索引的互斥访问,ext3⽂件系统的竞争等4.分区表的限制因素:1)⼀个表最多只能有1024个分区2)Mysql5.1中,分区表达式必须是整数,或者返回整数的表达式,在Mysql5.5中提供了⾮整数表达式分区的⽀持3)如果分区字段中有主键或者唯⼀索引的列,那么多有主键列和唯⼀索引列都必须包含进来,即:分区字段要么不包含主键或者索引列,要么包含全部主键和索引列4)分区表中⽆法使⽤外键约束5)Mysql的分区适⽤于⼀个表的所有数据和索引,不能只对表数据分区⽽不对索引分区,也不能只对索引分区⽽不对表分区,也不能只对表的⼀部分数据分区5.如何判断当前Mysql是否⽀持分区?命令⾏输⼊:show variables like '%partition%'运⾏结果:have_partitioning | Yes (表⽰⽀持分区)6.Mysql⽀持的分区类型有哪些?1)range分区:按照数据的区间范围分区2)list分区:按照list中的值分区,与range的区别是,range分区的区间范围值是连续的3)hash分区:⼜分为常规Hash分区和线性Hash分区4)key分区:说明在Mysql5.1版本中,range,list,hash分区要求分区键必须是int类型,或者通过表达式返回INT类型,但key分区的时候,可以使⽤其他类型的列(blob,text类型除外)作为分区键。
磁盘分区表讲解
![磁盘分区表讲解](https://img.taocdn.com/s3/m/45341c2824c52cc58bd63186bceb19e8b8f6ecda.png)
磁盘分区表是用于描述磁盘分区信息的表。
它通常位于硬盘的特定位置,例如0磁头1扇区,用于标识磁盘的各个分区以及分区类型。
磁盘分区表由一系列分区表项组成,每个表项描述了一个分区的起始磁头号、扇区号、柱面号以及分区文件系统标志等信息。
这些信息帮助操作系统识别和管理磁盘上的各个分区。
在Windows操作系统中,磁盘分区表通常采用MBR(Master Boot Record)格式。
MBR分区表只支持最多四个主分区,或者三个主分区和一个扩展分区。
扩展分区可以包含多个逻辑分区。
逻辑区都位于扩展分区里面,并且逻辑分区的个数没有限制。
磁盘分区表的查找和读取涉及到操作系统和磁盘驱动程序。
在读取磁盘时,磁盘驱动程序会先读取分区表信息,然后根据分区表中的信息来读取和访问各个分区的数据。
总之,磁盘分区表是用于描述和管理磁盘分区的重要工具,它使得操作系统能够有效地管理和访问磁盘上的数据。
分区表详细讲解演示文稿
![分区表详细讲解演示文稿](https://img.taocdn.com/s3/m/705ee33d86c24028915f804d2b160b4e767f81b3.png)
SUBPARTITION q1_1999_northeast VALUES ('NY', 'VM', 'NJ'),
SUBPARTITION q1_1999_southeast VALUES ('FL', 'GA'),
PARTITION BY RANGE (txn_date) SUBPARTITION BY LIST (state)
( PARTITION q1_1999 VALUES LESS THAN(TO_DATE('1-APR-1999','DD-MON-YYYY')) (SUBPARTITION q1_1999_northwest VALUES ('OR', 'WA'),
第9页,共45页。
范围分区例1
假设有一个CUSTOMER表,表中有数据200000 行,我们将此表通过CUSTOMER_ID进行分 区,每个分区存储100000行,我们将每个 分区保存到单独的表空间中,这样数据文 件就可以跨越多个物理磁盘
第10页,共45页。
• CREATE TABLE CUSTOMER ( CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 )
硬盘分区表详解知识讲解
![硬盘分区表详解知识讲解](https://img.taocdn.com/s3/m/a6596fe8f5335a8103d22001.png)
硬盘分区表详解硬盘分区表详解硬盘主引导扇区 = 硬盘主引导记录(MBR)+ 硬盘分区表(DPT)----------------------------------------------------------------------------------------------------------------------物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)大小: 512字节其中:MBR 446字节(0000--01BD),DPT 64字节(01BE--01FD),结束标志2字节(55 AA)功能:MBR通过检查DPT分区信息引导系统跳转至DBR;读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>PHYSICAL DISK-—HARD DISK,然后, 在OBJECT菜单中选择DISK PARTITION TABLE即可读取, 并使用TOOLS菜单中的WRITE OBJECT TO 选项存入指定文件备份;写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>FLOOPY DISK, 选择备份的DPT文件, 然后使用TOOLS菜单中的WRITE OBJECT TO——>PHYSICAL SECTOR 选项写入001(clindyer 0, side 0, sector 1);详解:----------------------------------------------------------------------------------------------------------------------000H--08AH MBR启动程序(寻找开机分区)08BH--0D9H MBR启动字符串0DAH--1BCH 保留("0")1BEH--1FDH 硬盘分区表1FEH--1FFH 结束标志(55AA)活动分区主引导扇区(DBR)----------------------------------------------------------------------------------------------------------------------物理位置:1面0道1扇区(clindyer 0, side 1, sector 1)大小: FAT16 1扇区 512字节FAT32 3扇区 1536字节功能:包含机器CMOS等信息(0000--0059), 核对该信息并引导指定的系统文件, 如NTLDR等;读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>LOGICAL DISK-—DISK C,然后, 在OBJECT菜单中选择BOOT RECORD即可读取, 并使用TOOLS菜单中的WRITE OBJECT TO 选项存入指定文件备份;写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE——>FLOOPY DISK, 选择备份的DBR文件, 然后使用TOOLS菜单中的WRITE OBJECT TO——>PHYSICAL SECTOR 选项写入011(clindyer 0, side 1, sector 1);详解:----------------------------------------------------------------------------------------------------------------------000H--002H 3 BYTE的跳转指令(去启动程序, 跳到03EH)003H--03DH BIOS参数区03EH--19DH DOS启动程序19EH--1E5H 开机字符串1E6H--1FDH 文件名(IO.SYS, MSDOS.SYS)1FEH--1FFH 结束标记(55AA)硬盘分区表(DPT)----------------------------------------------------------------------------------------------------------------------偏移地址字节数含义分析01BE 1 分区类型:00表示非活动分区:80表示活动分区;其他为无效分区。
硬盘教程之分区表知识详解
![硬盘教程之分区表知识详解](https://img.taocdn.com/s3/m/53170e8d51e79b8968022670.png)
硬盘分区表知识——详解硬盘MBR--------------------------------------------------------------------------- 硬盘是现在计算机上最常用的存储器之一。
我们都知道,计算机之所以神奇,是因为它具有高速分析处理数据的能力。
而这些数据都以文件的形式存储在硬盘里。
不过,计算机可不像人那么聪明。
在读取相应的文件时,你必须要给出相应的规则。
这就是分区概念。
分区从实质上说就是对硬盘的一种格式化。
当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。
而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过以后的高级格式化,即Format命令来实现。
面、磁道和扇区硬盘分区后,将会被划分为面(Side)、磁道(Track)和扇区(Sector)。
需要注意的是,这些只是个虚拟的概念,并不是真正在硬盘上划轨道。
先从面说起,硬盘一般是由一片或几片圆形薄膜叠加而成。
我们所说,每个圆形薄膜都有两个“面”,这两个面都是用来存储数据的。
按照面的多少,依次称为0面、1面、2面……由于每个面都专有一个读写磁头,也常用0头(head)、1头……称之。
按照硬盘容量和规格的不同,硬盘面数(或头数)也不一定相同,少的只有2面,多的可达数十面。
各面上磁道号相同的磁道合起来,称为一个柱面(Cylinder)。
上面我们提到了磁道的概念。
那么究竟何为磁道呢?由于磁盘是旋转的,则连续写入的数据是排列在一个圆周上的。
我们称这样的圆周为一个磁道。
如果读写磁头沿着圆形薄膜的半径方向移动一段距离,以后写入的数据又排列在另外一个磁道上。
根据硬盘规格的不同,磁道数可以从几百到数千不等;一个磁道上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被划分成若干段,每段称为一个扇区。
数据库中的分区表介绍
![数据库中的分区表介绍](https://img.taocdn.com/s3/m/0456350ace84b9d528ea81c758f5f61fb73628c1.png)
数据库中的分区表介绍在数据库管理系统中,分区表是一种将表中的数据分割为多个逻辑或物理部分的技术。
通过将数据划分到不同的分区中,可以提高数据库的性能、管理和维护的效率。
本文将介绍数据库中的分区表,并探讨其用途、优点和实现方法。
一、什么是分区表?分区表是指将数据库表按照某种规则分成多个分区,每个分区存储特定范围的数据。
在逻辑上,分区表看起来仍然是一个完整的表,但在物理存储上,数据被分割到不同的存储单元中。
这样,当进行数据查询时,查询只需要访问特定的分区,而不需要扫描整个表,从而提高了查询效率。
二、分区表的用途1. 提高查询性能:分区表可以将数据分散存储在不同的磁盘上,使得数据查询只需要访问特定的分区,减少了数据的扫描量,提高了查询性能。
2. 简化管理和维护:当数据库表的数据量非常大时,对整个表进行备份、恢复或优化都是非常耗时的操作。
分区表将数据分割后,可以针对某个或某些分区进行相关操作,大大简化了管理和维护的工作量。
3. 实现数据存储策略:通过分区表,可以根据业务需求将数据按照不同的规则分散存储,比如按照时间、地域、客户等进行分区,使得不同类型的数据存储在不同的分区中,方便管理和检索。
三、分区表的优点1. 提高查询效率:通过将数据分割到不同的分区中,可以减少查询时的数据扫描量,从而提高查询效率。
2. 简化数据管理:分区表可以根据业务需求将数据分散存储,简化了备份、恢复和维护等数据管理工作。
3. 提高可用性:当某个分区发生故障时,不会影响到整个表的数据,只需关注该分区的修复或恢复。
4. 提高加载和删除数据的效率:通过对分区表进行操作,可以快速加载和删除特定分区的数据。
四、分区表的实现方法在数据库管理系统中,分区表的实现方法因不同的数据库而异。
下面以Oracle数据库为例进行介绍:1. 范围分区:按照范围对表中的数据进行分区,比如按照时间范围,可以将不同时间段内的数据存储到不同的分区中。
2. 列分区:按照表中某一列的值进行分区,比如按照地域进行分区,可以将不同地域的数据存储到不同的分区中。
oracle分区表详解
![oracle分区表详解](https://img.taocdn.com/s3/m/d864b8f005a1b0717fd5360cba1aa81144318fc6.png)
oracle分区表详解⼀、分区表的概述:Oracle的表分区功能通过改善可管理性、性能和可⽤性,从⽽为各式应⽤程序带来了极⼤的好处。
通常,分区可以使某些查询以及维护操作的性能⼤⼤提⾼。
此外,分区还可以极⼤简化常见的管理任务,分区是构建千兆字节数据系统或超⾼可⽤性系统的关键⼯具。
分区功能能够将表、索引或索引组织表进⼀步细分为段,这些数据库对象的段叫做分区。
每个分区有⾃⼰的名称,还可以选择⾃⼰的存储特性。
从数据库管理员的⾓度来看,⼀个分区后的对象具有多个段,这些段既可进⾏集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当⼤的灵活性。
1、分区表的优点:(1)由于将数据分散到各个分区中,减少了数据损坏的可能性;(2)可以对单独的分区进⾏备份和恢复;(3)可以将分区映射到不同的物理磁盘上,来分散IO;(4)提⾼可管理性、可⽤性和性能。
2、什么时候⽤分区表(1) 单表过⼤,超过⼀定范围,建议以g计算表,均可考虑⽤分区(2)历史数据据需要剥离的(3)查询特征⾮常明显,⽐如是按整年、整⽉或者按某个范围!3、分区表的类型1、range分区,按范围2、list分区,列举分区3、hash分区,根据hash值进⾏的散列分区4、复合分区,9i开始,Oracle就包括了2种复合分区,RANGE-HASH和RANGE-LIST。
在11g,Oracle⼀下就提供了4种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST。
⼆、创建分区的举例1、range分区create table p_table(obj_id number(10),object_id number(10),object_name varchar2(128),owner varchar2(30),object_type varchar2(19),created date)partition by range (obj_id)(partition obj_id1 values less than (20000),partition obj_id2 values less than (40000),partition obj_id3 values less than (60000),partition obj_id4 values less than (80000),partition obj_id5 values less than (99999));2、list分区create table l_table(obj_id number(10),object_id number(10),object_name varchar2(128),owner varchar2(30),segment_type varchar2(19),created date)partition by LIST(segment_type)(partition l_type1 values ('LOBINDEX') tablespace my_space1,partition l_type2 values ('VIEW') tablespace my_space2,partition l_type3 values ('TABLE') tablespace my_space2);3、hash分区create table h_table(obj_id number(10),object_id number(10),object_name varchar2(128),owner varchar2(30),object_type varchar2(19),partition by hash(object_id)( partition h_objid1,partition h_objid2,partition h_objid3,partition h_objid4);4、复合分区Oracle11g⼀下就提供了4种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST。
Oracle分区表详解
![Oracle分区表详解](https://img.taocdn.com/s3/m/97f360eb172ded630b1cb630.png)
Oracle分区全解一、Oracle分区简介ORACLE的分区是一种处理超大型表、索引等的技术。
分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。
分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加了可用性。
二、Oracle分区优缺点优点:增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
缺点:分区表相关:已经存在的表没有方法可以直接转化为分区表。
不过Oracle 提供了在线重定义表的功能。
三、Oracle分区方法范围分区:范围分区就是对数据表中的某个值的范围进行分区,根据某个值的范围,决定将该数据存储在哪个分区上。
如根据序号分区,根据业务记录的创建日期进行分区等。
Hash分区(散列分区):散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。
List分区(列表分区):当你需要明确地控制如何将行映射到分区时,就使用列表分区方法。
与范围分区和散列分区所不同,列表分区不支持多列分区。
如果要将表按列分区,那么分区键就只能由表的一个单独的列组成,然而可以用范围分区或散列分区方法进行分区的所有的列,都可以用列表分区方法进行分区。
范围-散列分区(复合分区):有时候我们需要根据范围分区后,每个分区内的数据再散列地分布在几个表空间中,这样我们就要使用复合分区。
复合分区是先使用范围分区,然后在每个分区内再使用散列分区的一种分区方法(注意:先一定要进行范围分区)范围-列表分区(复合分区):范围和列表技术的组合,首先对表进行范围分区,然后用列表技术对每个范围分区再次分区。
ntfs分区表原理
![ntfs分区表原理](https://img.taocdn.com/s3/m/8712de3ca31614791711cc7931b765ce05087a0a.png)
ntfs分区表原理
NTFS分区表是一种磁盘分区表,用于分区和管理NTFS文件系统的存储空间。
它是Windows操作系统的默认文件系统,并提供了更高的性能和安全性。
NTFS分区表使用了一些特殊的数据结构,包括主引导记录、分区表、分区引导记录和文件记录。
主引导记录是磁盘上的第一个扇区,其中包含了引导程序和分区表。
分区表则记录了磁盘上所有分区的位置和大小,以及它们所使用的文件系统。
每个分区也有自己的分区引导记录,用于启动该分区上的操作系统。
文件记录则用于记录NTFS文件系统中的文件和目录以及它们的属性和权限。
NTFS分区表支持动态分区和动态卷,可以在运行时增加、删除、移动和调整大小。
此外,NTFS分区表还提供了一些高级功能,如压缩、加密和访问控制等。
总的来说,NTFS分区表是一种强大而灵活的磁盘分区表,为Windows操作系统提供了稳定、高效和安全的存储管理服务。
- 1 -。
表分区详解
![表分区详解](https://img.taocdn.com/s3/m/e7738e4bbe1e650e52ea9978.png)
利用表分区降低I/O冲突一、分区表的原理与优势。
分区表对于提高大表的访问性能会有很大的帮助。
如上图所示,可以将一张产品信息表分按产品类别分为三个部分,分别为成品信息、零件信息和原材料信息。
然后将这三部分对应一个单独的分区,并将它们存放在不同的硬盘上。
此时当不同的用户访问不同的信息时,就可以有效的降低磁盘的I/O冲突。
即使是同一个用户,需要同时访问这三部分信息,如产品的物料清单时,由于其分别从不同的硬盘中读取数据,为此也可以明显的降低磁盘I/O冲突。
所以分区的基本原理就是通过访问一个表或者索引的较小片断,而不是访问整个表和索引,以提高数据库的性能。
当然这有一个前提条件,需要将一个表的不同分区放置在不同的磁盘上,此时磁盘整体的吞吐量就会成倍上升。
采取分区,不仅可以提高用户访问时的性能,而且还可以提高备份时的灵活性。
如上面这个例子,将产品信息根据其类别分为不同的区,并将它们保存在不同的硬盘上。
此时就可以对各自的分区进行单独的备份。
如最近因为国家环保的要求,原材料信息进行了大规模的调整。
此时就可以对原材料信息所在的分区数据进行单独的备份。
这不仅可以减少备份的时间,而且可以降低备份作业过程中出现的I/O冲突问题。
一般来说,分区表的优势有一个前提,就是需要将分区数据放置在不同的磁盘上。
如果不这么做的话,那么分区往往很难起到降低磁盘I/O的效果。
所以为了最大程度的降低一个大表的磁盘I/O(特别是经常会有并发行的访问),此时应该将表分割到多个分区上。
然后再将这些分区存放在不同的磁盘上。
二、分区表模式的选择。
那么该如何对表进行分区呢?这又是一个比较关键的问题。
根据经验,笔者认为要让分区取得更好的效果,分区表模式的选择至关重要。
也就是说,按什么内容对表进行分区管理。
有时候,先同的数据,采取不同的分区表模式,往往会有不同的效果。
在下面的内容中,笔者会结合企业实际应用的情景,对分区表模式的选择进行举例。
希望这些内容能够帮助各位读者,更好的维护分区表。
opengauss拆解分区表
![opengauss拆解分区表](https://img.taocdn.com/s3/m/9551009477a20029bd64783e0912a21615797f47.png)
一、什么是opengauss数据库中的分区表Opengauss数据库是一种开源的关系型数据库管理系统,其最新版本在数据管理方面引入了分区表的概念。
分区表是指将表中的数据按照一定的规则分割成不同的子表,这样可以提高数据管理的效率,同时也方便对大量数据进行查询和维护。
二、为什么使用opengauss数据库中的分区表在传统的数据库管理系统中,随着数据量的增加,查询和维护数据的效率往往会逐渐降低。
而使用分区表可以将数据分散存储在不同的物理位置,从而提高数据的查询和维护效率。
分区表还可以根据业务需求方便地进行数据的备份和恢复,提高数据库管理的灵活性和可靠性。
三、opengauss数据库中的分区表的使用方法1. 创建分区表在opengauss数据库中,可以使用CREATE TABLE命令创建分区表,通过指定分区规则来将表中的数据进行分割存储。
可以按照时间、地域等规则将数据分散到不同的子表中。
2. 管理分区表一旦分区表创建完成,就可以通过ALTER TABLE命令对分区表进行管理,例如添加、删除分区等操作。
也可以通过查询系统视图来查看分区表的结构和数据分布情况。
3. 数据查询与维护在使用分区表时,可以通过在查询条件中指定分区键的取值范围来进行数据查询,从而减小查询范围,提高查询效率。
也可以通过对子表进行维护操作,如数据备份、恢复等。
四、opengauss数据库中的分区表的优势和应用场景1. 提高数据库管理效率通过将数据分散存储在不同的子表中,可以降低单个表的数据量,提高数据查询和维护的效率。
2. 便于业务需求分区表可以根据不同的业务需求灵活地选择合适的分区规则,例如按照时间进行分区,方便对历史数据进行管理。
3. 适用于大数据场景在大数据场景下,使用分区表可以提高数据的查询和维护效率,满足高并发和大容量的数据管理需求。
五、结语Opengauss数据库中的分区表是一种提高数据管理效率和灵活性的有效手段,通过合理的分区规则可以更好地满足不同业务场景下的数据管理需求。
1、简述分区表的概念及其优势
![1、简述分区表的概念及其优势](https://img.taocdn.com/s3/m/1499d4af162ded630b1c59eef8c75fbfc77d94f2.png)
1、简述分区表的概念及其优势
分区表是数据库中常用的一种数据管理技术,它将一张表中的数据按照某种规则划分为不同的部分,每个部分称为一个分区。
每个分区可以独立地存储在物理磁盘上,这样就可以提高查询效率、维护和管理数据的便利性。
分区表的优势如下:
1. 提高查询效率:通过将数据划分为不同的分区,可以只查询与查询条件匹配的分区,减少数据的扫描量,提高查询效率。
例如,如果一个表按照日期进行分区,那么在查询特定日期的数据时,只需要扫描对应日期的分区,而不是整个表。
2. 维护和管理便利:当某个分区的数据量过大时,可以单独对该分区进行维护和管理,如备份、恢复等操作,而不会影响其他分区的正常运行。
这使得数据的维护和管理更加灵活和高效。
3. 降低存储空间:通过将数据划分为不同的分区,可以更好地利用存储空间,避免数据的浪费。
例如,如果一个表按照日期进行分区,那么在删除旧数据时,
只需要删除对应日期的分区,而不是整个表。
4. 提高数据可靠性:当某个分区出现故障时,可以单独对该分区进行恢复,而不会影响其他分区的正常运行。
这使得数据的可靠性更高,因为即使某个分区出现故障,其他分区的数据仍然可以正常访问和使用。
分区表是一种有效的数据管理技术,可以提高查询效率、维护和管理数据的便利性,降低存储空间和提高数据可靠性。
在实际应用中,可以根据具体的需求和场景选择合适的分区策略和算法,以实现更好的数据管理和应用效果。
硬盘分区表原理.pptx
![硬盘分区表原理.pptx](https://img.taocdn.com/s3/m/cfcbf1a02dc58bd63186bceb19e8b8f67d1cef59.png)
3.2.硬盘分区表结构
• 新购买来一块硬盘需要将它分区、格式化,然后才能安装操作 系统方可以使用。以
• Win9x/Me系列来说,我们一般要将硬盘分成主引导扇区 (MBR)、操作系统引导扇区(DBR)、
• FAT(文件分配表)、DIR(目录区)和Data(数据区)等五部 分(其中只有主引导扇区是唯一的,其它的随你的分区数的增 加而增加)。
第2页/共36页
• 4、Format主要作用如下: • A、从各个逻辑盘指定的柱面开始,对扇区进行逻辑编号(分区
内的编号); • B、创建引导记录(DBR或成为引导区),如果命令中带上“/S”
则装入msdos.sys、 • 、IO.SYS等3个文件; • C、在各个硬盘上建立文件分配表(FAT); • D、建立对应的文件目录表(FDT)及数据区(DATA)。
3E823F写成3F823E00, • 41A71502 这4个字节表示扩展DOS分区的硬盘大小。
第13页/共36页
操作系统引导扇区
• DBR(Dos Boot Record)即操作系统引导扇区,通常位于硬 盘的1磁道0柱面1扇区(这是对于DOS来说的,对于那些以多 重引导方式启动的系统则位于相应的主分区/扩展分区的第一个 扇区),是操作系统可直接访问的第一个扇区,它也包括一个 引导程序和一个被称为BPB(BIOS Parameter Block)的本分 区参数记录表。其实每个逻辑分区都有一个DBR,其参数视分 区的大小、操作系统的类别而有所不同。
第25页/共36页
3.3.硬盘分区方式
• 我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。 • 主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
72。然后我们把16进制转为10进制,这样就知道了这个分区大小是
61448562扇区,换算为字节就是61448562×512=31461663744。然后除以2的30次方,就可以知道分区的大小是
看到这里有些朋友不禁有些疑问,分区表只用了八个字节就已经表示了起始和结束位置,为什么还需要后八个字节呢?其实后八个字节是用LBA方法来表示分区的起始位置和结束位置,这可不是多此一举,主要是因为CHS对大容量硬盘已经力不从心了。从刚才的参数分析我们可以看出来,CHS表示柱面的参数最多也就是10个二进制数,10个二进制数只能表示1024个柱面,1024柱面才多大?1024×7.8M=8G。看看,C/H/S无法定位8G以后的硬盘空间,这也是当初设计分区表时目光短浅,如果能用两个字节表示柱面,那现在就完全没问题了。由于C/H/S对现在的海量硬盘根本无用武之地,因此表示分区大小的重任就只能落在LBA的肩上了。
解读分区表的秘密
前几天写了一篇介绍恢复误Ghost硬盘的博文,反响出乎意料,很多博友对数据恢复表现出了浓厚的兴趣,希望能对数据恢复作进一步了解。其中大家反映较多的就是希望能看懂分区表的格式,乍一看,由16进制数组成的分区表让人望而生畏,如同天书一般。其实,只要理解了分区表参数的含义,天书也就不难读懂了。今天我们就来介绍一下分区表参数,帮助大家掌握分区表。
FE FF
FB,分析一下,FE表示分区的结束磁头是254,FF拆为二进制是11111111,低六位是111111,用来表示分区的结束扇区,也就是说结束扇区是63。FF拆开后高2位11给了柱面用,也就是说分区的结束柱面不是FB,而是3FB,3FB等于十进制的1019。这下子我们明白了,第一个分区开始在0/1/1,结束在1019/254/63。
二 常用存储Байду номын сангаас位
1K=1024字节=210 字节
1M=1024K=220 字节
1G=1024M=230 字节
1个扇区=512字节
介绍这些是因为分区表中表示分区大小是用扇区表示,也就是说分区表中只会说这个分区有多少个扇区,而不会说有多少G,多少M,因此我们要习惯进行存储单位转换。例如分区表中描述分区大小是
柱面编号从0开始,每个柱面有255个磁头,编号从0到254,每磁道有63个扇区,编号从1到63。有朋友问:难道硬盘中真的有255个磁头吗?当然不是,硬盘中的磁头很少会超过4个,真正硬盘的每个磁道也不是都有65个扇区。每柱面255磁头每磁道63扇区这种模型只是为了研究问题方便而人为规定出来的,就象我们规定每小时有60分钟而每分钟有60秒那样。虽然柱面中的磁头数量和实际不符,但由于硬盘中有一个地址翻译器,可以将标准模型中的CHS参数转换为硬盘实际的CHS参数,因此我们用C/H/S定位扇区是没有问题的,这就象可以从阴历的日期转换为阳历的日期。
分区表的十三,十四,十五,十六字节代表分区的大小,这四个字节表示分区的扇区数。本例这四个参数为BD 08 FA
00,高低位互换一下,分区的扇区数为00 FA 08
BD,换算为10进制为16386237。知道了分区起始在63,大小为16386237,结束位置也就知道了 63+
分析了分区表的第一项,接下来来分析第二项 00 00 C1 FC 0F FE FF FF FC 08 FA 00 2C CD 05
01。第二项前八个字节中我们只要看第一个字节和第五个字节,知道第二个分区是扩展分区,不能引导,这就够了。其余6个字节用C/H/S表示分区的起始和结束就不用再看了,因为8G以后C/H/S已经失去作用了,第二个扩展分区结束的位置远远超过8G,C/H/S肯定无法表示了,主要看看后八个字节的LBA参数就可以了。扩展分区之前的扇区数是FC
Winhex转到指定扇区后会同时显示显示C/H/S和LBA参数,如下图所示,Winhex告诉我们950/254/63对应的LBA参数是15277814。从LBA转换C/H/S也可用同样方法。
好了,掌握了这些基础知识,我们就可以来分析分区表了。分区表在硬盘的第一个扇区,0柱面0磁头1扇区,这个扇区也被称为MBR,主引导记录。MBR有512个字节,分为三部分内容,第一部分是个引导程序,446字节;第二部分是分区表,64字节;第三部分是结束标志,内容是55AA,2字节。如下图所示就是MBR的内容,绿色部分为分区表。
80 01 01 00 07 FE FF FB 3F 00 00 00 BD 08 FA 00,00 00 C1 FC 0F FE FF FF FC
08 FA 00 2C CD 05 01。这意味着MBR的分区表中只定义了两个分区,我们一个一个来分析,先分析第一个分区表项,80 01 01 00
08 FA 00,高低位互换后是00 FA 08
FC,也就是扩展分区之前的扇区数是16386300,扩展分区的起始是16386300扇区。扩展分区的大小是2C CD 05
01,高低位互换后再转为10进制是17157420扇区,因此可算出分区的结束是在16386300+17157420-1=33543719扇区。扩展分区的起点和终点都知道了,通过Winhex查询C/H/S参数,可知分区的起始是1020/0/1,结束在2087/254/63。
介绍分区表之前,大家要先准备一些硬盘存储的基础知识,有这么几点:
一 进制转换
分区表中会用到二进制,16进制和10进制,大家要熟悉它们之间的转换,例如16进制的3F等于10进制的63等于二进制的111111。好在现在有计算器可以用,心算没把握就用计算器好了,所以进制转换相对不算难。
07 FE FF FB 3F 00 00 00 BD 08 FA 00,我们先解释一下这16个字节的含义。
第一个字节的内容是分区的引导标志,80表示是引导分区,00表示不是引导分区。第二,三,4字节表示分区的起始磁头,扇区,柱面,本例中三个参数分别是01
01 00,这代表第一个分区从0柱面1磁头1扇区开始。第五个字节表示分区类型,07表示NTFS分区,常用的类型有
一个柱面包含了若干磁道,如何来准确表示柱面中的具体磁道呢?这时就可以使用磁头参数了。每个磁头负责读取柱面中的处于不同高度的磁道,我们只要给出具体的磁头数值,就知道对应柱面中的哪个磁道了。这样我们根据柱面和磁头两个参数就可以准确地定位到盘体中的某个磁道,一个磁道上有63个扇区,我们只要再知道扇区的编号,就可以完成在三维空间中定位扇区的任务了,C/H/S三个参数就是这样定位扇区的。
31461663744/ 230 =29.3 G。
三 扇区定位
硬盘中有数以亿计的扇区,如何才能准确定位到每一个扇区呢?一般用C/H/S和LBA两种方法。这两种定位方法都很重要,我们来好好看看。
C/H/S指的是利用柱面/磁头/扇区这三个参数来定位扇区,有的资料说C/H/S指的是磁道,磁头和扇区,这就不准确了。磁道是硬盘盘体上的同心圆,每个磁道上排列了63个扇区,盘体最外圈为0磁道,从外圈向内圈编号逐步加大。由于一块硬盘有多块盘体,因此硬盘可以看作是一个圆柱体。这时就看出用磁道定位不妥的地方了,磁道显然是只适合在二维空间定位,不适合在三维空间中表示准确的坐标。柱面就没有这个问题了,柱面是所有盘体上磁道的集合,例如0柱面指的是所有盘体上的0磁道所组成的一个圆柱体。这下您肯定明白了,原来磁道是二维的圆,柱面是三维的圆柱。
柱面是研究分区非常重要的一个参数,分区以柱面为粒度。这话怎么理解?操作系统分区时要考虑柱面因素,分区总是结束在柱面的最后一个扇区,也就是说分区总是结束在某个柱面的254磁头63扇区。这就解释了为什么你要求的分区大小和实际分区大小总是有些小小的误差,例如你要分一个区是200M,操作系统在分区时考虑的是这个分区到到哪个柱面结束离你的要求误差最小。这种以柱面为粒度的分区方式肯定会有误差,误差不会超过半个柱面,一个柱面的大小是
继续分析分区表项的第九,十,十一,十二字节,这四个字节代表分区之前的扇区数,意思是从分区的起始到硬盘的第一个扇区之前有多少扇区,其实是很隐晦地告诉我们分区从哪里起始。本例中这四个字节的内容是3F
00 00 00,首先我们要高低位互换,四个字节的内容是00 00 00
3F,转为10进制是63,这意味着第一个分区之前的扇区数是63,也意味着第一个分区从63扇区开始。为什么?有人这么问,既然第一个分区之前有63个扇区,那第一个分区应该从64扇区开始才对呀?主要是因为LBA表示扇区是从0开始编号而不是从1开始,分区之前有63个扇区意味着分区之前的扇区是从0到62,那分区起始自然应该从63开始。
分区表有64个字节,可以表示4项分区,每项分区为16个字节。我们只要把16个字节的内容搞清楚了,分区表就不再神秘了。上图所使用的计算机硬盘分了四个区,如下图所示,是大家常用的分区方法,一个主分区,一个扩展分区,扩展分区内分了三个逻辑分区。
这四个分区在分区表中如何表现呢?我们从图中可以看出分区表中只有两项内容,分别是
16386237-1=16386299。用winhex转到16386299看看,如下图所示,16386299正是1019柱面254磁头63扇区。
对分区表的第一个项内容总结一下,这16个参数告诉我们,第一个分区从0/1/1开始,到1019/254/63结束,可以引导系统,分区类型为NTFS,分区起始的扇区数是63,分区大小是16386237扇区。以前有同学提过问题,分区为什么不从第二个扇区开始?主要是因为MBR太重要,操作系统不希望对此扇区进行太多访问,因此干脆把MBR所在的整个磁道都划到分区之外了,这就是为什么第一个分区从0柱面1磁头1扇区开始。
0F(扩展分区),0B(FAT32),06(FAT16)。第六,七,八字节分别表示分区的结束磁头,扇区,柱面。注意,这里有些玄机,分区的起始扇区和结束扇区看起来用了一个完整字节,其实不是。由于C/H/S中扇区编号从1到63,因此用一个字节表示有些浪费,一个字节由八个二进制数组成,扇区编号只用了低六位,高2位给柱面用了。因此,表示柱面其实用了10个二进制数,其中高2位是从扇区参数中借来的。结合本例看看,六,七,八参数分别是