将 /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
应该已经成功扩容。