Coder
分类:
2010-08-12 19:03:13
一块硬盘最重要的两部分就是存储介质和电路板了,存储介质又叫做硬盘数据部分。硬盘数据部分又分为多个,比如MBR区、数据区,文件系统信息记录区等。
最重要的就是MBR区了,MBR(Main 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表示未使用,0x5或0x |
0x5 |
该分区的结束磁头号 |
0x6 |
低6位表示该分区的结束扇区号,高两位表示结束柱面号的高两位 |
0x7 |
该分区结束柱面号的低8为,总共10位 |
0x8 |
4字节的分区起始的相对逻辑扇区号,高位在高字节(小尾端)。 |
0xC |
该分区的扇区数,高位在高字节(小尾端)。 |
比如:
当分区小于4时,无效的分区表项值都为0。
上面的每一个分区表项的第4个字节,即文件系统类型标志,有以下已经定义的值:
磁盘分区类型标志 |
|||
00 |
空,DOS或Windows不允许使用,视为非法 |
|
Priam
Edisk |
01 |
FAT12 |
61 |
Speed
Stor |
02 |
XENIX
root |
63 |
GNU
HURD or Sys |
03 |
XENIX usr |
64 |
Novell
Netware |
06 |
FAT16
04 表示分区小于 |
65 |
Novell
Netware |
07 |
FAT16
04 表示分区小于 |
70 |
Disk
Secure Mult |
08 |
AIX |
75 |
PC/IX |
09 |
AIX
bootable |
80 |
Old
Minix |
|
OS/2
Boot Manage |
81 |
Minix/Old
Linux |
0B |
Win95
FAT32 |
82 |
Linux
swap |
|
Win95
FAT32 |
83 |
Linux |
0E |
Win95
FAT16 |
84 |
0s/2
hidden C: |
|
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 |
|
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 |
|
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 |
|
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分区表中一项设为扩展分区(系统ID为0x05或0x