硬盘MBR和GPT分区详解.docx

上传人:b****3 文档编号:12911811 上传时间:2023-04-22 格式:DOCX 页数:43 大小:236.85KB
下载 相关 举报
硬盘MBR和GPT分区详解.docx_第1页
第1页 / 共43页
硬盘MBR和GPT分区详解.docx_第2页
第2页 / 共43页
硬盘MBR和GPT分区详解.docx_第3页
第3页 / 共43页
硬盘MBR和GPT分区详解.docx_第4页
第4页 / 共43页
硬盘MBR和GPT分区详解.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

硬盘MBR和GPT分区详解.docx

《硬盘MBR和GPT分区详解.docx》由会员分享,可在线阅读,更多相关《硬盘MBR和GPT分区详解.docx(43页珍藏版)》请在冰豆网上搜索。

硬盘MBR和GPT分区详解.docx

硬盘MBR和GPT分区详解

硬盘MBR和GPT分区详解

马达

OillMrKr亠

电子燼路

目前磁盘分区有两种形式:

GPT分区和MB盼区。

MBF相比而言比较常见,大多数磁盘都是采用这种分区形式。

MBF分区和GPT分区的区别在于:

MBR最多只支持4个主分区,GPT能够支持128个主分区。

然而GPT分区形式在重装系统需要主板的EFI支持,所以导致出现上面的这种情况。

因此解决的办法就是将分区形式转换为MBR分区形式。

但是在转换之前必须要做好数据备份,将磁盘里重要的东西全部拷出来,因为只有整个磁盘全部为空时,才能够进行转换。

传统的分区方案(称为MBR分区方案)是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64个字节中,每个分区项占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区

数目(4个字节)等内容。

由于MBRS区只有64个字节用于分区表,所以只能记录4个分区的信息。

这就是硬盘主分区数目不能超过4个的原因。

后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。

但每个分区项仍用16个字节存储。

GPT1盘是指使用GUID分区表的磁盘,是源自EFI标准的一种较新的磁盘分区表结构的标准。

与普遍使用的主引导记录(MBR分区方案相比,GPT提供了更加灵活的磁盘分区机制。

MBR的全称是MasterBootRecord(主引导记录),MBF早在1983年

IBMPCDOS2.0中就已经提出。

之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。

这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。

主引导扇区是硬盘的第一扇区。

它由三个部分组成,主引导记录MBR硬盘分区表

DPT和硬盘有效标志。

在总共512字节的主引导扇区里MBF占446个字节,偏移地址

0000H--0088H),它负责从活动分区中装载,并运行系统引导程序;第二部分是

table

TjVPartitionW巧

Partibonswichinanaxtend

III

-Partition1_rlition2—

III

Ptirlibon3(Exi«ri(Jed}

Partitiontable区(DPT分区表),占64个字节;第三部分是Magicnumber,占2个字节。

MBF扇区代码

Offset

0

1

2

3

4

5

&

7

8

9

A

B

C

D

E

F

诂问▼1

0000000000

33

co

8E

DO

BC

00

7C

FB

50

07

50

IF

FC

BE

IB

7C

誠屑.鷗F.・l

0000000010

BF

IB

oe

50

57

B9

55

01

F3

A4

CB

BD

BE

07

Bl

04

?

.PW瑰.螭私沔

0000000020

38

6E

00

7C

09

75

13

83

C5

10

E2

F4

CD

18

8B

yn

an.Lu.®.柞?

0000000030

S3

C6

10

49

74

19

33

2C

74

A0

B5

07

E4

07

SB

0000000040

ro

AC

sc

00

FC

BB

07

00

0E

CD

10

EE

F2

88

0000000050

4E

10

E8

46

00

?

3

2A

FE

46

10

SO

7E

04

0B

74

0B

N.鐵-討悻..t.

0000000060

so

7E

04

oc

%

05

A0

E6

07

75

D2

30

02

06

S3

£…七・彳由.u禰F…

0000000070

46

08

06

83

5t

0A

00

ES

21

00

73

05

AO

BG

07

EB

F…悟乩屜.e

0000000080

BC

SI

3E

FE

7D

55

M

74

0B

80

7E

10

00

C8

A0

前励瞬二滇

0000000090

&7

07

EB

A9

8B

FC

IE

57

8B

F5

CB

BF

0E

00

8A

w螟赴••契v

OOOOOOOOAO

00

08

CD

13

72

23

8A

Cl

24

3F

98

3A

DE

SA

FC

・?

?

T谶J磁适孔

00000000B0

43

F7

E3

8B

DI

86

D6

Bl

06

D2

EE

42

F7

E2

39

56

c縻無嗨月翌e庵gw

OOOOOOOOCO

77

23

72

05

39

46

08

73

1C

B8

01

02

BB

00

K

.讷“9F.s.?

.?

1.|

0000000000

SB

4E

02

8B

56

00

CD

13

73

51

4F

74

4E

32

E4

8A

嫌-竭・¥sQ0tN2鉢&

OOOOOOOOEO

56

OO

CD

13

EB

E4

8A

56

00

60

BB

AA

55

B4

41

CD

电瀬獎「华咂I

OOOOOOOOFO

13

72

36

81

FB

55

AA

75

30

Cl

01

¥4

2B

61

60

-工血1旗0隽.t+a'

0000000100

00

GA

00

RP

7G

0A

FF

75

03

GA

00

62

00

7C

6A

j-j-v.v.j.ll.

0000000110

01

6A

10

B1

42

SB

CD

13

61

61

73

0E

4F

74

OB

.j.磐ffiJ^aas.Ot..

0000000120

32

E4

SA

56

00

CD

13

EB

D6

61

F9

C3

49

GE

76

ei

2^$V_。

胫白Invaa

0000000130

&C

69

64

2Q

70

61

74

69

69

6F

6E

20

74

61

lidpartitionta

0000000140

&2

6C

65

00

45

?

2

72

6F

72

20

6C

6F

61

64

69

6E

ble.Error1oadin

0000000150

20

GF

70

65

72

61

74

69

6E

67

20

73

73

74

呂operatingsyst

0000000160

6D

00

4D

69

73

73

6E

67

20

6F

70

72

61

em_Missingopera

0000000170

74

69

GE

67

20

73

79

73

西

65

6D

00

00

00

00

00

■tingsystsir■…・+

0000000180

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

ooooooono

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

4•熾孔豊找码….

00000001A0

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

OOOOOOOIBO

00

00

00

00

00

2C

Q4

63

33

Bl

33

Bl

00

00

80

01

Bc3?

?

.€,

OOOOOOOICO

0000000100

01

Cl

00

7C

07

OF

FE

FE

PF丽

7B

FF

3F

?

C

00

AS

00

DA

00

00

3D

45

A8

8F

DAIE

00

oc

00

00

00

00

00000001E0

00

00

00

00

00

0D

00

00

00

00

00

00

00

00

00

00

二审H為数it朮二

OOOOOOOIFO

00

00

00

00

00

00

00

°%2°

00

00

00

00

00

55

AA

在DPT共64个字节中,以16个字节为分区表项单位描述一个分区的属性。

也就是说,第一个分区表项描述一个分区的属性,一般为基本分区。

第二个分区表项描述除基本分区外的其余空间,一般

而言,就是我们所说的扩展分区。

这部分的大体说明见表1。

|表1图2分匡表第一宇段-_]

宇节怪移

宇段廉度

字段茗却定史

OtKO1BE

BYTE

0s80

弓i#^rr(Boot

Indicator)扌旨明该井IS是否是活动盛

teulBF

8YTE

1

开怕磁头(Sta.rtingHead.)

0x01CD

6ft

OkUI

开(StartingSector)只用了旷血后面的两傥(第6位和第T位)被开贻柱而宇段所傥ffl

OtzOlCl

10ft

0x00

开始柱面(StartingCylinder)除了开始扇医宇段的最后两位外,还使用了1垃耒组成佼柱面值*开贻柱面是一牛1Mt數’量大值^)1023

Ote01C2

BYTE

OkOT

系统ID(SystemID)定义了分区的类型,详细定义,请参fit图Q

0x01C3

BYTE

OkFE

(EndingHead)

otsdicq

OkFF

结東扇区.[EruliTigSector)只

使用了旷5也堤后两住K第乩T位)被结東桂面宇段斯僮用

0x0ICE

1O&

OxTB

结東柱面(EndingCylinder)除了绪束扇区宇段最后的两位外,还使用了1位,以组成该柱面值口结束柱面是一吓1讯立的数,最拘1为1瞪3

OsOlCG

DVOED

Ox00DO003F

相对(RelativeSectors)从该蛊盘的开胎到该分区的开始的位務量,球扁区来计算

OxCl匚A

DWORD

OxOQDAAEJD

总扇反数(TotalSectors)该井区中的扇匡总数

DPT代码分析

注:

上表中的超过1字节的数据都以实际数据显示,就是按高位到地位的方式显示。

存储时是按低位到高位存储的。

两者表现不同,请仔细看清楚。

以后出现的表,图均同。

也可以在winhex中看到这些参数的意义:

惡laslLex-

BootEecotA^基iEtlOS越呈-0

Offsel

标题

数值

0鴨椁

Masterbootstraploadercvde|33CO8EDOBC00兀FB

Partition

TableEntry#1

1BE

SO=activepartition逢闻騎压ti姦

60叭斥谯E艇*非

1BF

Sturtte*d脅耐曼

1

ICO

StartsectorW

1

ICO

Startcylinder

0

1C2

□peritingsystemindicatorQim

07

1C3

End魚屛曲髯(ft坐

254

1C<

Endsector姑隹幕E

63

1C4

Endcylindsr會桂祈

691

1C6

SectorsprecediiKgparti.tion1

IE

Lengthofidem1in,sectoir

H329917水料氐的常总輕粘

Partxtion

TableEntry#2

1CTE

80=activepartition

00

1CF

Starthmi

0

100

Startsector

1

IDO

Startcylinder

692

102

Operatingsyslemiindicator(h町t

OF

103

Endhe^d

£54

1D4

Endsector

63

1D4

Endcylinder

1023

IM

Sectorsprecedingpartition2

143299®

IDA

Lengthofpirtition2iniscltor

220106565

Partition

TablieEntry#3

imOM

80sactivepartition

00

IDTtH

Starthead

0

iso2M

Startsector

0

1E02M

Sturtcylinder

0

1E2"M

Operatingsystemindicator(h色疋

00

1E3

Endhe&d

0

1E4fctt

Endi«ctor

0

1E46M

Endcylinder

u

1E6

SectorsprecediiKgpartition3

0

ieaCH

Lengthofpurtit.ioTi3insector

0

Fartitioxi

TableEntry#4

1EE

60=activep«rtilien

00

1EF

StartLea.d

0

1F0

Startsgetor

0

1F0

Startcylinder

0

1F2

OperatingsystemindicaterQisjc

00

1F3

Endhe=&d

0

1F4

Endsector

0

1F4

Endcylinder

D

1F6

Sectorsprecedirtgpartition4

0

说明:

每个分区表项占用16个字节,假定偏移地址从0开始。

如图3的分区表项3。

区表项4同分区表项3。

1、0H偏移为活动分区是否标志,只能选00H和80H。

80H为活动,00H为非活动。

其余值对microsoft而言为非法值。

2、重新说明一下(这个非常重要):

大于1个字节的数被以低字节在前的存储格式格式(littleendianformat)或称反字节顺序保存下来。

低字节在前的格式是一种保存数的方法,这样,最低位

的字节最先出现在十六进制数符号中。

例如,相对扇区数字段的值0x3F000000的低字节在前表示

为0X0000003F。

这个低字节在前的格式数的十进制数为63。

3、系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。

有时候我们分区是输入分区的大小为7000M,分出来却是6997M,就是这个原因。

偏移2H和偏移

6H的扇区和柱面参数中,扇区占6位(bit),柱面占10位(bit),以偏移6H为例,其低6位用作扇区数的二进制表示。

其高两位做柱面数10位中的高两位,偏移7H组成的8位做柱面数10位中的

低8位。

由此可知,实际上用这种方式表示的分区容量是有限的,柱面和磁头从0开始编号,扇区从

1开始编号,所以最多只能表示1024个柱面X63个扇区X256个磁头X512byte=8455716864byte。

即通常的8.4GB(实际上应该是7.8GB左右)限制。

实际上磁头数通常只用到255个(由汇编语言的

寻址寄存器决定),即使把这3个字节按线性寻址,依然力不从心。

在后来的操作系统中,超过8.4GB的分区其实已经不通过C/H/S的方式寻址了。

而是通过偏移CH-偏移FH共4个字节32位线性扇区

地址来表示分区所占用的扇区总数。

可知通过4个字节可以表示2A32个扇区,即2TB=2048GB目

前对于大多数计算机而言,这已经是个天文数字了。

在未超过8.4GB的分区上,C/H/S的表示方法

和线性扇区的表示方法所表示的分区大小是一致的。

也就是说,两种表示方法是协调的。

即使不协调,也以线性寻址为准。

(可能在某些系统中会提示出错)。

超过8.4GB的分区结束C/H/S一般填充

为FEHFFHFFH即C/H/S所能表示的最大值。

有时候也会用柱面对1024的模来填充。

不过这几个

字节是什么其实都无关紧要了。

虽然现在的系统均采用线性寻址的方式来处理分区的大小。

但不可跨柱面的原则依然没变。

分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。

(保留扇区中

的第一个扇区就是存放分区表的MBR或虚拟MBR勺扇区,分区的扇区总数在线性表示方式上是不计

入保留扇区的。

如果是第一个分区,保留扇区是本分区前的所有扇区。

附:

分区表类型标志如图4

00空.mocrosofl不允许使川护

63GWHURDorSys

01FAT32

64Nov^l1Netware

02XENIXroot

65NovellNetware

()3XENIXusr

70DiskSecureMu]t

01FAT16<32M

75PC/1X

05Extended

80OldMinix

06FAT16

81Minix/OldLinux

07HPFS/NTFS

82Linuxswap

08All

83Linux

09AIXbootable

84OS/2hiddenC:

0AOS/2BoelMmuge

85Linux«Ktendtid

0BV1H9SFAT32

8CNIT'Svojuroesei

0CWin95FAT32

87NTFSvclumtiset

0EWin95FAT16

93AnfJtba

OFWin95Extended08GB)

94Anu^baBBT

I0OPUS

A(lIBMThinkpadhidden

11HiddenFAT12

A5BSD/386

12Compaqdifignost

Afi0p«nBSD

16HiddenFAT16

ATNextSTEP

14HiddenFAT16<32GB

B7BSDIfs

17HiddenHPFS/NTFS

B8BSD!

18ASTWindowsswap

BESolarisbool

IBHiddenFAT32

partition

1CHiddenFAT32partition

COM-D0S/NovellDOS

(usingLBA-mody

sHcuredparLilion

INT13extensions)

ClDHIXS/sec

IEHiddenLBAVFATpartilien

C4DRDOS/sec

24NECDOS

C6DKIXK/sec

3CPartitionMagic

C7Syrinx

40VenixH0286

DBCP/N/CTOS

41PPCPrePBoot

ElDOSaccess

42SFS

E3DOSR/0

4DQNX4.x

E4Speedstor

4EQNX4.x2ndpart

EBBeOSfs

4FQNX4.x3rdpart

FlSpe^dStor

50OntrackDM

F2DOS3*3*secondary

51OntrackDM6Aux

partiLiun

52CPZM

F4SpetdSror

53oNtRACKDM6Aux

FELANstep

54OnTrackDM6

FFBBT

分区畑标志:

55EZ-Drive

56GoldenBev

5CPriamEdLsk

61SpeedStcr

3.2扩展分区

扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录(ExtendedBootRecord,

EBR),也有人称之为虚拟mbr或扩展mbr,意思是一样的。

扩展引导记录包括一个扩展分区表和该扇区的标签。

扩展引导记录将记录只包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信

息。

一个逻辑驱动器中的引导扇区一般位于相对扇区32或63。

但是,如果磁盘上没有扩展分区,

那么就不会有扩展引导记录和逻辑驱动器。

第一个逻辑驱动器的扩展分区表中的第一项指向它自身

的引导扇区。

第二项指向下一个逻辑驱动器的EBR如果不存在进一步的逻辑驱动器,第二项就不

会使用,而且被记录成一系列零。

如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区。

第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动

器的EBR扩展分区表的第三项和第四项永远都不会被使用。

逻辑砸动器-逻辑駆隣畫

I主引勰录1

r第1券区表顶

1第2分区表项

r第$分区却

1第斗分区表頂

1引导島区

引耳喘区

1.扩

0x$5AA

L引9扇医

1

I.(H55AA

|弓焊扃匡

|基本分区2

!

!

基本分区3

!

!

茏■益分区1

i引录

i引录i

通过一幅4分区的磁盘结构图可以看到磁盘的大致组织形式。

如图5

图$—亍4付区的貳本破盘

关于扩展分区,如图6所示,扩展分区中逻辑驱动器的扩展引导记录是一个连接表。

该图显

示了一个扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑驱动器之间在扩

展分区表中的差异。

分区盍希接阁于

除了扩展分区上最后一个逻辑驱动器外,表2中所描述的扩展分区表的格式在每个逻辑驱动器

中都是重复的:

第一个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下一个逻辑驱动器的

EBR最后一个逻辑驱动器的扩展分区表只会列出它本身的分区项。

最后一个扩展分区表的第二个项

到第四个项被使用。

却扩展分区表顶的內容

扩展分医表顶

1毎盧表项的内容

第一吓项

包括数据的开贻地址在內的与扩展分区中当前逻辑驱动議有关的信息

第二吓烦

有关旷屣仆氐中的下一吓逻塾瞞器的僧息,包括包會下一个逻辑驱动器的EER的扇区的她址。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1