一、MBR 分区
1、主分区、扩展分区、逻辑分区的区别
在传统 MBR 分区表下,硬盘分区被划分为三类,核心差异体现在数量限制、功能用途上:
数量限制(顶层分区表项只有 4 个):
-
主分区:最多创建 4 个,直接占用 MBR 的顶层表项;
-
扩展分区:属于 "特殊主分区",最多创建 1 个(占用 1 个顶层表项);
-
逻辑分区:必须在扩展分区内创建,数量几乎无限制(仅受系统约束,一般支持数十个)。
功能用途:
-
主分区:可直接格式化、挂载,也能作为系统启动分区(安装操作系统);
-
扩展分区:仅作为 "容器",无法直接使用(不能格式化 / 挂载),用来承载逻辑分区;
-
逻辑分区:功能与主分区一致(可存储数据),但不能作为启动分区。
2、分区规划实操
以一块 20G 新硬盘(设备名/dev/sdb)为例,详细演示 MBR 分区的规划步骤(目标:2 个主分区 + 1 个扩展分区 + 2 个逻辑分区):
一、进入硬盘分区界面
fdisk /dev/sdb
# 此时终端会显示Command (m for help):的交互提示
二、创建第一个主分区(5G)
# 输入n(新建分区),回车;
# 输入p(选择 "主分区"),回车;
# 输入分区号1(第一个主分区),回车;
# 起始扇区:直接回车(默认从第一个可用扇区开始);
# 结束扇区:输入+5G(分区大小为 5G),回车;
# 此时第一个主分区/dev/sdb1创建完成。
三、创建第二个主分区(5G)
# 重复上述操作;
# 此时第二个主分区/dev/sdb2创建完成。
四、创建扩展分区(10G)
# 输入n,回车;
# 输入e(选择 "扩展分区"),回车;
# 输入分区号3(扩展分区占用第 3 个 MBR 表项),回车;
# 起始扇区:回车(默认);
# 结束扇区:回车(默认占用剩余所有空间,即 20G-5G-5G=10G)。
# 扩展分区/dev/sdb3创建完成。
五、在扩展分区内创建第一个逻辑分区(4G)
# 输入n,回车;
# 输入l(选择 "逻辑分区"),回车;
# 起始扇区:回车(默认);
# 结束扇区:输入+4G,回车。
# 第一个逻辑分区/dev/sdb5创建完成(逻辑分区编号从 5 开始,跳过 4)。
六、在扩展分区内创建第二个逻辑分区(剩余 6G)
# 输入n,回车;
# 输入l,回车;
# 起始扇区:回车(默认);
# 结束扇区:回车(默认占用扩展分区剩余空间,即 10G-4G=6G)。
# 第二个逻辑分区/dev/sdb6创建完成。
七、保存分区表
# 输入w(保存并退出 fdisk),回车。此时系统会加载新的分区表。
八、验证分区表
fdisk -l /dev/sdb
3、MBR 和 GPT 对比
MBR 分区表存在 2TB 容量上限、分区数量少的短板,GPT 分区表则完美解决了这些问题,且所有分区都是「主分区」,最多支持 128 个,规划更简单。
| 维度 | MBR 分区表 | GPT 分区表 |
|---|---|---|
| 支持最大硬盘容量 | 2TB | 18EB(几乎无容量限制) |
| 最大分区数量 | 4 个主分区(需扩展分区承载逻辑分区) | 128 个分区(无类型区分) |
| 启动支持 | 仅支持 BIOS 启动 | 支持 UEFI 启动(主流新设备) |
| 数据安全性 | 无冗余分区表,损坏易丢数据 | 分区表多份备份,自带校验 |
二、LVM 逻辑卷管理
传统分区(MBR/GPT)创建后大小固定,扩容/缩容需停机且操作复杂,而 LVM(Logical Volume Manager)通过「抽象层封装物理磁盘」,实现磁盘空间的动态调整。
1、LVM 核心概念
理解 LVM 先理清这 4 个核心组件,层级关系为:物理磁盘 → 物理卷 → 卷组 → 逻辑卷
-
物理卷(PV):被 LVM 格式化的物理磁盘 / 分区(如 /dev/sdb1、/dev/sdc),是 LVM 的最小物理单元;
-
卷组(VG):将多个 PV 合并成一个 "磁盘池",相当于把多块硬盘拼成一个大硬盘;
-
逻辑卷(LV):从 VG 中划分出的 "虚拟分区",可格式化、挂载使用,大小可动态调整;
-
物理扩展(PE):VG 的最小分配单元(默认 4MB),LV 的大小是 PE 的整数倍。
2、LVM 核心优势
- 动态扩容 / 缩容:LV 大小可在线调整(无需停机),比如 /data 分区满了,直接从 VG 中追加空间
- 跨盘整合:把多块小硬盘的 PV 加入同一个 VG,LV 可跨物理磁盘分配空间(传统分区只能在单块盘内)
- 快照备份:支持对 LV 创建快照(snapshot),快速备份 / 恢复数据
- 灵活管理:可将 LV 拆分为多个逻辑分区,也可合并多个 PV 为一个大 VG
3、LVM 实操
以 /dev/sdb(20G 硬盘)为例,完整实现 "创建 PV → 组建 VG → 划分 LV → 格式化挂载" 全流程
一、安装lvm工具
CentOS/RHEL 系统执行:yum/apt install -y lvm2
二、创建物理卷(PV):将整块/dev/sdb格式化为pv(也可选择单个分区如 /dev/sdb1)
# 创建pv
pvcreate /dev/sdb
# 查看pv
pvdisplay
三、创建卷组(VG):将/dev/sdb这个pv加入新卷组vg_data(卷组名自定义)
# 创建vg
vgcreate vg_data /dev/sdb
# 查看vg
vgdisplay vg_data
四、创建逻辑卷(LV):从vg_data中划分10G空间,创建名为lv_data的逻辑卷
# 创建lv
lvcreate -L 10G -n lv_data vg_data
# 查看lv
lvdisplay vg_data/lv_data
# LV 的设备路径:/dev/vg_data/lv_data(核心路径,后续格式化挂载用)
五、格式化并挂载lv:lv本质是 "虚拟分区",需格式化后才能使用(以 XFS 文件系统为例)
# 格式化文件系统
mkfs.xfs/dev/vg_data/lv_data
# 创建挂载目录
mkdir /mnt/lvm_data
# 临时挂载(重启失效):
mount /dev/vg_data/lv_data/mnt/lvm_data
# 永久挂载(编辑 /etc/fstab)
echo "/dev/vg_data/lv_data/mnt/lvm_data xfs defaults 0 0" >> /etc/fstab
# 配置生效
mount -a
六、lv在线扩容:当/mnt/lvm_data空间不足时,从vg中追加5G空间到lv(无需停机)
# 先确认vg有剩余空间
vgdisplay vg_data
# 扩容lv:将lv_data 扩容到15G
lvextend -L 15G /dev/vg_data/lv_data
# 也可直接追加5G
lvextend -L +5G /dev/vg_data/lv_data
# 刷新文件系统,XFS 文件系统为
xfs_growfs /dev/vg_data/lv_data
# ext4 文件系统为
resize2fs /dev/vg_data/lv_data
# 验证扩容结果
df -h /mnt/lvm_data
七、LVM 常用管理命令
# 查看所有pv
pvscan
pvdisplay
# 查看所有vg
vgscan
vgdisplay
# 查看所有lv
lvscan
lvdisplay
# 扩容vg(新增 pv)
pvcreate /dev/sdc
vgextend vg_data /dev/sdc
# 缩容lv(谨慎):先缩文件系统,再执行
lvreduce -L -2G /dev/vg_data/lv_data
# 删除lv:
lvremove /dev/vg_data/lv_data
# 删除vg:
vgremove vg_data
# 删除pv:
pvremove /dev/sdb