前言
想要了解MBR和GPT就说明已经知道了其目的是要将磁盘分区,那什么是磁盘分区?为什么要磁盘分区?怎么进行磁盘分区?而MBR和GPT又是什么?两者又有什么区别?其实这都是围绕着一个目的使用磁盘,而工厂生产的硬盘必须要经过三个步骤,才能让电脑使用它们存储数据:
这里以一个巨大的住房/dev/sda的使用为例:
- 低级格式化:通常由生产厂家完成,目的是划定磁盘可供使用的扇区和磁道并标记有问题的扇区。
想要建立住房,首先要有一个毛坯房/dev/sda,将毛坯房按地面平方划分,如果最小单位是1平方米,那么一个扇区就是1平方米。而有良心的开发商会告诉你哪一块地方容易漏水漏电塌墙。 - 磁盘分区:但是硬盘不能直接使用,必须对硬盘进行分割,分割成一块一块的硬盘区域,这就是硬盘分区。
第一天,毛坯房不能直接住人,我们现在要对其进行装修,按卧室/dev/sda1、厨房间/dev/sda2、洗手间/dev/sda3、客厅/dev/sda4、备用区(剩余未划分部分用来以后其他装修),立起一道一道水泥或木板墙,将其做成一个个没有门小的隔间。
第二天,想要看看昨天划分的情形,一进房门,由于我装修除了立墙什么都没做呢,自己记性又不好,忘了哪里被划分为卧室、哪里被划分成洗手间、我要是真开始装修错了怎么办哪?总不能每次一忘就把墙全拆了,重新立吧。所以我们在自己的房门里面,房门边上的小桌子上放了一个小本子,这个小本子记录了我前一天的装修的隔间规划。这个小本子就是分区表,而这个分区表,可以用不同的小本子,比如MBR或GPT,100平的房间的我们用一个4K页小本子如MBR就行了,而一个1公顷大别墅我们可以用一个大黑板,如GPT,根据不同的需求选择不同的分区表。
第三天,我想要再增加一个运动区,用来打Dota2,那怎么办?注意剩余的备用区,我们可以将其划分一部分出来。
分出一个区就相当于装修完一个隔间。 - 高级格式化:给分区挂载文件系统。
注意,我们给毛坯房分隔间的时候,隔间是没有门的,要想使用的话至少需要一个门吧,所以挂载文件系统就相当于给一个房间一个门。实际上就是这个硬盘这个东西,放在这里,虽然我们把它划分了,即装修了,但是怎么把数据存储进去(这样说感觉像是我装修完房间,就把四周给堵上了=_=),就要开一扇门。
挂载:一个进入隔间的门,即建立一个可以被用户打开的目录。通过一个目录(门)进去,Linux可以是/home/zyx_master进入/dev/sda3(卫生间)(即我将我的一个用户的数据直接用一个分区存放,换种说法就是把/dev/sda3挂载到/home/zyx_master下)。
但是可以发现,/home/zyx_master这个目录是放在/home下的,而/home肯定是属于另一分区的。说明,目录仅仅只是一个逻辑路径,与其物理空间的存储规则不是相同关系的。
设dev/sda2挂载在/home下,/dev/sda3挂载在/home/zyx_master下,相当于,在厨房间里面开了一道通往洗手间的门,但厨房间是厨房间,洗手间是洗手间,二者是相互独立的,你不能在洗手间里吃饭,也不能在厨房间上厕所。 - 使用硬盘:在硬盘中存取数据。
在/home/zyx_master里面建立子目录以及存放数据就相当于日常在/dev/sda3这个分区中进行操作。
低级格式化不谈。
MBR(MS-DOS)概述
MBR与GPT都是磁盘分区表(partition table)的一种格式。
当前常用的一些分区格式用的都是MBR。Linux系统是为了兼容Windows的磁盘,因此使用支持Windows的MBR(Master boot Record,主引导记录)的方式来处理启动引导程序与分区表。而启动引导程序与分区表则通通放在磁盘的第一个扇区,这个扇区在旧版中用的是512字节的大小,但是当前用的一般都是1M大小,一个扇区512字节(一个扇区的大小一般是512字节和4k字节,但现在普遍是512字节)。
第一个扇区的大小是512字节大小,其内容如图所示。
主引导记录(Master Boot Record,MBR):可以安装启动引导程序的地方,有446字节,0x1BD=445,而操作系统中,都是从0开始计数的,所以要445+1=446字节。一般在操作系统安装时写入,但它并不属于操作系统。MBR就是一段引导程序,用于检测磁盘的分区合法性和加载操作系统,它的重要作用就是识别活动分区,并引导操作系统。
地址 |
描述 |
长度(字节数) |
0 |
代码区 |
440(最大446) |
440 |
选用磁盘标志 |
4 |
444 |