MBR和GPT

MBR

主引导记录(MBR,Master Boot Record)是位于磁盘0磁道1扇区的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

硬盘0磁道1 扇区的512个字节中记录的信息如下:
     512=           446           +                   64                       +                         2
             MBR(主引导记录)   MPT(主分区标示)           55aa(硬盘的有效性表示)

1、主引导分区(Master Boot Record,MBR):主要作用是检查分区表是否正确,并且在系统硬件完成自检以后将控制权交给磁盘上的开机引导程序。开机引导程序我们又称为boot loader,是操作系统安装在MBR上的一套软件(如GNU,GRUB),主要任务有:

  • 提供菜单:使用者可以选择不同的开机项目
  • 载入核心文件:开始操作系统

2、分区表(partition table):占据64个字节,可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节

3、结束标志字:0x55AA,最后两个字节,是检验主引导记录是否有效的标志

MBR分区特性:

  • 磁盘分区有三种,主分区、扩展分区、逻辑分区。
  • 一个磁盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。
  • 分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,那剩的部分就浪费了。
  • 扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区。

MBR分区表的限制

1、操作系统无法抓取2.2T以上的磁盘容量

2、MBR只有一个分区,若被破坏后经常无法或难以救援

3、MBR里存放开机管理程序的代码只有446字节,无法容纳较多的程序码

GPT磁盘分区

因为过去一个扇区的大小为512字节,不过目前已经有4K的扇区设计出现,为了相容于所有磁盘,因此在扇区的定义上面,大多会使用逻辑区块位址(LBA)来处理,GPT将磁盘所有分块以LBA(默认为512字节)来规划,而第一个LBA称为LBA0(从0开始编号)。

于MBR仅使用512字节来记录不同,GPT使用了34个LBA区块来记录分区信息。同时与过去MBR仅有一块区块,被干掉就死光光的情况不同,GPT除了前面34个LBA之外,整个磁盘的最后33个LBA也拿来作为备份,

GPT提供了更加灵活的磁盘分区机制。它具有如下优点:

1、支持2TB以上的大硬盘。

2、每个磁盘的分区个数几乎没有限制(Windows系统最多只允许划分128个分区)。

3、分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号,即  = 18,446,744,073,709,551,616。

4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复;

5、循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率;

6、 虽然MBR提供1字节分区类型代码,但GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型,这使分区类型更不容易冲突;

7、每个分区可以有一个名称(不同于卷标)。

注意:

1、在磁盘管理工具上面,fdisk这个老牌的软件并不认识GPT,要使用GPT的话,得要操作gfdisk、parted等的指令。

2、在开机管理程序方面,grub第一版并不认识GPT,grub2以后才会认识

3、并不是所有的操作系统都可以读取GPT磁盘分区格式,同时,也不是所有的硬件都支持都可以支持GPT格式,是否能够读写GPT格式又与开机的检测程序有关

4、由于LBA0只提供第一阶段的开机管理程序码, 因此如果你使用类似grub的开机管理程序的话,那么就得额外分区出“BIOS Boot”分区,这个分区才能够放置其他开机过程所需的程序码,在centos当中,这个分区通常占用2MB左右而已。

BIOS Boot分区

Bios boot分区是必要的,因为GPT使用紧跟在MBR后面的扇区来保存实际的分区表,但在传统的MBR分区架构中,这些扇区并没有特殊的作用,这样的结果是没有足够的可用空闲空间来存储stage2这段boot loader。MBR中也存储了boot loader,但MBR无法存储超过512字节的内容,所以MBR中的这段boot loader被当作stage1使用,它的主要作用是加载功能更多更复杂的stage2这段boot loader,stage2可以从文件系统读取和载入操作系统内核。

 当使用了BIOS boot分区,该分区将包含stage2的boot loader程序,例如grub2文件,而stage1的boot loader代码仍保留在MBR中。使用bios boot分区不是解决基于传统bios但使用了gpt格式磁盘问题的唯一方法,但是复杂的boot loader如grub2无法将无法完全符合MBR中的398-446字节的区域,因此它们需要一个辅助的存储空间。在MBR磁盘上,一般使用紧跟在MBR后的扇区空间来存储这些复杂的boot loader,这些扇区空间就是大众所熟知的"MBR gap"。而在GPT磁盘上,由于没有与MBR gap等效的未使用空间,所以单独使用一个bios boot分区来分配这样的空间,以存储复杂的boot loader。

bios boot分区的大小非常小,可以小到只有31kB(由于第一个扇区是mbr,所以bios boot的内容从第2扇区到第63扇区),但是由于未来boot loader可能会扩展,所以建议bios boot分区设置为1M大小,而且很多磁盘分区工具都使用1MB分区对齐策略,这样MBR到第一个分区之间会保留一些空闲空间。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值