Chinaunix首页 | 论坛 | 博客
  • 博客访问: 819794
  • 博文数量: 117
  • 博客积分: 2583
  • 博客等级: 少校
  • 技术积分: 1953
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-06 22:58
个人简介

Coder

文章分类
文章存档

2013年(1)

2012年(10)

2011年(12)

2010年(77)

2009年(13)

2008年(4)

分类:

2010-08-12 19:03:13

一块硬盘最重要的两部分就是存储介质和电路板了,存储介质又叫做硬盘数据部分硬盘数据部分又分为多个,比如MBR区、数据区,文件系统信息记录区等。

最重要的就是MBR区了,MBRMain Boot Record),即为主引导记录区,位于整个硬盘的0磁道0柱面1扇区。不过,在总共512bytes的主引导扇区中,MBR只占用了其中的 446个字节(偏移0--偏移1BDH),另外的64个字节(偏移1BEH--偏移1FDH)是DPT(Disk Partition Table磁盘分区表)区,最后两个字节"0x55AA"(偏移1FEH- 偏移1FFH)是分区的结束标志。这个整体构成了硬盘的主引导扇区。其结构如下图:

 

主引导记录中包含了硬盘的一系列参数和一段引导程序。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序。MBR是由分区程序(如fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而实现多系统共存。

 

分区表项的结构说明:

偏移

说明

0x0

0x80表示该分区为活动分区,该值为00H表示其余分区

0x1

该分区的起始磁头号

0x2

6位表示该分区的起始扇区号,高两位表示该分区的起始柱面号的高两位。

0x3

该分区的其实柱面号的低8位,起始柱面号一共10

0x4

文件系统类型标志,如0x00表示未使用,0x50x0F表示扩展分区,0x07表示NTFS分区,0x83表示Ext2,等等。

0x5

该分区的结束磁头号

0x6

6位表示该分区的结束扇区号,高两位表示结束柱面号的高两位

0x7

该分区结束柱面号的低8为,总共10

0x8

4字节的分区起始的相对逻辑扇区号,高位在高字节(小尾端)。

0xC

该分区的扇区数,高位在高字节(小尾端)。

比如:

当分区小于4时,无效的分区表项值都为0

 

上面的每一个分区表项的第4个字节,即文件系统类型标志,有以下已经定义的值:

磁盘分区类型标志

00

,DOSWindows不允许使用,视为非法

5C

Priam Edisk

01

FAT12

61

Speed Stor

02

XENIX  root

63

GNU HURD or Sys

03

XENIX  usr

64

Novell Netware

06

FAT16 04 表示分区小于32M

65

Novell Netware

07

FAT16 04 表示分区小于32M

70

Disk Secure Mult

08

AIX

75

PC/IX

09

AIX  bootable

80

Old Minix

0A

OS/2  Boot Manage

81

Minix/Old Linux

0B

Win95 FAT32

82

Linux swap

0C

Win95 FAT32

83

Linux

0E

Win95 FAT16

84

0s/2 hidden C:

0F

Win95 Extended(大于 8GB)

85

Linux extended

10

OPUS

86

NTFS volume set

11

Hidden FAT12

87

NTFS volume set

12

Compaq diagmost

93

Amoeba

16

HiddenFAT16

94

Amoeba BBT

14

Hidden FAT16<32MB

A0

IBM Thinkpad hidden

17

Hidden HPFS/NTFS

A5

BSD/386

18

AST Windows swap

A6

Open BSD

1B

Hidden FAT32

A7

NextSTEP

1C

Hidden FAT32 partition (using LBA-mode INT 13 extensions)

B7

BSDI fs

 

B8

BSDI swap

1E

Hidden LBA VFAT partition

BE

Solaris boot partition

24

NEC DOS

C0

DR-DOS/Novell DOS secured partition

3C

Partition Magic

C1

DRDOS/sec

40

Venix 80286

C4

DRDOS/sec

41

PPC Perp Boot

C6

DRDOS/sec

42

NTFS动态分区

C7

Syrinx

4D

QNX4.x

DB

CP/M/CTOS

4E

QNX4.x 2nd part

E1

DOS access

4F

QNX4.x 3rd part

E3

DOS r/0

50

OnTrack DM

E4

Speedstor

51

OnTrack DM6 Aux

EB

BeoS fs

52

CP/M

F1

SpeedStor

53

OnTrack DM6 Aux

F2

DOS 3.3+secondary partition

54

OnTrack DM6

F4

SpeedStor

55

EZ-Drive

FE

LAN step

56

Golden Bow

FF

BBT

 

一个硬盘可以有很多分区,但MBR分区表只有四项,怎么能突破这个限制呢?答案是扩展引导记录(EBR - Extended Boot Record),通过把MBR分区表中一项设为扩展分区(系统ID0x050x0F),其分区表项指定扩展分区的起始位置和长度,在区(EBR)和MBR相同位置(0x1BE)放置另外一个分区表,一般称为扩展分区表,EBR的结构和MBR的结构是一样的,在相同的偏移位置也为分区表。扩展分区表的第一项指定扩展分区本逻辑分区的逻辑分区信息,如果还有更多的逻辑分区,扩展分区表的第二项指定下一个EBR的位置,否则为0。最后的两个分区表项总是为0。通过这种方式,一个硬盘上的分区数目就没有限制了。通常在EBRMBR扇区之后的第63个扇区为分区的信息,或者说为文件系统的信息。

阅读(2951) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~