【 LVM 创建逻辑卷】

LVM 创建逻辑卷

一、整体流程(四层结构)

硬盘/分区 → PV(物理卷) → VG(卷组) → LV(逻辑卷) → 格式化挂载


二、详细步骤

步骤1:准备分区(指定 LVM 类型)

1. 分区表类型

  • MBR:分区类型 8e 表示 Linux LVM
  • GPT:分区类型 30 对应 Linux LVM

2. parted 创建 GPT 分区并开启 LVM 标志

bash 复制代码
parted /dev/vdb mklabel gpt          # 创建GPT分区表
parted -s /dev/vdb mkpart primary 1MiB 769MiB
parted -s /dev/vdb mkpart primary 770MiB 1026MiB
parted -s /dev/vdb set 1 lvm on
parted -s /dev/vdb set 2 lvm on

一、等价的 fdisk 命令(创建GPT分区+设置LVM类型)

fdisk 操作是交互式的,以下是完整的分步执行命令(逐行复制执行即可):

bash 复制代码
# 1. 进入fdisk交互模式,操作/dev/vdb磁盘
fdisk /dev/vdb
# 2. 进入交互后,依次输入以下指令(每行一个指令,回车执行):
g       # 创建GPT分区表(替代parted的mklabel gpt)
n       # 创建第一个分区
       # 分区号:直接回车(默认1)
       # 起始扇区:直接回车(默认从1MiB开始,对应parted的1MiB)
       # 结束扇区:输入+768M(对应parted的769MiB,因为fdisk起始是0,>768M即到769MiB位置)
t       # 修改分区类型
       # 分区号:输入1(修改第一个分区)
30      # 指定GPT的LVM类型编号(对应Linux LVM)
n       # 创建第二个分区
       # 分区号:直接回车(默认2)
       # 起始扇区:直接回车(默认接第一个分区末尾,对应770MiB)
       # 结束扇区:输入+256M(768M+256M=1024M,对应parted的>1026MiB,误差可忽略)
t       # 修改第二个分区类型
       # 分区号:输入2(修改第二个分区)
30      # 指定GPT的LVM类型编号
w       # 保存分区表并退出(关键:不保存则所有操作无效)
# 3. 让内核重新识别分区表(必做)
partprobe /dev/vdb

二、关键步骤解释

fdisk指令 作用说明 对应parted原命令
g 创建GPT分区表 parted /dev/vdb mklabel gpt
n(第一个分区) 创建分区1,大小768M parted -s /dev/vdb mkpart primary >1MiB 769MiB
t → 1 → 30 把分区1设为GPT的LVM类型 parted -s /dev/vdb set 1 lvm on
n(第二个分区) 创建分区2,大小256M parted -s /dev/vdb mkpart primary >770MiB 1026MiB
t → 2 → 30 把分区2设为GPT的LVM类型 parted -s /dev/vdb set 2 lvm on
w 保存并退出 parted的-s(非交互式)自动生效

三、注意事项

  1. 容量换算 :parted 中 1MiB~769MiB 实际是768MiB空间(结束-起始),所以fdisk中用 +768M 完全等价;

  2. GPT类型编号 :fdisk中GPT分区的Linux LVM类型编号是30(对应>GUID:E6D6D379-F507-44C2-A23C-238F2A3DF928);

  3. 验证结果 :执行完后用 fdisk -l /dev/vdb 查看,分区1/2的Type列会显示 Linux LVM,说明设置成功。

总结

  1. fdisk 创建GPT分区的核心是先输入g初始化GPT表,再用n建分区、t改>类型(30=LVM)、w保存;
  2. 容量计算要注意parted的"起始~结束"和fdisk的"+大小"的等价性;
  3. 操作后必须执行partprobe让内核识别新分区表,否则后续PV创建会报错。

3. fdisk 创建 LVM 分区

  • fdisk:n 创建 → t 修改类型 → 30(Linux LVM)→w保存

4. 重新识别分区

bash 复制代码
partprobe

步骤2:创建物理卷 PV

将分区标记为 PV,默认 PE 大小 4MiB。

bash 复制代码
pvcreate /dev/vdb1 /dev/vdb2

查看:

bash 复制代码
pvs
pvdisplay

步骤3:创建卷组 VG

将多个 PV 整合为一个统一存储空间。

bash 复制代码
vgcreate vg01 /dev/vdb1 /dev/vdb2

指定 PE 大小(可选):

bash 复制代码
vgcreate -s 16M vg_data /dev/vdb1

查看:

bash 复制代码
vgs
vgdisplay

步骤4:创建逻辑卷 LV

从 VG 中划分空间。

常用参数

  • -n:LV 名称
  • -L:按大小(M/G)
  • -l:按 PE 数量

示例

bash 复制代码
lvcreate -n lv01 -L 700M vg01
bash 复制代码
lvcreate -n lv_data -l 100 vg_data

查看:

bash 复制代码
lvs
lvdisplay

LV 路径两种写法:

  • /dev/vg名/lv名
  • /dev/mapper/vg名-lv名

步骤5:格式化 + 挂载

bash 复制代码
mkfs.xfs /dev/vg01/lv01
mkdir /mnt/data
mount /dev/vg01/lv01 /mnt/data

永久挂载(/etc/fstab)

复制代码
/dev/vg01/lv01  /mnt/data  xfs  defaults  1 2

生效:

bash 复制代码
mount -a

三、关键概念总结

  1. PV:物理卷,被 LVM 管理的磁盘/分区
  2. VG:卷组,把多个 PV 合并成一个大池子
  3. LV:逻辑卷,从 VG 中切出来使用的分区
  4. PE:物理扩展块,LVM 最小分配单位(默认 4M)
  5. MBR LVM 类型:8e
  6. GPT LVM 类型:30

四、命令速记

  • 分区:parted / fdisk / gdisk
  • PV:pvcreate pvs pvdisplay
  • VG:vgcreate vgs vgdisplay
  • LV:lvcreate lvs lvdisplay
  • 格式化:mkfs.xfs
  • 挂载:mount /etc/fstab
相关推荐
ShineWinsu16 分钟前
对于Redis:RDB持久化的解析
linux·数据库·redis·缓存·面试·持久化·rdb
Ruiery9 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
50万马克的面包9 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
wjkjpcba10 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭11 小时前
达梦事物特性及MVCC
linux·运维·数据库
羔羊++12 小时前
18_实验十七_其他命令与自定义启动变量
linux
DYWorker00114 小时前
Linux驱动:RK3568 GMAC + YT8531C 千兆以太网全流程解剖
linux
lisanmengmeng16 小时前
NRPE 添加命令(一)
linux·运维·服务器
树下水月17 小时前
Typora破解
linux·服务器·前端
沫璃染墨17 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理