【 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. 容量换算parted1MiB~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
相关推荐
予枫的编程笔记2 小时前
【Linux高级篇】搞定文件句柄+TIME_WAIT,Linux内核初步调优实操指南
linux·linux运维·ulimit·time_wait·sysctl.conf·内核调优·服务器优化
c***03232 小时前
linux centos8 安装redis 卸载redis
linux·运维·redis
柏木乃一2 小时前
Linux进程信号(2):信号产生part2
linux·运维·服务器·c++·信号处理·信号·异常
小义_3 小时前
【RH134知识点问答题】第13章 运行容器
linux·云原生
q***76564 小时前
ubuntu 安装 Redis
linux·redis·ubuntu
云道轩4 小时前
在Rocky Linux 上在线安装OpenClaw 2026.2.13
linux·运维·人工智能·智能体·openclaw
zl_dfq4 小时前
Linux 之 【多线程】(STL、智能指针与线程安全、读者写者问题)
linux
mqffc4 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
IT 行者5 小时前
OpenClaw 浏览器自动化测试的那些坑(一):Linux Snap 版本的 Chromium 无法使用托管模式
linux·运维·服务器·人工智能