在介绍linux磁盘分区之前,我们需要了解的硬盘的概念,,硬盘是计算机上的存储设备,其他的存储设备还包括软盘、磁带机、U盘、CD、等,硬盘属于最常见的计算机存储设备了。硬盘的组成部分组要是许多的盘片、机械手臂、磁头与主轴马达组成,数据都是写在上面的盘片上的,,了解每个盘片上的组成单位尤为重要,下图是我自己画的一个盘面结构的示意图,网上有很多,自己画的比较粗糙:
1. 首先是磁道的概念,盘面会划分成多个同心圆,每个同心圆都会存储一定量的数据,每个被相邻同心圆分割的出来的区域(蓝色部位)称作磁道;
2. 以圆心放射状的方式将磁道分割出来的小区域就成为扇区,每个扇区的大小是固定的,都是512bytes;
3. 一个磁盘是由多个盘面组成的,那么,由所有盘面中相同半径长度的磁道共同组成一个柱面,柱面是硬盘分割的最小单位!
4. 每个盘片是有两面的!
5. 硬盘容量的计算公式:存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
注意:盘面的每一面都有一个磁头,通常使用磁头磁头号进行区分。
总结:
(1)硬盘有数个盘片,每盘片两个面,每个面一个磁头
(2)盘片被划分为多个扇形区域即扇区
(3)同一盘片不同半径的同心圆为磁道
(4)不同盘片相同半径构成的圆柱面即柱面
好了,接下来需要介绍一下硬盘与计算机的接口:
接口主要有三种:
1. IDE接口:排线宽,每个接口可以连接两个IDE设备,一个是Master(主)一个是slaver(从),理论上传输速度可以达到133MB每秒。我们称可以链接到IDE接口的设备成为IDE设备,不管是磁盘还是光盘。
2. SATA接口:接口要比IDE小很多,排线细小利于散热,sata一代传输速度可以达到150MB,data二代可以达到500MB每秒。目前主流使用SATA接口。
3. SCSI接口:工作站级别使用,不了解。
接下来步入正题
一. 硬盘在LINUX系统中的文件名
1. 在Linux系统中,每一个设备都是当作一个文件来对待,同时,几乎所有的硬盘设备都存放在/dev目录下(/ 是根目录)
2. IDE设备在系统中的文件名是在/dev/hd/[a-d],假设你有两个IDE接口,那么这两个IDE接口通常被称为IDE1和IDE2,由于IDE接口可以连接两个IDE设备,那么实际上你可以连接四个IDE设备,对于IDE1,它下面的两个设备中master的文件名是:/dev/hda,slaver的文件名是:/dev/hdb;而IDE2接口下面的两个设备中mster的文件名是:/dev/hdc,
slaver的文件名是:/dev/hdd
3. SATA接口的设备的文件名是/dev/sd[a-p],而SATA接口与IDE接口不同,不同的SATA接口并没有一定顺序,因此不能像IDE接口那样对不同用的磁盘做区分,因此linux是根据系统检测到磁盘的顺序来进行文件命名的:
比如我的计算机上有两个SATA接口的磁盘和一个USB接口的磁盘,分别接在主板上的SATA1接口和SATA5接口,那么根据系统检测的顺序,由于USE磁盘时在开机之后才被检测到的,因此它的文件名就是/dev/sdc,SATA1接口的磁盘就是/dev/sda,SATA2接口的磁盘就是/dev/sdb
4. 其他常见的硬盘文件名如下:
SATA/SCSI/USB:/dev/sd[a-p]
U盘:/dev/sd[a-p]
鼠标:USB:/dev/usb/mouse[0-15] PS2:/dev/psaux
这几个最好是背下来
二. 磁盘分区表
首先需要知道的是成哥磁盘第一柱面、第一扇区是最重要的,为什么说塔它是最重要的呢,第一扇区包含两个内容:主引导分区(MBR)和分区表。MBR的意义在于它用来记录引导加载程序,开机的时候会主动读取这个区域的内容,告诉系统如何开机,加载什么地方的程序。分区表的就相当于一个硬盘的目录,告诉系统硬盘是如何分割的。举个例子:
假设一个硬盘有400和柱面,那么异地柱面的第一扇区就是如图所示黑色的地方,我们把硬盘分成四个区域,1~100、101~200、201~300、301~400
在分区表中,他记录的磁盘的分割情况:p1:1~100、p2:101~200...,假设上面的磁盘设备所挂载的文件是/dev/hda的时候,那么四个分区所对应的设备文件名就分别是:
p1:/dev/hda1 p2:/dev/hda2 p3:/dev/hda3 p4:/dev/hda4,如果你的操作系统是windows,那么第一分区到第四分区分别对应了C、D、E、F盘如果你把数据放在第四分区,也就是放在了300~400柱面之间。
需要注意的是,你的分区表只有64bytes,因此最多只能分成四块区域,这四个区域被称为主或扩展分区,后面还会有逻辑分区。
通过上图可以得知,分区的最小单位是柱面。
既然一块硬盘默认只能分成四个区域,那么我能不能在分更多的区域?当然是可以得,只能分成四块区域是因为第一扇区的分区表容量有限,那么我们可以用其他扇区记录更多的分区信息。其原理如下图所示:
如图所示,是使用逻辑分区来进行分区扩展,正常情况下,我们的磁盘是由主分区与扩展分区组成的,分区表中也只能记录主分区与扩展分区,而我们新扩展的区域(逻辑分区,途中灰色的区域)是在扩展分区中进行再次划分的,逻辑分区只能存在于扩展分区,每个磁盘的扩展分区最多有一个,每个磁盘中的扩展分区与主分区一共最多是4个。
上图的磁盘分区表是:
p1:1~100 p2:101~400 p3: p4:
那么上面的磁盘所挂在的文件名就是:
主分区(粉色):/dev/hda1
扩展分区(整个灰色的区域):/dev/hda2
逻辑分区:
L1:/dev/hda5
L1:/dev/hda6
L1:/dev/hda7
L1:/dev/hda8
L1:/dev/hda9
请注意:hd3、hd4是为主分区或者扩展分区预留的,逻辑分区不能使用
当然,除了上面的结构,你也可以规划成3个主分区和一个扩展分区或者2个主分区和一个扩展分区
总结一下,关于主分区、扩展分区、逻辑分区你需要知道:
一个磁盘上是由主分区与扩展分区组成的
主分区与扩展分区一共最多只能有四个
扩展分区最多只能有一个
逻辑分区是由扩展分区切割出来的
扩展分区无法被格式化,主分区与逻辑分区可以被格式化后作为数据访问
在Linux操作系统中,IDE硬盘最多能有59个逻辑分区,SATA硬盘最多有11个逻辑分区
如果扩展分区被破坏,所有的逻辑分区将被删除
二. 开机流程与主引导分区(MBR)
我们已经了解了第一扇区的分区表,接下来我们再来看看第一扇区的另一个内容:主引导分区
首先我们来认识一下主板上两个重要的组件
CMOS芯片:CMOS是一个装在主板上的芯片,它用来记录内置网卡或显卡是否要启动已经各项参数,他需要额外的点原来发挥记录功能。
BIOS:BIOS是一套写死在主板上的程序,开机按del键可以进入BIOS界面,他是开机的时候系统第一个读取的程序,它控制着开机的时候各项硬件参数的取得,他记录了系统硬件的相信信息和开机设备的选择,对于计算机相当重要!
在开机的时候,BIOS程序回去分析计算机中的存储设备,以硬盘为例子:
BIOS的任务主要是粉色的区域,MBR用来加载内核文件(紫色部分),以上就是一个开机流程。