磁盘分区及开机引导

一.磁盘组成

磁盘主要由盘面(也叫盘片)、磁头臂(也叫机械手臂)、读写头(也叫磁头)与转轴组成,盘面又可以分为磁道、柱面,扇区

磁盘的基本构成如下:

盘面:磁盘是由一叠磁盘面组成

磁头(Heads):每个磁头对应一个磁盘面,负责该磁盘面上的数据的读写。

磁头臂:磁头臂具有伸展性,负责读写头在盘片上进行读写操作

转轴:让盘面转动

在盘面上,整个盘面上面好像有多个同心圆绘制的饼形图,如图所示

磁道(Track):当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道。

扇区(Sector):磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,每个扇区可以存放512bytes的信息,在向磁盘读取和写入数据时,要以扇区为单位

柱面(Cylinders):所有盘面上的同一个磁道构成了一个柱面,柱面是分割磁盘的最小单位

磁盘总容量=盘面数量×每个盘面上的磁道数量×每个磁道上的扇区数量×扇区大小=Heads×Track×Sectors/Track×512bytes

二.最重要的第一个扇区

磁盘的第一个扇区最重要,他记录了整块磁盘最重要的信息,分别是:

主引导分区(MBR):在这里安装引导加载程序,共446bytes,当系统开机时会主动读取这个区块的内容,这样系统才会知道程序放在哪里且该如何开机

分区表(partition table):记录整块磁盘的分区状态,有64bytes

三.磁盘分区表

柱面是磁盘分区的最小单位,因此给柱面编号。在分区表的64bytes容量中,分为四组记录区,每组记录区记录了该区段的起始和结束柱面编号。磁盘分区表的作用图如下:

因此这四个分区又叫做主分区或扩展分区。

在linux中,这四个分区分别叫做/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4

在windons中,叫做C,D,E,F

如果我们想分出超过4个分区怎么办?这个时候就要用到逻辑分区的概念,先上一张图

这里我们只用到了两个分区表记录,并且有一个扩展分区,在扩展分区里面又分出了多个逻辑分区

在linux中,这些分区叫/dev/sda5,/dev/sda6…最多可以有11个逻辑分区(5到15号),不使用2,3,4的原因是因为他们需要留给主分区或者扩展分区使用

注意:

主分区与扩展分区只能有4个

扩展分区最多只能有一个

逻辑分区是扩展分区切割得到的

主分区和逻辑分区可以被格式化,扩展分区不能被格式化

四.开机流程与主引导分区

 1.BIOS:开机首先执行的程序,他会根据用户的设置去取得能够开机的硬盘,并且到该硬盘的第一个扇区读取第一个扇区的MBR位置

2.MBR:执行引导加载程序(Boot loader),读取系统内核文件

3.内核文件:开始操作系统的功能

Boot loader是由操作系统安装在MBR上面的一套软件,可以提供菜单(完成多重引导),载入内核文件,转交其他loader

注意:Boot loader的转交其他loader功能可以实现多重引导,也就是说,引导加载程序不仅可以安装在MBR上外,还可以安装在每个分区的引导扇区上,loader会做的事情就是把控制权交给系统内核或者其他loader

五.Grub

我们通常所说的Grub其实也是一种loader

装载GRUB和操作系统的过程,包括以下几个操作步骤

装载记录:

基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。(grub太大,只能写一部分在MBR中)

装载Grub:

这第二引导装载程序实际上是引出更高级的功能,以允许用户装载一个特定的操作系统。

装载系统:

如linux内核。GRUB把机器的控制权移交给操作系统。
不同的是,微软操作系统都是使用一种称为链式装载的引导方法来启动的,主引导记录仅仅是简单地指向操作系统所在分区的第一个扇区。
原文地址:https://www.cnblogs.com/sunshine-cat/p/8087764.html