吴晓阳
发布于 2025-09-14 / 4 阅读
0

Ubuntu lvm 磁盘扩容

在 Ubuntu 系统中使用 LVM 扩容根分区是一个常见的磁盘管理任务,以下是详细步骤:

前提条件

  1. 确保有未分配的磁盘空间或新添加的磁盘

  2. 系统已使用 LVM 管理根分区

扩容步骤

  1. 查看当前磁盘和分区情况


bash

# 查看磁盘使用情况
df -h

# 查看LVM卷组和逻辑卷情况
vgdisplay
lvdisplay

# 查看所有磁盘和分区
fdisk -l


  1. 如果有新磁盘,先创建物理卷
    假设新磁盘为/dev/sdb


bash

# 创建物理卷
pvcreate /dev/sdb

# 将物理卷添加到卷组(替换为你的卷组名)
vgextend ubuntu-vg /dev/sdb


  1. 如果是已有磁盘的未分配空间,先创建分区
    假设在/dev/sda上有未分配空间


bash

# 进入分区工具
fdisk /dev/sda

# 在交互模式下:
# 1. 输入n创建新分区
# 2. 选择分区类型(默认主分区)
# 3. 选择分区号和起始位置(默认即可)
# 4. 输入分区大小或直接按回车使用全部空间
# 5. 输入t修改分区类型为Linux LVM(代码8e)
# 6. 输入w保存更改

# 创建物理卷
pvcreate /dev/sdaX  # X是新创建的分区号

# 将物理卷添加到卷组
vgextend ubuntu-vg /dev/sdaX


  1. 扩展逻辑卷


bash

# 查看卷组可用空间
vgdisplay ubuntu-vg | grep "Free PE / Size"

# 扩展逻辑卷(替换为你的逻辑卷路径)
# 方法1: 使用全部可用空间
lvextend -l +100%FREE /dev/ubuntu-vg/root

# 方法2: 指定扩展大小,例如扩展10G
lvextend -L +10G /dev/ubuntu-vg/root


  1. 扩展文件系统
    根据根分区的文件系统类型选择相应命令:


bash

# 如果是ext4文件系统
resize2fs /dev/ubuntu-vg/root

# 如果是xfs文件系统(需要先安装xfsprogs)
apt-get install xfsprogs
xfs_growfs /dev/ubuntu-vg/root


  1. 验证扩容结果


bash

df -h


以上步骤完成后,你的根分区应该已经成功扩容。请根据实际的卷组名、逻辑卷名和磁盘设备名调整命令中的参数。

不是/dev/ubuntu-vg/root,是ubuntu--vg-ubuntu--lv

如果你的逻辑卷名称是 ubuntu--vg-ubuntu--lv,只需将之前步骤中的逻辑卷路径替换即可,具体操作如下:

调整后的扩容步骤

  1. 确认逻辑卷信息


bash

# 确认你的逻辑卷路径
lvdisplay | grep "LV Path"
# 应该会显示类似:  /dev/ubuntu-vg/ubuntu-lv 或 /dev/mapper/ubuntu--vg-ubuntu--lv


  1. 扩展逻辑卷


bash

# 查看卷组可用空间
vgdisplay ubuntu-vg | grep "Free PE / Size"

# 方法1: 使用全部可用空间
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 或使用映射路径
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

# 方法2: 指定扩展大小(例如增加20G)
lvextend -L +20G /dev/ubuntu-vg/ubuntu-lv


  1. 扩展文件系统


bash

# 如果是ext4文件系统
resize2fs /dev/ubuntu-vg/ubuntu-lv
# 或
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

# 如果是xfs文件系统
xfs_growfs /dev/ubuntu-vg/ubuntu-lv
# 或
xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv


  1. 验证结果


bash

df -h /  # 查看根分区大小是否已更新


注意:ubuntu--vg-ubuntu--lv 是设备映射器 (mapper) 的命名方式,实际对应的逻辑卷路径通常是 /dev/ubuntu-vg/ubuntu-lv,两种路径在命令中都可以使用,效果相同。操作时请根据 lvdisplay 命令显示的实际路径进行调整。