在 Ubuntu 系统中使用 LVM 扩容根分区是一个常见的磁盘管理任务,以下是详细步骤:
前提条件
确保有未分配的磁盘空间或新添加的磁盘
系统已使用 LVM 管理根分区
扩容步骤
查看当前磁盘和分区情况
bash
# 查看磁盘使用情况
df -h
# 查看LVM卷组和逻辑卷情况
vgdisplay
lvdisplay
# 查看所有磁盘和分区
fdisk -l
如果有新磁盘,先创建物理卷
假设新磁盘为/dev/sdb
bash
# 创建物理卷
pvcreate /dev/sdb
# 将物理卷添加到卷组(替换为你的卷组名)
vgextend ubuntu-vg /dev/sdb
如果是已有磁盘的未分配空间,先创建分区
假设在/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
扩展逻辑卷
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
扩展文件系统
根据根分区的文件系统类型选择相应命令:
bash
# 如果是ext4文件系统
resize2fs /dev/ubuntu-vg/root
# 如果是xfs文件系统(需要先安装xfsprogs)
apt-get install xfsprogs
xfs_growfs /dev/ubuntu-vg/root
验证扩容结果
bash
df -h
以上步骤完成后,你的根分区应该已经成功扩容。请根据实际的卷组名、逻辑卷名和磁盘设备名调整命令中的参数。
不是/dev/ubuntu-vg/root,是ubuntu--vg-ubuntu--lv
如果你的逻辑卷名称是 ubuntu--vg-ubuntu--lv
,只需将之前步骤中的逻辑卷路径替换即可,具体操作如下:
调整后的扩容步骤
确认逻辑卷信息
bash
# 确认你的逻辑卷路径
lvdisplay | grep "LV Path"
# 应该会显示类似: /dev/ubuntu-vg/ubuntu-lv 或 /dev/mapper/ubuntu--vg-ubuntu--lv
扩展逻辑卷
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
扩展文件系统
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
验证结果
bash
df -h / # 查看根分区大小是否已更新
注意:ubuntu--vg-ubuntu--lv
是设备映射器 (mapper) 的命名方式,实际对应的逻辑卷路径通常是 /dev/ubuntu-vg/ubuntu-lv
,两种路径在命令中都可以使用,效果相同。操作时请根据 lvdisplay
命令显示的实际路径进行调整。