硬盘分区的相关概念(主分区,扩展分区,逻辑分区,MBR,DBR)

简介:

指定文件系统格式前需要分区,
分区概念,对理解操作系统启动很有必要,分区是硬盘被系统使用的前置条件。
记录并且归纳了一下,可能存在Windows和Linux系统一些概念的混淆,欢迎指正

1,系统启动过程简介

BIOS在知道了哪些硬件基本信息后开始读硬盘,
首先读取MBR(Master Boot Record,即主引导记录)
然后从MBR中了解操作的位置从而加载操作系统。

而这个MBR的内容是在分区操作的时候确定的。
MBR的在硬盘的位置和格式是固定的
(即硬盘上第0磁道的第一个扇区)。

补充内容:Linux系统启动过程详情

硬盘首扇区:即主引导扇区

主引导扇区:
每块硬盘(不是每个分区)都只有一个主引导扇区,
即该硬盘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装载运行grldr

MBR:它是一段程序,长度为446字节,作用是加载bootloader的。
主引导扇区

2,为什么要分区

2.1,对数据隔离,方便格式化和数据安全

主要方面:
系统需要重装首先系统分区需要进行格式化,
所在分区数据需要提前处理

次要方面:
读取越频繁,磁盘越容易受损,
把读写频繁的目录挂载到一个单独的分区

关于Linux分区,比较赞成单独分区的列出来(按优先级排列):
1.根目录(/),必须挂载到分区!
2.家目录(/home):非常建议挂载的单独分区!
3./SWAP(交换分区/虚拟内存):根据本机内存决定若本机实体内存较大,
而且系统应用环境对内存需求不高
(如本机内存有4G,而只是用于日常练习),可以不需要该分区。
若本机内存不能满足需求,建议设置SWAP分区用户文件所在目录
4./var和/tmp:对于负载较重的服务器,
应该挂载到单独分区
/var主要存放变更频繁的数据,如日志文件等/tmp主要存放临时文件,5./usr或者/usr/local:需要编译大量软件,
希望重装系统后不再重新编译时,建议挂载到单独分区
6./boot:现在一般不需要挂载到单独分区 
View Code

2,2,效率,分区是基于物理硬盘的柱面,柱面之间切换消耗大

效率(机械硬盘):        
主要方面:分区将数据集中在某个磁柱的区段,
当有数据要读取自该分区时, 硬盘只会搜寻相应区段,
有助于数据读取的速度与效能的提升!

另一方面,磁盘不同区域(内圈与外圈,)的读取速度是不同的,
磁盘越大,差别越明显,
通常将读写频繁的目录挂载到读取速度更快的区域
(总体来说,是推荐外圈),
不常使用和变更的数据放在稍慢的区域将是一个比较好的选择。

关于外圈与内圈:外圈有更强的数据吞吐能力,
即单个大文件读写速度更快。内圈有更短的寻道时间,
即多个小文件读写速度更快。
但就一般情况下我们所用的硬盘而言,
在系统启动方面,
速度提升一倍带来的收益比寻道速度提升一倍带来的收益更大。
(毕竟不能像固态硬盘一样将寻道速度提升几百倍而引起质变)
View Code

3,分区过程:

3.1磁盘结构图

相关概念:

盘面:一个硬盘有多张盘片叠成,不同盘片有编号,盘面可双面读写
磁道:每张盘片上的存储颗粒成环形一圈圈地排布,每一圈称为磁道,有编号
每条磁道上都有一圈存储颗粒, 扇区:每512
*8(512字节,0.5KB)个存储颗粒作为一个扇区, 扇区是硬盘上存储的最小物理单位
簇:N个扇区可以组成簇,N取决于不同的文件系统或是文件系统的配置,簇是此文件系统中的最小存储单位
柱面:所有盘面上的同一磁道构成一个圆柱,称为柱面,柱面是系统分区的最小单位

磁头:一般盘面上下各有一个磁头,两个磁头可以同时读写,多个盘面对应多个对磁头

补充:linux 磁盘分区的理解

3.2,磁盘的第一个扇区特别重要,因为磁盘的第一个扇区记录了两个重要的信息:

1、主引导分区(BMR):可以安装引导加载程序的地方,有446bytes。
2、分区表:记录整块硬盘分区的状态,有56bytes。

3.3,分区表的特点

分区表只有64bytes,并且规定:
用16字节来描述一个分区的信息,那么最多只能4个分区。

那么想要实现多个分区怎么办:
就只能将一个分区定义为扩展分区,
通过扩展分区指向一个磁盘位置,
再把这块空间分成多个逻辑分区,
从而构成多个分区。

同时又有规定:
一个盘4个分区最多只能有一个扩展分区,
不是扩展分区的都叫主分区

简单来说扩展分区和逻辑分区特点和关系:

分区(主和扩展分区)之间是互相独立(意思根据柱面来划分各自的区域)
扩展分区所指向的一系列逻辑分区, 逻辑分区之间是关联的 (意思是互相连接的,后一个逻辑分区相对前一个逻辑分区串联起来)

补充:分区的具体划分过程

 

以上是主分区,扩展分区,逻辑分区,这些概念都是根据硬盘特征来划分的。

4,下面介绍根据操作系统的对应关系划分:系统分区,活动分区,启动分区

启动分区:
存放操作系统文件的的分区,
比如你装了2个系统: win7
+linux那么你就2个启动分区。 装的是windows的话就看windows文件夹(system32文件)存放在那个区,哪个区就是你的启动分区,默认装C盘,你也可以装F盘等。 装的是Linux的话就看 / 分区装在哪,哪就是启动分区。 系统分区: 存放Ntldr程序或者Grub程序的分区, windows通常装在C盘,linux通常装载/boot分区 活动分区: 活动分区是主分区,活动分区是系统分区,
每次PC启动时, 一块硬盘只能有一个活动分区, 如果要启动windows就将windows的系统分区设为活动分区, 计算机就会去那里装载引导程序(Ntldr或者Grub)并执行, 如果要启动Linux就将Linux的系统分区设为活动分区。

补充:活动分区,系统分区,启动分区

活动分区
在分区表中,16个字节的最前面含有80标志的分区信息所定义的分区

系统分区
系统分区是指包含启动 Windows 所需的、特定于硬件的文件
(例如 Ntldr、Boot.ini 和 Ntdetect.com)的磁盘卷。
在动态磁盘上,这称为系统卷。

系统分区必须是被标记为活动的主分区

启动分区
启动分区是指包含 Windows 操作系统文件
(默认情况下位于 WINDOWS 文件夹中)
及其支持文件(默认情况下位于 WINDOWS\System32 文件夹中)的磁盘卷。
在动态磁盘上,这称为启动卷。

有且只能有一个系统分区,但是在多重启动系统中,每个操作系统都有一个启动分区。

系统分区具备引导功能,一般就是活动的主分区,启动分区则可以是主分区或逻辑分区(主要看该分区是否存放Windows目录)。
View Code

关于上面三种分区个人理解就是:补充

活动分区在分区表中指定,活动分区指向的一定同时是系统分区(拥有启动系统的启动程序),真正存放操作系统的是启动分区。
单系统,三者一般是同一个分区,启动分区可能是单独分区,
多系统每个启动分区感觉是单独一个分区
(启动分区可以是逻辑分区)
活动分区是基于主分区的,
磁盘分区中的任意主分区都可以设置为活动分区。
如果电脑上4个主分区都安装了不同的系统,
那被标记为活动分区的主分区将用于初始引导,
即启动活动分区内安装的系统。

主分区最多可以创建4个,
我们需要使用扩展分区打破4的限制。
在磁盘上可以创建多个逻辑分区而创建的这些逻辑分区都被称为扩展分区,
您可以用主分区和逻辑分区中储存数据,
但是不能用扩展分区储存,
因为扩展分区是我们对逻辑分区的总称,只是一中称呼。
主、活动,扩展,逻辑分区,

 感觉dbr是Windows的中的dos系统的引导程序,更像是系统分区引导的一种(补充知识点)。

补充:主引导扇区(MBR),分区表(DPT)及活动分区(DBR)

补充:硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)

5,物理扇区和逻辑扇区(相对扇区)

物理扇区包括:柱面、磁头、扇区,这三个都有按数字编号,
柱面号和磁头号从0开始,扇区号从1开始,(0,0,1)

相对扇区(也叫逻辑扇区):只有一个数字编号,从0开始。
安装的操作系统类型的不同而划分方法不同(windows和Linux还有Mac),

一般都是windows系统,又叫DOS扇区
逻辑0扇区对应的物理扇区编号是柱面号0、磁头号1、扇区号1,(011),之后往下推。

补充:
0柱面0磁头对应的那一圈扇区内的数据预定给bios读取和操作系统种类无关。
0柱面1磁头开始对应的扇区即逻辑扇区,操作系统可读取。

硬盘的寻址,首先在同一个柱面内开始,
(柱面包括一叠盘面的同轴磁道,每个盘面有两个磁头)
第0个磁头读完所在磁道所有扇区后
第1个磁头继续
第2个磁头继续
。。。
直到所有的盘面读完
即柱面读完。

 

6,

posted @ 2021-04-29 10:28  假程序猿  阅读(2878)  评论(0编辑  收藏  举报