磁盘管理(MBR、LVM)

一、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
相关推荐
kylezhao201916 小时前
S7-1200 CPU 与 S7-200 SMART S7通信(S7-1200 作为服务器)
运维·服务器
摸鱼仙人~16 小时前
大模型文章生成的风格个性化与多文体写作:一套可落地的方法论
linux·运维·服务器
xybDIY16 小时前
亚马逊云 Organizations 组织 Link 账号关联与解绑自动化解决方案
运维·自动化·云计算·aws
慕容雪_16 小时前
运维笔记-网络【属性】-【共享】中没有【家庭网络连接(H)】的选项
运维·网络·共享
AC赳赳老秦17 小时前
Shell 脚本批量生成:DeepSeek 辅助编写服务器运维自动化指令
运维·服务器·前端·vue.js·数据分析·自动化·deepseek
学Linux的语莫17 小时前
linux的root目录缓存清理
linux·运维·服务器
oMcLin17 小时前
如何在 SUSE Linux Enterprise Server 15 上部署并优化 K3s 集群,提升轻量级容器化应用的资源利用率?
linux·运维·服务器
Run Out Of Brain17 小时前
解决nginx代理配置下wordpress的 /wp-admin/返回 302 重定向到登录页问题
运维·nginx
Ghost Face...18 小时前
深入解析YT6801驱动模块架构
linux·运维·服务器