MBR、GPT的结构和区别

本章学习内容

        ——–介绍MBR、GPT

        ——–不同的启动流程

        ——–分区结构

        ——–分区差异  

        ——–磁盘管理方式




一、介绍MBR、GPT

     MBR(Master Boot Record)主引导记录和GUID(GUID Partition Table,简写为GPT)全局唯一标识分区列表是磁盘的俩种的分区方式,它们各自占据了从磁盘的0磁道0扇区开始的不同的字节数大小,这俩种不同分区方式也决定了磁盘的各种特性,是计算机启动之前最先加载的程序。



二、启动流程

     既然谈到了了磁盘的分区方式,我想这里很有必要介绍一下与之对应的启动方式。对于Legacy BIOS+MBR和UEFI BIOS+GPT这俩种技术而言,后者虽然使用人群不大,但是更先进,因为Windows8的诞生,让这一技术真正走进了人们的视野。GRUB是一个多系统启动引导程序,先启动grub再记载磁盘的MBR或者GPT,是传统的启动方式。

wKioL1e_GeDRq-8DAABNcIE1x-8240.jpg


三、详解分区结构

    1、分区展示

MBR磁盘示图

      在MBR磁盘的第一个扇区内保存着启动代码和硬盘分区表。启动代码的作用是指引计算机从活动分区引导启动操作系统,也可以叫做Bootloader;分区表的作用是记录硬盘的分区信息。在MBR中,分区表的大小是固定的,一共可容纳4个主分区信息。最后是磁盘有效标志,它是磁盘分区的校验位。

wKiom1e_p6qgD11yAABwaKdhD7I100.png

GPT磁盘示图

    在GTP磁盘的第一个扇区中同样有一个与MBR(主引导记录)类似的标记,叫做PMBR。PMBR的作用是,当使用不支持GPT的分区工具时,整个硬盘将显示为一个受保护的分区,以防止分区表及硬盘数据遭到破坏。而其中存储的内容和MBR一样。

                             wKioL1e_o72BOuELAACbhGOwpwU034.png

    2、分区细看      

        <1>centos7默认从2048号扇区开始,1–2047号扇区(每个扇区512byte)的1M空间为grub预留wKiom1fBD7ejQMA0AAGHWU88lP0231.jpg

        <2>接下来细看0号扇区的512字节,即主引导记录wKiom1fBGEnQ2bBbAAc1-XO6PNc304.jpg  

        <3>演示MBR的作用       

           ◆添加一块200G的磁盘,并创建文件系统

wKioL1fBNsmxjpV7AAD73EZTASk215.jpg

           ◆把sda的MBR转移至新磁盘

wKiom1fBN12B61yMAABwMjl_Zts448.jpg              ◆重新查看

wKiom1fBPh6hUK8hAAF23rYvFmU749.jpg

/dev/sda的MBR在/dev/sdb中生效,sdb拥有了和sda一样的分区

           ◆破坏/dev/sdb的bootloader,sdb将无法启动,此处只作破坏

wKiom1fBOmbi1aSEAAHTHCNvrmI525.jpg               ◆再破坏其分区标识符

wKioL1fBO8Lhvi8nAAHKE0wkWcA292.jpg               ◆查看其分区

wKioL1fBPBSQ5iNnAAD_BpncZ2Y649.jpg

以上证明了在MBR中,bootloader引导系统启动,而分区标识符一旦被破坏,虽然文件系统不会被破坏,但是分区会随之消失。

注意:生产生活中通常我们会备份MBR



四、俩种分区的差异

     1、在MBR中,分区表的大小是固定的,一共可容纳4个主分区信息。在MBR分区表中逻辑块地址采用32位二进制数表示,因此一共可表示2^32(2的32次方)个逻辑块地址。如果一个扇区大小为512字节,那么硬盘最大分区容量仅为2TB。

     2、GPT的分区方案之所以比MBR更先进,是因为在GPT分区表头中可自定义分区数量的最大值,也就是说GPT分区表的大小不是固定的。另外,GPT分区方案中逻辑块地址(LBA)采用64位二进制数表示,可以计算一下2^64是一个多么庞大的数据,以我们的需求来讲完全有理由认为这个大小约等于无限。除此之外,GPT分区方案在硬盘的末端还有一个备份分区表,保证了分区信息不容易丢失。

涉及专业术语:

CHS:标准的硬盘模式,它限定硬盘容量才8G,非常有效,现在市场上已经没有了! 
LAB:逻辑块寻址模式,是现在最常用的一种,常见的为500G,1T



五、磁盘管理方式

    其实在磁盘上,是分为一个个数据块的,一个块的大小通常时4K,而又把大量的数据块,分为有限的块组。每个块组中,有DGT、Block bitmap、Inode bitmap、Inode table和不均匀超级块,下图:

wKioL1fBgbbRShpKAAA0QMQrJYA079.png

换一种思路来理解磁盘数据块的分布方式

wKiom1fBl-rD0laQAABGTt6A5OI213.png

关于各个数据块存储的信息,以下作简要介绍

◆ Boot block: 前面已经介绍过,里面存储的是MBR或者GDT等系统启动的程序

◆ Super block:记录着磁盘上所有数据块组的信息以及数据块的大小、inode大小……一旦损坏,数    据丢失,需备份多次

◆ GDT:存储着每个块组的磁盘块的数量,需备份多次

◆ Block bitmap:是磁盘块上数据块的索引,是加快查找inode的一种非常重要的数据结构

◆ Inode bitmap:作用同Block bitmap

◆ Inode table:遍历inode bitmap

   所以:我们在操作一个数据时,在磁盘内部实现的机制是相当复杂的,首先通过inode table查找来分配空闲的inode,再根据inode bitmap找的对应的数据块,当然,关于inode的详细机制,我们前面已经介绍过,此处不做详细解释。 

  

   

原创文章,作者:mfwing,如若转载,请注明出处:http://www.178linux.com/41614

赞 (0)
mfwingmfwing
上一篇 2016-08-29 08:44
下一篇 2016-08-29 08:44

相关推荐

  • bash脚本编程实例

    bash脚本编程实例 1.写一个脚本 接受一个以上文件路径作为参数 显示每个文件拥有的行数 总结说明本次共为几个文件统计了其行数 #!/bin/bash # read -p “please input some paths:” paths if [ -z $paths ];then echo “There are not any paths inputtin…

    Linux干货 2017-08-14
  • llinux常用命令及bash基本特性

    一、常用的文件和目录管理命令 1. pwd命令:用来显示当前的工作目录 语法格式:直接输入pwd回车显示当前的工作目录 示例:用pwd命令显示当前的工作目录 [root@suyiwen ~]# pwd /root 2. mkdir命令:用来创建目录文件 语法格式:mkdir [OPTION]… DIRECTORY…常用option: -m,用来指定目录的权限…

    Linux干货 2018-03-11
  • 踩踩Linux命令中的那些坑

    有时候面对命令的执行和条件的判断,可能会遇到莫名奇妙的原因,可能是人为错误导致,也可能是命令本身的问题。

    Linux干货 2017-11-23
  • Linux的哲学思想

    Linux的哲学思想 一切皆文件 在linux中所有的一切,都是可以通过ls进行查询的到的,甚至可以说ll查看详细信息时表现形式为文件,所有的设备,所有的文件不论后缀,只是一个单纯文件通过vim可以编辑一切 单一目的的小程序,组合小程序完成复杂任务 在linux中,每一个命令都是对应一个功能,通过不同的参数来完成不同的要求,通过繁多的小的命令来完成大型的要求…

    Linux干货 2016-10-30
  • 用户组和权限管理2

    十七、linux文件系统上的特殊权限     suid:s表示,sgid:s表示,sticky:t表示          安全上下文     前提:进程有属主和属组,文件有属主和属组  &n…

    Linux干货 2016-08-04
  • Linux系统基础(二)

    一、Linux文件管理命令及其常用方法 1、cd(切换目录)这个命令应该是Linux中用的最频繁的一个命令之一了,因为我们经常需要进行目录的切换。在详解这个命令之前,首先得补充一个重要的知识,就是我们常用的一些比较特殊的目录: .        代表当前目录 .. &n…

    Linux干货 2016-09-24

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-29 13:48

    文章对于MBR和GPT两种分区方式进行了详细的介绍,同时也配上图片来说明问题所在。如果加上实验性验证和历史背景介绍会让文章整体更有说服力,当然,整篇博客还是能让人看到很多专业性所在,还能看出很用心的地方。