将 /dev/vdb1 的空间全部合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区)
要将 /dev/vdb1 的 1TB 空间合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区),可以采用 LVM(逻辑卷管理) 的方式。以下是详细步骤:
步骤 1:检查当前磁盘和 LVM 情况
1.1 确认 /dev/vdb1 是否已格式化并挂载
lsblk # 查看磁盘和分区情况
df -h # 查看挂载情况
如果 /dev/vdb1 已经挂载,需要先卸载:
umount /dev/vdb1
1.2 检查当前 LVM 结构
pvdisplay # 查看物理卷(PV)
vgdisplay # 查看卷组(VG)
lvdisplay # 查看逻辑卷(LV)
记录 VG Name(如 centos),后面会用到。
步骤 2:将 /dev/vdb1 加入 LVM
2.1 创建物理卷(PV)
pvcreate /dev/vdb1
检查是否成功:
pvdisplay
2.2 扩展卷组(VG)
假设你的 VG 名称是 centos(根据 vgdisplay 输出调整):
vgextend centos /dev/vdb1
检查 VG 是否扩展:
vgdisplay
步骤 3:扩展逻辑卷(LV)
3.1 查看 /dev/mapper/centos-root 对应的 LV
lvdisplay
通常,/dev/mapper/centos-root 对应的 LV 路径是 /dev/centos/root。
3.2 扩展 LV
lvextend -l +100%FREE /dev/centos/root
(-l +100%FREE 表示使用所有剩余空间)
3.3 调整文件系统大小
sudo lsblk -f
- 输出示例:
NAME FSTYPE LABEL UUID MOUNTPOINT vdb1 ext4 a1b2c3d4-... /mnt/data- 在
FSTYPE列中查看文件系统类型(ext4即为目标格式)。
- 在
如果是 xfs 文件系统
xfs_growfs /dev/mapper/centos-root
如果是 ext4 文件系统
resize2fs /dev/mapper/centos-root
步骤 4:验证
df -h # 检查根分区是否扩容成功
lsblk # 确认 LVM 结构
可能出现的问题
1. /dev/vdb1 已经有文件系统
如果 /dev/vdb1 已经有数据,需要先备份并清除文件系统签名:
wipefs -a /dev/vdb1 # 清除文件系统签名
2. VG 没有足够空间
如果 vgdisplay 显示 Free PE / Size 为 0,可能是 /dev/vdb1 未正确加入 VG,重新检查 vgextend。
3. 文件系统无法调整
- 确保文件系统支持在线调整(
xfs和ext4支持)。 - 如果无法调整,可以尝试在救援模式下操作。
总结
| 步骤 | 命令 |
|---|---|
| 检查磁盘 | lsblk, df -h |
| 创建 PV | pvcreate /dev/vdb1 |
| 扩展 VG | vgextend centos /dev/vdb1 |
| 扩展 LV | lvextend -l +100%FREE /dev/centos/root |
| 调整文件系统 | xfs_growfs / 或 resize2fs /dev/mapper/centos-root |
| 验证 | df -h, lsblk |
完成后,/dev/mapper/centos-root 应该已经成功扩容。
