一台计算机的存储设备合理的分区是系统稳定性、提升使用效率、性能优化的基础。在上一章节《Linux存储-分区表及分区规则》简单分享了常用的两种分区表或者是分区方式(MBR和GPT)。
我们再来简单回顾一下这两种分区表的主要特点:
1.MBR(Master Boot Record,主引导记录):最多支持4个主分区,如果需要大于4个分区,需要配置扩展分区,再在扩展分区基础上创建逻辑分区;因为是32位寻址所以最多支持2TB容量的磁盘;为磁盘分区连续性,建议将扩展分区放在最后的柱面;适合BIOS + MBR启动方案。
2.GPT(GUID Partition Table,全局唯一标识符分区表):没有主分区、扩展分区、逻辑分区这些概念,所有分区都是独立的;默认支持128个主分区,64位寻址所以支持的磁盘容量可以达到8192 EB,几乎无容量限制;适合UEFI + GPT启动方案。
如果需要使用的磁盘容量大于2TB,并且是UEFI启动,必须使用GPT分区方式;如果磁盘容量小于2TB并且是BIOS启动,建议使用MBR分区方式。现代计算机多数都是采用UEFI+GPT方式。
本章节将介绍在linux系统环境中,如何使用fdisk和parted这两种工具对磁盘进行分区的实操步骤和方法。
一、系统环境准备
1.操作系统:almalinux 9.3
2.两块磁盘:kvm虚拟化环境中,/dev/vdb(容量约1G)和/dev/vdc(容量约3G)

3.大多数的操作系统都自带安装fdisk和parted这两个工具,可以用命令“rpm -qf”查看:

二、使用fdisk工具进行磁盘分区的方法
目标:是使用fdisk工具采用MBR分区表对磁盘/dev/vdc(容量3G)进行如下分区操作:
1.创建1G容量的主分区/dev/vdc1。
2.创建2G容量的扩展分区/dev/vdc2。
3.在扩展分区/dev/vdc2基础上创建1G容量的逻辑分区/dev/vdc5。
操作步骤如下:
执行fdisk命令+磁盘对象名称/dev/vdc

输入n进行分区的创建

输入p查看配置信息,输入w进行配置持久化保存

也可以使用fdisk -l /dev/vdc命令查看磁盘的分区信息

核心点:
1.在进行分区容量配置提示“Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-6291455, default 6291455):”这一步,选择的单位可以扇区或者容量K、M、G等。
2.MBR分区表方式,不管分多少个主分区,逻辑分区只能从编号5开始,如本案例中是/dev/vdc5(因为MBR分区方式,最多4个主分区,逻辑分区必须从5开始)。
三、使用parted工具进行磁盘分区的方法
目标:是使用parted工具采用GPT分区表对磁盘/dev/vdb(容量1G)进行如下分区操作:
GPT分区表方式创建的分区都是独立、对等的分区,本案例就创建2个容量均为500M的分区,分别是/dev/vdb1,/dev/vdb2。
核心要点:使用parted工具进行分区,可以采用交互式配置方法,也可以采用非交互式配置方法。
1.使用parted命令的交互式分区方法:

输入mkpart创建2个分区

可以使用parted /dev/vdb -l命令查看创建好的分区

3.使用parted命令的非交互式分区方法:
非交互式分区又细分两种,一种是分步骤执行,另一种是直接一条命令执行。
第一种分步骤执行,可以分别创建分区表,然后再创建2个分区
(1)磁盘初始化为GPT分区表:parted -s /dev/vdb mklabel gpt
(2)创建第一个分区:parted -s /dev/vdb mkpart vdb1 0% 50%
(3)创建第二个分区:parted -s /dev/vdb mkpart vdb2 50% 100%

第二种还可以使用1条命令直接创建好2个分区:
parted -s /dev/vdb mklabel gpt mkpart vdb1 0% 50% mkpart vdb2 50% 100%

参数说明:-s = --script 静默/非交互,直接执行分区操作,无需手动回车确认。
四、分区删除操作方法
fdisk和parted这两工具,可以创建分区,也可以删除分区。
1.使用fdisk删除分区
2.使用parted删除分区

五、其他核心要点
1. fdisk:执行分区操作后,必须输入w才会保存,如果不使用w不保存直接退出,配置不会生效。
2. parted:执行分区操作后,配置就直接写入磁盘了,没有暂存或者说没有手动保存确认,执行操作无法撤销。这一点跟fdisk的机制有很大不同。
3.老版本的fdisk只支持MBR,只有现代版本支持GPT,但支持的不完善(比如对分区类型、超大磁盘、备份分区表等容易出错)。因此建议采用fdisk+MBR、parted+GPT。另外,还有gdisk这个工具是专门进行gpt分区的,只是没有parted通用。
4.查看linux系统中磁盘分区信息可以使用:
fdisk -l (容量小于2TB)
parted -l (容量大于2TB)
lsblk (树形结构)