硬盘主引导扇区(MBR、DPT、DBR、BPB)详解
- 格式:doc
- 大小:55.50 KB
- 文档页数:12
硬盘主引导记录(MBR)及其结构详解硬盘的0柱面、0磁头、1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR)。
该记录占用512个字节,它用语硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区。
1.MBR的读取硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它。
但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取。
用INT13H的读磁盘扇区功能的调用参数如下:入口参数:AH=2 (指定功能号)AL=要读取的扇区数DL=磁盘号(0、1-软盘;80、81-硬盘)DH=磁头号CL高2位+CH=柱面号CL低6位=扇区号CS:BX=存放读取数据的内存缓冲地址出口参数:CS:BX=读取数据存放地址错误信息:如果出错CF=1 AH=错误代码用DEBUG读取位于硬盘0柱面、0磁头、1扇区的操作如下:A>DEBUG-A 100XXXX:XXXX MOV AX,0201 (用功能号2读1个扇区)XXXX:XXXX MOV BX,1000 (把读出的数据放入缓冲区的地址为CS:1000)XXXX:XXXX MOV CX,0001 (读0柱面,1扇区)XXXX:XXXX MOV DX,0080 (指定第一物理盘的0磁头)XXXX:XXXX INT 13XXXX:XXXX INT 3XXXX:XXXX (按回车键)-G=100 (执行以上程序段)-D 1000 11FF (显示512字节的MBR 内容)2.MBR 的组成一个扇区的硬盘主引导记录MBR 由如图6-15所示的4个部分组成。
·主引导程序(偏移地址0000H--0088H ),它负责从活动分区中装载,并运行系统引导程序。
·出错信息数据区,偏移地址0089H--00E1H 为出错信息,00E2H--01BDH 全为0字节。
硬盘主引导扇区、分区表和分区引导扇区(MBR、DPT、DBR、BPB)详解!硬盘的主引导扇区,分区表,分区引导扇区(MBR、DPT、DBR、BPB)是电脑BIOS自检完成后,操作系统开始引导系统前整个电脑运作过程中需要检查的重要参数,硬盘的主引导扇区,分区表,分区引导扇区(MBR、DPT、DBR、BPB)参数错误可能导致系统无法启动或存储的数据丢失,这片文章我们介绍一下硬盘的主引导扇区,分区表,分区引导扇区(MBR、DPT、DBR、BPB)的详细信息。
硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。
MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。
但安装某些多重引导功能的软件或LINUX的LILO 时有可能改写它;它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统(下图)。
MBR由三部分构成:1.主引导程序代码,占446字节2.硬盘分区表DPT,占64字节3.主引导扇区结束标志AA55H一、硬盘的主引导程序代码是从偏移0000H开始到偏移01BDH结束的446字节;主引导程序代码包括一小段执行代码。
启动PC 机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H;然后读系统磁盘0柱面、0磁头、1扇区的主引导扇区MBR的内容到内存指定单元0:7C00 首地址开始的区域,并执行MBR程序段。
主引导代码实现下列功能:1.扫描分区表查找活动分区;2.寻找活动分区的起始扇区;3.将活动分区的引导扇区读到内存;4.执行引导扇区的运行代码。
如果主引导代码未完成这些功能,系统显示下列错误信息:Invalid partition tableError loading operating systemMissing operating system二、硬盘分区表DPT是从偏移01BEH开始到偏移01FDH结束的64字节(下图);硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占16字节。
主引导扇区的名词解释计算机技术在现代社会中的重要性无可否认,而主引导扇区作为计算机操作系统的重要组成部分,发挥着至关重要的作用。
本文将对主引导扇区进行详细解释与探讨,揭示其在计算机系统中的功能和意义。
一、主引导扇区的定义与作用主引导扇区(Master Boot Record, MBR)是一块位于计算机硬盘或其他存储介质最前面的特殊扇区,通常占用硬盘的第一个扇区。
该扇区内包含着启动计算机操作系统所需的必要信息,如引导程序和分区表等。
主引导扇区起到了连接硬盘和操作系统的桥梁作用,可视为计算机引导的起点。
二、主引导扇区的组成结构主引导扇区由多个部分组成,每个部分负责不同的功能,共同构成了一个完整的引导扇区。
1. 引导程序(Bootloader):引导程序位于主引导扇区的开头位置,通常由机器语言编写。
引导程序的主要功能是引导计算机操作系统的加载,它会通过检索硬盘或其他存储介质上的操作系统文件,并将其加载到内存中运行。
2. 主分区表(Master Partition Table):主引导扇区还包含了一个主分区表,用于记录硬盘上的分区信息。
分区是将硬盘划分为不同的逻辑驱动器,方便管理和使用。
主分区表中记录了硬盘上的主分区的位置、大小等信息,它用于引导程序确定操作系统所在的分区。
3. 特征字节(Signature):主引导扇区的末尾通常会有一个特征字节,用于确认该扇区是有效的主引导扇区。
通常情况下,特征字节的值为0x55AA,表示主引导扇区的有效性。
如果这个特征字节的值不正确,计算机将无法正确引导。
三、主引导扇区的启动过程当计算机加电启动时,主引导扇区是第一个被加载到内存中运行的代码。
它通过引导程序的执行,执行以下几个步骤:1. BIOS的自检(POST):计算机加电启动时,BIOS(Basic Input/Output System)将会自检硬件设备并初始化,以确保计算机硬件正常工作。
2. 主引导扇区的加载:BIOS将会搜索硬盘或其他存储介质上的主引导扇区,并将其加载到内存中的特定地址。
硬盘的数据结构关于一些朋友来讲老是很神密!什么缘故咱们删除的文件用软件能找到?什么缘故咱们格式化了的硬盘数据还能找回来?要回答这一切,你就得对硬盘的数据结构有个清醒的熟悉。
硬盘上的数据由五大部份组成,它们别离是:MBR区、DBR区,FAT区,DIR区和DATA区。
1.MBR(Main Boot Record)区,即主引导记录区,位于整个硬盘的0磁道0柱面1扇区.2.DBR(Dos Boot Record)区,操作系统引导记录区。
位于硬盘的0磁道1柱面1扇区,是操作系统能够直接访问的第一个扇区.3.FAT(File Allocation Table文件分派表)区;4.DIR(Directory)根目录区,记录着根目录下每一个文件(目录)的起始单元,文件的属性等;5.DATA区是真正意义上的数据存储的地址,位于DIR区以后,占据硬盘上的大部份数据空间。
了解了硬盘数据的大体结构,今天咱们把重点放在mbr所在的扇区:主引导扇区。
主引导扇区包括:mbr,dpt和终止标志。
位于硬盘的0磁道0柱面1扇区,用diskman能够读出其中的内容,下面是一次操作的结果:表一:0 1 2 3 4 5 6 7 8 9 A B C D E F00000000 EB48 90D0 BC00 7CFB 5007 501F FCBE 1B7C00000010 BF1B 0650 57B9 E501 F3A4 CBBE BE07 B10400000020 382C 7C09 7515 83C6 10E2 F5CD 188B 148B00000030 EE83 C610 4974 1638 2C74 F6BE 1007 030200000040 8000 0080 68B6 7600 0008 FAEA 507C 000000000050 31C0 8ED8 8ED0 BC00 20FB A040 7C3C FF7400000060 0288 C252 BE81 7DE8 3F01 F6C2 8074 5FB4 00000070 41BB AA55 CD13 7256 81FB 55AA 7550 A041 00000080 7C84 C075 0583 E101 7444 B448 BE00 7FC7 00000090 0442 00CD 1372 3766 8B4C 10BE 057C C644 000000A0 FF01 668B 1E44 7CC7 0410 00C7 4402 0100 000000B0 6689 5C08 C744 0600 7066 31C0 8944 0466 000000C0 8944 0CB4 42CD 1372 05BB 0070 EB7D B408 000000D0 CD13 730A F6C2 800F 84E8 00E9 8D00 BE05 000000E0 7CC6 44FF 0066 31C0 88F0 4066 8944 0431 000000F0 D288 CAC1 E202 88E8 88F4 4089 4408 31C0 00000100 88D0 C0E8 0266 8904 66A1 447C 6631 D266 00000110 F734 8854 0A66 31D2 66F7 7404 8854 0B89 00000120 440C 3B44 087D 3C8A 540D C0E2 068A 4C0A 00000130 FEC1 08D1 8A6C 0C5A 8A74 0BBB 0070 8EC3 00000140 31DB B801 02CD 1372 2A8C C38E 0648 7C60 00000150 1EB9 0001 8EDB 31F6 31FF FCF3 A51F 61FF 00000160 2642 7CBE 877D E840 00EB 0EBE 8C7D E838 00000170 00EB 06BE 967D E830 00BE 9B7D E82A 00EB 00000180 FE47 5255 4220 0047 656F 6D00 4861 726400000190 2044 6973 6B00 5265 6164 0020 4572 726F000001A0 7200 BB01 00B4 0ECD 10AC 3C00 75F4 C300000001B0 0000 0000 0000 0000 4CA6 4CA6 0000 8001000001C0 0100 0BFE 3FD8 3F00 0000 5A31 3500 0000000001D0 01D9 0FFE FFFF 9931 3500 04FF FB00 0000000001E0 0000 0000 0000 0000 0000 0000 0000 0000000001F0 0000 0000 0000 0000 0000 0000 0000 55AA这块10.2G(以下显示为9766MB,误差缘故不用我说明了吧?)的硬盘共分了四个区:分区结构如下:主引导扇区中前446字节--偏移地址从0000H-01BDH为mbr区,寄存着主引导程序,从上面的显示中,读者可能已经看出,那个硬盘以linux系统的grub为引导程序。
硬盘结构解析 和4KB硬盘的应用分析 及 簇、MBR、DBR、DPT介绍早期的硬盘和历史悠久的软盘可以简单地看作是由自中心按照固定的圆心角射出的一条条线分成扇区,每道扇区数相同。
那么,外圈磁道半径大,里圈磁道半径小,外圈与里圈扇区的面积自然会不一样。
不过,为了更好地读取数据,即使外圈扇区面积再大也只能和内圈扇区一样存放有限的字节数(512byte)。
这样一来,外圈的记录密度就要比内圈小,像wolf800说的那样,会浪费大量的存储空间。
如今的硬盘都使用ZBR(Zoned Bit Recording 分区域记录)技术,盘片表面从里向外划分为数个区域,不同区域的磁道扇区数目不同,同一区域内各磁道扇区数相同,盘片外圈区域磁道长扇区数目较多, 内圈区域磁道短扇区数目较少,大体实现了等密度,从而获得了更多的存储空间。
大多数产品划分了16个区域,最外圈的每磁道扇区数正好是最内圈的一倍(楼主说的373~746正是啦)。
这样的话,当磁盘主轴马达按一定角速度(每秒N转)旋转的时候,越往外,线速度越大,单位时间内读取的扇区数就越多,传输率就越高。
(是不是也可以稍微理解通常把系统盘数据放在磁盘最外圈的原因了~~)刚好在驱动中国看到了一张ZBR磁盘扇区结构示意图,很有点长跑跑道的感觉呢~硬盘的DOS管理结构1.磁道,扇区,柱面和磁头数硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。
每个盘片有两面,都可记录信息。
盘片被分成许多扇形的区 域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。
在DOS中每扇区是128×2的2次方=512字节,盘片表 面上以盘片中心为圆心,不同半径的同心圆称为磁道。
硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。
磁道与柱面都是表示不同半径的圆,在许多场合, 磁道和柱面可以互换使用,我们知道,每个磁盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。
硬盘(U盘、移动硬盘)MBR、DBR简介硬盘(U盘、移动硬盘)MBR、DBR简介(摘自无忧)一、几个概念BIOS(Basic Input/Output System)基本输入输出系统,全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序CMOS(Complementary Metal Oxide Semiconductor)意是指互补金属氧化物半导体,一种大规模应用于集成电路芯片制造的原料,在计算机领域,CMOS常指保存计算机基本启动信息(如日期、时间、启动设置等)的芯片。
CMOS 的功耗很低,计算机主板上一个纽扣电池就可以给它长时间地提供电力,即使系统掉电,信息也不会丢失。
而当主板电池供电不足时CMOS的信息会丢失,此时启动机器会有一些特殊的现象,如启动时提示 CMOS 参数丢失需重新设置,甚至机器黑屏,不能启动,更换主板上的纽扣电池即恢复正常。
有时人们会把CMOS和BIOS混称,其实CMOS是主板上的一块可读写的RAM芯片,是用来保存BIOS的硬件配置和用户对某些参数的设定。
而对CMOS中各项参数的设定要通过专门的程序,现在多数厂家将CMOS设置程序做到了BIOS芯片中,在开机时通过按下某个特定键就可进入CMOS设置程序而非常方便地对系统进行设置,因此这种CMOS设置又通常被叫做BIOS设置。
ESCD(Extended System Configuration Data)扩展系统配置数据,ESCD是系统BIOS用来与操作系统交换硬件配置信息的一种手段,这些数据被存放在CMOS(一小块特殊的RAM,由主板上的电池来供电)之中,通常ESCD数据只在系统硬件配置发生改变后才会更新扇区(Sector)硬盘划分的最小单位,一个扇区固定为 512 个字节(Byte)MBR(master boot record)即主引导记录,有时也称主引导扇区。
硬盘主引导扇区详解分类:计算机2010-10-28 11:04 31人阅读评论(1) 收藏举报主引导扇区位于整个硬盘的0柱面0磁头1扇区,包括硬盘主引导记录MBR(Master Boot Record)和分区表DPT(Disk Partition Table)。
主引导扇区有512个字节,MBR占446个字节(偏移0000--偏移1BDH),DPT 占64个字节(偏移1BEH--偏移1FDH),最后两个字节“55,AA”。
大致的结构如下图:|------------------------------------------------|0000| Main Boot Record || || 主引导记录(446字节) || || |01BD|------------------------------------------------|01BE| || 分区信息1(16字节) |01CD|------------------------------------------------|01CE| || 分区信息2(16字节) |01DD|------------------------------------------------|01DE| || 分区信息3(16字节) |01ED|------------------------------------------------|01EE| || 分区信息4(16字节) |01FD|------------------------------------------------|01FE| || 55 | AA ||------------------------------------------------|01FF主引导记录中包含了硬盘的一系列参数和一段引导程序。
引导程序主要是用来在系统硬件自检完后引导具有激活标志的分区上的操作系统。
MBR、DPT、DBR、BPB 、FAT详解2009-12-09 20:00MBR、DPT、DBR、BPB 详解硬盘主引导扇区= 硬盘主引导记录(MBR)+ 硬盘分区表(DPT)物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)大小:512字节0MBR 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)硬盘的数据结构初买来的硬盘是没有办法使用的,还要将它分区,格式化(我们这里所说的格式化是高级格式化,格式化分为高级格式化和低级格式化,低级格式的目的是在将磁盘格式化分成磁道、扇区、柱面),然后再安装上操作系统才可以使用。
主引导扇区主引导扇区是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为{(柱面,磁头,扇区)|(0,0,1)}。
主引导扇区主要由三部分组成:主引导记录MBR(Master Boot Record或者Main BootRecord)、硬盘分区表DPT(Disk PartitionTable)和结束标志字三大部分组成。
主引导扇区记录着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息,是数据信息的重要入口。
如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。
主引导扇区内的信息是通过FDISK 写入的,它是低级格式化的产物,和操作系统没有任何关系(操作系统是建立在高级格式化的硬盘分区之上,是和一定的文件系统主引导扇区的结构位置内容0000H -00D9H 主引导记录代码区00DAH -01BDH 空闲区01BEH -01CDH 分区1结构信息01CEH -01DDH 分区2结构信息01DEH -01EDH 分区3结构信息01EEH -01FDH 分区4结构信息01FEH -01FFH 55AAH 主引导记录有效标志相联系的)。
对于硬盘而言,一个扇区可能的字节数为128×2n(n=0,1,2,3)。
大多情况下,取n=2,即一个扇区(sector)的大小为512字节。
主引导扇区的组成主引导记录(MBR)主引导记录中包含了硬盘的一系列参数和一段引导程序。
其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序。
MBR是由分区程序(如Fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导。
硬盘分区表(DPT)硬盘分区结构信息偏移长度(字节)意义00H1分区状态:00-->非活动分区;80-->活动分区;其它数值没有意义01H1分区起始磁头号(HEAD),用到全部8位02H2分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位04H1文件系统标志位05H1分区结束磁头号(HEAD),用到全部8位06H2分区结束扇区号(SECTOR),占据06H的位0-5;该分区的起始磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位08H4分区起始绝对扇区0CH4分区总的扇区数硬盘分区表占据MBR扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。
硬盘分区的相关概念(主分区,扩展分区,逻辑分区,MBR,DBR)简介:指定⽂件系统格式前需要分区,分区概念,对理解操作系统启动很有必要,分区是硬盘被系统使⽤的前置条件。
记录并且归纳了⼀下,可能存在Windows和Linux系统⼀些概念的混淆,欢迎指正1,系统启动过程简介BIOS在知道了哪些硬件基本信息后开始读硬盘,⾸先读取MBR(Master Boot Record,即主引导记录)然后从MBR中了解操作的位置从⽽加载操作系统。
⽽这个MBR的内容是在分区操作的时候确定的。
MBR的在硬盘的位置和格式是固定的(即硬盘上第0磁道的第⼀个扇区)。
补充内容:硬盘⾸扇区:即主引导扇区主引导扇区:每块硬盘(不是每个分区)都只有⼀个主引导扇区,即该硬盘0号柱⾯,0号磁头的第⼀个扇区,⼤⼩为512字节。
主引导扇区包含的MBR(硬盘主引导记MBR占446bytes)、DPT(分区表DP占64bytes)、MN(硬盘有效标志Magic Numbe占2byte。
AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是⼀个没有被分区的硬盘),这3个区域是操作系统⽆关的,在每块硬盘上都存在;MBR是⼀段可执⾏程序,由各个操作系统写⼊不同的代码。
MBR的存储空间限制为446字节,MBR所做的唯⼀的事情就是装载第⼆引导装载程序。
Windows产⽣的MBR装载运⾏PBR;GRUB产⽣的MBR装载运⾏grldrMBR:它是⼀段程序,长度为446字节,作⽤是加载bootloader的。
主引导扇区2,为什么要分区2.1,对数据隔离,⽅便格式化和数据安全主要⽅⾯:系统需要重装⾸先系统分区需要进⾏格式化,所在分区数据需要提前处理次要⽅⾯:读取越频繁,磁盘越容易受损,把读写频繁的⽬录挂载到⼀个单独的分区关于Linux分区,⽐较赞成单独分区的列出来(按优先级排列):1.根⽬录(/),必须挂载到分区!2.家⽬录(/home):⾮常建议挂载的单独分区!3./SWAP(交换分区/虚拟内存):根据本机内存决定若本机实体内存较⼤,⽽且系统应⽤环境对内存需求不⾼(如本机内存有4G,⽽只是⽤于⽇常练习),可以不需要该分区。
硬盘MBR详细介绍--解释为什么最多有3个主分区硬盘是现在计算机上最常⽤的存储器之⼀。
我们都知道,计算机之所以神奇,是因为它具有⾼速分析处理数据的能⼒。
⽽这些数据都以⽂件的形式存储在硬盘⾥。
不过,计算机可不像⼈那么聪明。
在读取相应的⽂件时,你必须要给出相应的规则。
这就是分区概念。
分区从实质上说就是对硬盘的⼀种格式化。
当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,⼀般简称为MBR)和引导记录备份的存放位置。
⽽对于⽂件系统以及其他操作系统管理硬盘所需要的信息则是通过以后的⾼级格式化,即 Format命令来实现。
⾯、磁道和扇区硬盘分区后,将会被划分为⾯(Side)、磁道(Track)和扇区(Sector)。
需要注意的是,这些只是个虚拟的概念,并不是真正在硬盘上划轨道。
先从⾯说起,硬盘⼀般是由⼀⽚或⼏⽚圆形薄膜叠加⽽成。
我们所说,每个圆形薄膜都有两个“⾯”,这两个⾯都是⽤来存储数据的。
按照⾯的多少,依次称为0 ⾯、1⾯、2⾯……由于每个⾯都专有⼀个读写磁头,也常⽤0头(head)、1头……称之。
按照硬盘容量和规格的不同,硬盘⾯数(或头数)也不⼀定相同,少的只有2⾯,多的可达数⼗⾯。
各⾯上磁道号相同的磁道合起来,称为⼀个柱⾯(Cylinder)。
上⾯我们提到了磁道的概念。
那么究竟何为磁道呢?由于磁盘是旋转的,则连续写⼊的数据是排列在⼀个圆周上的。
我们称这样的圆周为⼀个磁道。
如果读写磁头沿着圆形薄膜的半径⽅向移动⼀段距离,以后写⼊的数据⼜排列在另外⼀个磁道上。
根据硬盘规格的不同,磁道数可以从⼏百到数千不等;⼀个磁道上可以容纳数KB 的数据,⽽主机读写时往往并不需要⼀次读写那么多,于是,磁道⼜被划分成若⼲段,每段称为⼀个扇区。
⼀个扇区⼀般存放512字节的数据。
扇区也需要编号,同⼀磁道中的扇区,分别称为1扇区,2扇区……计算机对硬盘的读写,处于效率的考虑,是以扇区为基本单位的。
我对硬盘MBR、DBR、BPB、FAT和FDT的理解硬盘存储数据是根据电、磁转换原理实现的。
硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1),其中盘片和磁头密封在无尘的金属壳中。
硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。
当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。
因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。
这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。
硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。
如果有N个盘片。
就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。
每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。
)每个盘片的划分规则通常是一样的。
这样每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2……每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是512byte,并按照一定规则编号为1、2、3……形成Cylinders×Heads×Sector个扇区。
这三个参数即是硬盘的物理参数。
[摘自:《FAT文件系统原理》] 以下为我的理解(gliethttp)Cylinders柱面个数为同心不同径的磁道个数Heads磁头个数为一个存放Cylinders个磁道的存储介质表面的面数Sector就是一个磁道上的扇区个数所以Cylinders×Heads×Sector就是这个物理硬盘的扇区总数.MBR->DPT主分区1-->起始扇区DBR[包括BPB和扩展BPB]-->FAT1-->FAT2-->FDT-->数据区主分区2-->下一个扩展分区信息描述主分区3主分区4MBR-->位于绝对的第0扇区MBR的引导程序占了其中的前446个,紧接着的后64个字节是硬盘分区表DPT,最后2个字节是"55 AA",为磁盘有效结尾标志值[0x000~0x1BD]存放MBR--对于pc电脑bios执行完自举之后,会将cpu控制权交给此间的最大446个字节的loader程序[0x1BE~0x1FD]存放MBR--DPT硬盘分区表,每16个字节描述一个主分区,根据分区类型字节域,我们可以知道该分区类型所以pc上主分区最多只能有4个.(注:DPT中对于>1字节的组合类型数据的存储,按小端模式[little endian]存储)几个常见的分区类型值:0x01 --- FAT320x04 --- FAT16<32M0x05 --- Extended(扩展分区)0x06 --- FAT160x07 --- NTFS0x0B --- WIN95 FAT320x0C --- WIN95 FAT320x0E --- WIN95 FAT160x0F --- WIN95 Extended>8GB0x11 --- Hidden FAT120x14 --- Hidden FAT16<32GB0x16 --- Hidden FAT160x17 --- Hidden NTFS0x1B --- Hidden FAT320x82 --- Linux swap0x83 --- Linux0x85 --- Linux extended0xA6 --- Open BSDpc执行完bios之后,将cpu控制权交给MBR的前446个字节的loader程序,位于MBR中的loader程序会加载活动主分区对应的DBR区,即—操作系统启动程序,之后MBR将cpu控制权交给DBR,所以DBR 的第1个扇区的前3个字节必须对应x86的跳转指令”E8 58 90”,该指令负责跳过接下来的几个不可执行的字节(BPB BIOS参数记录表和扩展BPB),跳到操作系统引导代码部分。
硬盘主引导扇区= 硬盘主引导记录(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表示活动分区;其他为无效分区。
硬盘的数据结构硬盘的数据结构:为更深⼊的了解硬盘,还必须对硬盘的数据结构有个简单的了解。
对于FAT16和FAT32⽂件系统(NTFS采⽤不同的⽂件管理技术,另做介绍),硬盘上的数据按照其不同的特点和作⽤⼤致可分为5部分:MBR区、DBR区、FAT区、DIR 区和DATA 区。
其中,MBR由分区软件创建,⽽DBR区、FAT区、DIR区和DATA 区由⾼级格式化程序创建。
⽂件系统写⼊数据时只是改写相应的FAT区、DIR 区和DATA区。
也正是这5个区域共同作⽤的结果,才使整个硬盘的管理有条不紊。
下⾯对这5个区域分别进⾏介绍。
(1)MBR区MBR,即主引导记录区,位于整个硬盘的0磁道0柱⾯1扇区。
在总共512字节的主引导扇区中,MBR的引导程序占⽤其中的前446个字节(偏移0~偏移1BDH),随后的64个字节(偏移1BEH~偏移1FDH)为DPT(Disk Partition Table,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH~偏移1FFH)是分区有效结束标志。
由它们共同构成硬盘主引导记录,也称主引导扇区。
有时硬盘主引导记录专指MBR的引导程序,本书中对硬盘主引导记录和硬盘主引导扇区不作区分。
(2)DBR区DBR(DOS Boot Record),操作系统引导记录区。
通常位于硬盘0柱1⾯1扇区,是操作系统可以直接访问的第⼀个扇区。
它包括⼀个引导程序和⼀个被称为BPB(BIOS Parameter Block)的本分区参数记录表。
引导程序的主要任务是,当MBR将系统控制权交给它时,判断本分区根⽬录前两个⽂件是不是操作系统的引导⽂件。
以DOS为例,即是IO.SYS和MSDOS.SYS。
低版本的DOS要求这两个⽂件必须是前两个⽂件,即位于根⽬录的起始处,占⽤最初的两个⽬录项,⾼版本的已没有这个限制。
另外,Windows与DOS是⼀个家族,所以,Windows也沿⽤这种管理⽅式,只是⽂件名不⼀样。
硬盘主引导扇区(MBR、DPT、DBR、BPB)详解.txt“恋”是个很强悍的字。
它的上半部取自“变态”的“变”,下半部取自“变态”的“态”。
硬盘主引导扇区(MBR、DPT、DBR、BPB)详解引用:网上收集的资料,放到这里来学习,这方面登山人大哥是高手,有空指点一下喽硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。
MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。
但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统(图一)。
MBR由三部分构成:1.主引导程序代码,占446字节2.硬盘分区表DPT,占64字节3.主引导扇区结束标志AA55H一、硬盘的主引导程序代码是从偏移0000H开始到偏移01BDH结束的446字节;主引导程序代码包括一小段执行代码。
启动PC 机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H;然后读系统磁盘0柱面、0磁头、1扇区的主引导扇区MBR的内容到内存指定单元0:7C00 首地址开始的区域,并执行MBR程序段。
主引导代码实现下列功能:1.扫描分区表查找活动分区;2.寻找活动分区的起始扇区;3.将活动分区的引导扇区读到内存;4.执行引导扇区的运行代码。
如果主引导代码未完成这些功能,系统显示下列错误信息:Invalid partition tableError loading operating systemMissing operating system二、硬盘分区表DPT是从偏移01BEH开始到偏移01FDH结束的64字节(图二);硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占16字节。
在这里我们可以看出,硬盘的总分区数为什么不能大于4。
其中可激活分区数不得大于3,扩展分区数不得大于1,当前活动分区数必须小于等于1。
分区表的每一分区的第0个字节是自举标志,其值为80H时,表示该分区是当前活动分区,可引导,其值为00H时,表示该分区不可引导。
第4字节是分区类型(图三)。
每一分区的第1至第3字节是该分区起始地址。
其中第1字节为起始磁头号(面号);第2字节的低6位为起始扇区号,高2位则为起始柱面号的高2位;第3字节为起始柱面号的低8位。
因此,分区的起始柱面号是用10位二进制数表示的,最大值为2^10 = 1024,因逻辑柱面号从0开始计,故柱面号的显示最大值为1023。
同理,用6位二进制数表示的扇区号不会超过2^6 - 1 = 63;用8位二进制数表示的磁头号不会超过2^8 - 1 = 255。
每一分区的第5至第7字节表示分区的终止地址,各字节的释义与第1至第3字节相同。
这里我们假设一种极端的情况:如果让第5至第7字节的所有二进制位都取1,就获得了柱面号、磁头号和扇区号所能表示的最大值,从而得到最大绝对扇区号为:1024 × 256 × 63 = 16,515,072这个扇区之前的所有物理扇区所包含的字节数为:16,515,072 × 512Bytes ≈ 8.46×109Bytes = 8.46GB。
由此可知硬盘的容量设计为什么会有8.4GB这一档,分区表每一分区的第1至第3字节以及第5至第7字节的数据结构已经不能满足大于8.46GB的大容量硬盘的需要。
考虑到向下兼容的需要,业界并未对从DOS时代就如此定义的硬盘分区表提出更改意见,否则改动所牵涉的面太广,会造成硬件和软件发展上的一个断层,几乎无法被业界和用户所接受。
硬盘厂商解决这一问题的方法是定义了新的INT 13服务扩展标准。
新的INT 13服务扩展标准不再使用操作系统的寄存器传递硬盘的寻址参数,而使用存储在操作系统内存里的地址包。
地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA接口,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA接口。
通过这种方式,能实现在ATA总线基础上CHS寻址的最大容量是136.9 GB,而LBA寻址的最大容量是137.4GB。
新的硬盘传输规范ATA 133规范又把28位可用的寄存器空间提高到48位,从而支持更大的硬盘。
分区表每一分区的第8至第11字节表示该分区的起始相对扇区数(即该扇区之前的绝对扇区个数),高位在右,低位在左;第12至第15字节表示该分区实际占用的扇区数,也是高位在右,低位在左;分区表这类数据结构的表达方式与机器中数据的实际存储方式在顺序上是一致的,即低位在前,高位在后。
因此,在从16进制向十进制作数值转换时,需将字段中的16进制数以字节为单位翻转调位,用4个字节可以表示最大2^32个扇区,即2TB=2048GB。
系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。
在未超过8.4GB的分区上,C/H/S的表示方法和扇区数的表示方法所表示的分区大小是一致的。
超过8.4GB的/H/S/C一般填充为FEH/FFH/FFH,即C/H/S所能表示的最大值;有时候也会用柱面对1024的模来填充。
不过这几个字节是什么其实都无关紧要了。
扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录(Extended Boot Record,EBR)(图四)。
扩展引导记录包括一个扩展分区表和扇区结束标志55AA。
一个逻辑驱动器中的引导扇区一般位于相对扇区32或63。
如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。
第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区;第二项指向下一个逻辑驱动器的EBR,如果不存在进一步的逻辑驱动器,第二项就不会使用,而被记录成一系列零。
如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区,第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。
扩展分区表的第三项和第四项永远都不会被使用。
扩展分区表项中的相对扇区数是从扩展分区开始的扇区到该逻辑驱动器中第一个扇区的扇区数;占用的扇区数是指组成该逻辑驱动器的扇区数目。
有时候在磁盘的末尾会有剩余空间,由于分区是以1柱面的容量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,不够一个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。
三、主引导扇区的最后两个字节(偏移1FEH和偏移1FFH),其值为AA55H,它表示该扇区是个有效的引导扇区,可用来引导硬磁盘系统。
分区引导扇区DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR 是由硬盘的MBR装载的程序段。
DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。
每个分区都有引导扇区,但只有被设为活动分区的DBR才会被MBR装入内存运行。
DBR主要由下列几个部分组成:1.跳转指令,占用3个字节的跳转指令将跳转至引导代码。
2.厂商标识和DOS版本号,该部分总共占用8个字节。
3.BPB(BIOS Parameter Block, BIOS 参数块)。
4.操作系统引导程序。
5.结束标志字,结束标志占用2个字节,其值为AA55DBR中的内容除了第5部分结束标志字固定不变之外,其余4个部分都是不确定的,其内容将随格式化所用的操作系统版本及硬盘的逻辑盘参数的变化而变化。
一、FAT32的分区引导扇区为了使加载文件的操作更加灵活,加上FAT32文件系统采用"活动"的FDT表,,同时考虑到引导程序的代码量和为今后发展保留适当的余量,FAT32文件系统分区引导扇区占据了6个扇区,只有前3个扇区作为系统的分区引导扇区,其余3个扇区保留暂未使用。
分区引导扇区对于操作系统的启动和磁盘文件的访问具有至关重要的作用;引导程序代码的损坏将导致操作系统不能正常启动,磁盘读写参数的破坏将造成存储在磁盘上的文件不能正常读写。
由于分区引导扇区的重要性,FAT32文件系统在在第一个分区引导扇区的6个扇区后的6个扇区里保留了分区引导扇区的备份,在启动时操作系统可以对两份引导扇区进行比较,以便选择正确的引导扇区来引导系统。
由于在磁盘正常工作过程中系统不再对引导扇区的程序和数据进行修改,因此备份的分区引导扇区损坏的可能性非常小。
分区引导扇区的第一个扇区(图六)的前三个字节是一条跳转指令,然后是8个字节长的OEM ID(厂家标识)和版本号,其后是简称为BPB的BIOS参数块(BIOS Parameter Block)。
对于FAT32其各部分的意义如下表:偏移地址长度(字节)意义0BH2每个扇区的字节数,常取512。
0DH1每簇扇区数;可以是1, 2, 4, 8, 16, 32, 64, 128,取决于文件系统格式及分区大小。
0EH2为操作系统保留的扇区数;FAT32时多为十进制的32,FAT16时为1,有的格式化工具可能将它设为36或63。
10H1FAT表的个数;常取2。
11H2在FAT16中存放系统根目录中允许登记的目录项个数,FAT32中用于标注系统采用的是否为FAT32文件系统。
其值为0000H表示磁盘使用FAT32文件系统。
13H2值为00H,为保持兼容性而保留,未使用。
15H1磁盘介质标志,硬盘为F8。
16H2未使用,值为00H。
18H2每个磁道的扇区数。
1AH2磁盘的磁头数。
1CH4分区前隐藏扇区的个数。
20H4逻辑磁盘中的扇区总数。
24H4每个FAT表所占的扇区数。
28H2FAT表镜像标志,值为0表示系统保存2份互为备份的FAT表,值为1表示系统仅保存1份FAT表。
2AH2文件系统的主次版本(保留)。
2CH4磁盘根目录的起始簇号。
30H2文件系统参数的扇区号,通常位于引导扇区的下一个扇区。
32H2备份分区引导扇区的逻辑扇区号。
34H12保留,未使用。
40H1中断13呼叫的预设值,指明访问的设备;软盘为00H,硬盘为80H。
41H1用于中断13呼叫。
42H1磁盘读写参数扩展标志,其值为29H。
43H4格式化时随机产生的磁盘卷的序列号。
47H11格式化时人工输入的磁盘卷标号。
52H8文件系统的标识号(FAT32)。
从偏移0x5A开始的数据为操作系统引导代码。
这是由偏移0x00开始的跳转指令所指向的,此段指令在不同的操作系统上和不同的引导方式上,其内容也是不同的。
扇区的最后两个字节存储值为0x55AA的DBR有效标志,对于其他的取值,系统将不会执行DBR相关指令。