计算机的磁盘分区信息是计算机引导操作系统必须的信息,根据引导方式的不同,一般分别保存在MBR或者GPT中。其中,BIOS引导会读取MBR(Main Boot Record)中的磁盘分区信息,UEFI引导会读取保存在GPT中的分区信息。下面我们将介绍两种分区技术在linux系统下是如何分区的。
1.传统分区方式
传统分区方式将磁盘分区信息存在MBR中,MBR中引导程序占用446字节,磁盘分区表DPT占用64字节,最后两个字节是MBR的结束位。由于每个分区需要占用16个字节的存储空间空间,所以主分区+扩展分区最多是4个。扩展分区最多1个,最少0个,故主分区最少1个,最多3个。逻辑分区需要建立在扩展分区的基础之上。
下面,我们将介绍如何做主分区,扩展分区以及逻辑分区。
首先,查看一下系统存储设备状态以及分区情况,使用fdisk -l命令。
上图,蓝框中是第一块硬盘的信息以及其分区信息,红框中是第二块硬盘的信息,因其还没有分区,所以还没有分区信息。然后,我们使用fdisk /dev/sdb来给其分区。
命令输入n,表示新建分区。
p是主分区,e是扩展分区。在这里我们选择主分区(建立扩展分区以及逻辑分区的步骤与主分区都是一样的,只不过要先建立扩展分区才能建立逻辑分区)。
分区号选择1。然后给分区分配10G存储空间。
输入命令w,将所做改动写入分区表。
查看一下现在的硬盘分区情况。
然后我们需要格式化分区,使用mkfs命令,如下图所示。
然后是分区的挂载,需要将分区与路径挂载。我在根路径下建立了文件夹new_device1,将新分区挂载在此路径下。需要使用mount命令。
但是mount命令挂载只是暂时的,计算机重启之后就会消失,所以我们必须通过配置/etc/fstab来实现系统重启后自动挂载。命令如下。
命令的含义是将字符串写入/etc/fstab文件。字符串的第一部分是分区名称,第二部分是挂载点(挂载路径),第三部分是分区格式,第四部分是挂载参数,第五部分是决定dump命令在进行备份时是否要将这个分区存档,默认设0,第六部分是设定系统启动时是否对该设备进行检查,这个值只可能有3种:1保留给根分区,其他分区使用2(检查完根分区后检查)或者0(不检查)。这样以后系统重启时,设备就会自动加载了。
建立扩展分区与逻辑分区的方式与主分区是一样的,只不过在执行fdisk /dev/sdb命令后,新建分区时要选择e(扩展分区)或者l(逻辑分区)。
2.逻辑卷
逻辑卷是一个比较抽象的概念,相当于用磁盘空间通过一定逻辑组织形成的一种分区。相对于传统的分区,分区时静态的,卷是动态的,卷可以动态调整大小,可随意扩张,收缩,甚至跨盘。逻辑卷是使用逻辑卷组管理器(Logic Volume Manager)创建出来的设备,也是Linux操作系统可以认识的设备。事实上,LVM是介于硬盘裸设备和文件系统的中间层。首先来了解几个概念。
- 物理卷(Physical Volume,PV),也就是物理磁盘分区,比如说/dev/sdb1。如果要想使用LVM来管理这个物理卷,可使用fdisk工具将其ID改为LVM可以识别的值。
- 卷组(Volume Group,VG),也就是PV的集合。
- 逻辑卷(Logic Volume,LV),也就是VG中划出来的一块逻辑磁盘。
首先创建一个或多个物理卷,物理卷按照相同(或不同)的组名聚集形成一个(或多个)卷组,而逻辑卷就是从某个卷组中抽象出来的一块磁盘空间。
增加一个硬盘/dev/sdb,创建两个主分区,分别是/dev/sdb1和/dev/sdb2,创建好之后不需要挂载,先修改其ID,使用fdisk /dev/sdb,使用命令t来修改分区。如下图所示。
如上图所示,将/dev/sdb1分区类型改成Linux LVM,对/dev/sdb2做同样的操作。经过以上操作,两个分区就具备了作为物理卷(PV)的条件,然后使用pvcreate命令将其创造成物理卷。
有了PV就可以创建卷组了,下面我们创建一个卷组chen。
有了卷组,就可以创建逻辑卷了。命令格式如下。
lvcreate -L SIZE -n LV_NAME VG_NAME
如上图所示,创建了两个逻辑卷,分别是feng和xuanli,分别赋予了12G和8G的空间。然后格式化并挂载就完成了。
最后将挂载写入配置。
至此逻辑卷的创建就结束了,此外逻辑卷还可以任意扩张与缩减,具体的方法读者可以自行去探索或者参考http://jingyan.baidu.com/article/54b6b9c0fc8b0b2d583b47c6.html和http://jingyan.baidu.com/article/ca2d939d0f98d1eb6c31cee3.html。
3.GPT磁盘分区
GPT磁盘是指使用GUID分区表的磁盘,是源自EFI标准的一种较新的磁盘分区表结构的标准。与普遍使用的主引导记录(MBR)分区方案相比,GPT提供了更加灵活的磁盘分区机制。传统的分区方案(称为MBR分区方案)是将分区信息保存到磁盘的第一个扇区(MBR扇区)中的64个字节中,每个分区项占用16个字节,这16个字节中存有活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、隐含扇区数目(4个字节)、分区总扇区数目(4个字节)等内容。由于MBR扇区只有64个字节用于分区表,所以只能记录4个分区的信息。这就是硬盘主分区数目不能超过4个的原因。后来为了支持更多的分区,引入了扩展分区及逻辑分区的概念。但每个分区项仍用16个字节存储。另外最关键的是MBR分区方案无法支持超过2TB容量的磁盘。因为这一方案用4个字节存储分区的总扇区数,最大能表示2的32次方的扇区个数,按每扇区512字节计算,每个分区最大不能超过2TB。磁盘容量超过2TB以后,分区的起始位置也就无法表示了。在硬盘容量突飞猛进的今天,2TB的限制将很快被突破。由此可见,MBR分区方案已经无法满足需要了。
GPT磁盘分区使用parted命令,整个过程如下。
打印当前磁盘信息。
设置分区类型为GPT。
提示下面警告,忽略继续即可输入i或者ignore。
退出。