Linux 新增磁盘挂载并扩容根逻辑卷(LVM)详细教程
本教程适用于 CentOS/RHEL 7+ 和 Ubuntu/Debian(需调整 xfs_growfs
为 resize2fs
如果是 ext4 文件系统)。
我们将完成以下步骤:
- 添加新磁盘并分区
- 创建物理卷(PV)并加入卷组(VG)
- 扩展逻辑卷(LV)并扩容文件系统
- 验证扩容结果
1. 检查当前磁盘和文件系统
查看现有磁盘和 LVM 信息:
lsblk # 查看所有块设备
df -h # 查看文件系统挂载情况
pvdisplay # 查看物理卷(PV)
vgdisplay # 查看卷组(VG)
lvdisplay # 查看逻辑卷(LV)
假设:
- 新磁盘为
/dev/sdb
- 根文件系统挂载在
/dev/mapper/centos-root
(CentOS)或/dev/mapper/ubuntu--vg-ubuntu--lv
(Ubuntu)
2. 对新磁盘分区
使用 fdisk
或 parted
进行分区(这里用 fdisk
):
fdisk /dev/sdb
在 fdisk
交互界面:
- 输入
n
创建新分区 - 选择
p
(主分区) - 默认分区号
1
- 直接回车(使用默认起始扇区)
- 直接回车(使用全部空间)
- 输入
t
修改分区类型为8e
(Linux LVM) - 输入
w
保存并退出
检查分区:
lsblk /dev/sdb
应该能看到 /dev/sdb1
。
3. 创建物理卷(PV)并加入卷组(VG)
3.1 创建物理卷
pvcreate /dev/sdb1
检查:
pvdisplay
3.2 扩展卷组(VG)
假设现有卷组名为 centos
(CentOS)或 ubuntu-vg
(Ubuntu),运行:
vgextend centos /dev/sdb1 # CentOS
# 或
vgextend ubuntu-vg /dev/sdb1 # Ubuntu
检查:
vgdisplay
应能看到 Free PE / Size
增加了。
4. 扩展逻辑卷(LV)并扩容文件系统
4.1 扩展逻辑卷
lvextend -l +100%FREE /dev/mapper/centos-root # CentOS
# 或
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv # Ubuntu
检查:
lvdisplay
4.2 扩容文件系统
如果是 XFS 文件系统(CentOS 默认)
xfs_growfs /dev/mapper/centos-root
如果是 ext4 文件系统(Ubuntu 默认)
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
5. 验证扩容结果
df -h
lsblk
应该能看到根文件系统(/
)的容量增加了。
总结
步骤 | 命令 | 说明 |
---|---|---|
查看磁盘 | lsblk , df -h | 确认新磁盘和当前 LVM 结构 |
分区 | fdisk /dev/sdb | 创建 /dev/sdb1 并设为 LVM 类型(8e) |
创建 PV | pvcreate /dev/sdb1 | 初始化物理卷 |
扩展 VG | vgextend <VG名> /dev/sdb1 | 将 PV 加入现有卷组 |
扩展 LV | lvextend -l +100%FREE <LV路径> | 扩展逻辑卷 |
扩容 FS | xfs_growfs 或 resize2fs | 调整文件系统大小 |
验证 | df -h , lsblk | 确认容量增加 |
常见问题
1. 如果 vgextend
报错 “Volume group not found”?
运行 vgdisplay
查看正确的卷组名。
2. 扩容后 df -h
不显示新空间?
确保执行了 xfs_growfs
或 resize2fs
。
3. 如何扩容非根逻辑卷?
替换 lvextend
和 xfs_growfs
中的 LV 路径即可。
这样,你就成功将新磁盘空间扩容到根文件系统了! 🎉