将 /dev/vdb1 的空间全部合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区)

要将 /dev/vdb1 的 1TB 空间合并到 /dev/mapper/centos-root(即扩展 CentOS 的根分区),可以采用 LVM(逻辑卷管理) 的方式。以下是详细步骤:


步骤 1:检查当前磁盘和 LVM 情况

1.1 确认 /dev/vdb1 是否已格式化并挂载

bash 复制代码
lsblk                 # 查看磁盘和分区情况
df -h                 # 查看挂载情况

如果 /dev/vdb1 已经挂载,需要先卸载:

bash 复制代码
umount /dev/vdb1

1.2 检查当前 LVM 结构

bash 复制代码
pvdisplay             # 查看物理卷(PV)
vgdisplay             # 查看卷组(VG)
lvdisplay             # 查看逻辑卷(LV)

记录 VG Name(如 centos),后面会用到。


步骤 2:将 /dev/vdb1 加入 LVM

2.1 创建物理卷(PV)

bash 复制代码
pvcreate /dev/vdb1

检查是否成功:

bash 复制代码
pvdisplay

2.2 扩展卷组(VG)

假设你的 VG 名称是 centos(根据 vgdisplay 输出调整):

bash 复制代码
vgextend centos /dev/vdb1

检查 VG 是否扩展:

bash 复制代码
vgdisplay

步骤 3:扩展逻辑卷(LV)

3.1 查看 /dev/mapper/centos-root 对应的 LV

bash 复制代码
lvdisplay

通常,/dev/mapper/centos-root 对应的 LV 路径是 /dev/centos/root

3.2 扩展 LV

bash 复制代码
lvextend -l +100%FREE /dev/centos/root

-l +100%FREE 表示使用所有剩余空间)

3.3 调整文件系统大小

bash 复制代码
sudo lsblk -f
  • 输出示例

    复制代码
    NAME   FSTYPE LABEL UUID                                 MOUNTPOINT
    vdb1   ext4         a1b2c3d4-...                        /mnt/data
    • FSTYPE 列中查看文件系统类型(ext4 即为目标格式)。
如果是 xfs 文件系统
bash 复制代码
xfs_growfs /dev/mapper/centos-root
如果是 ext4 文件系统
bash 复制代码
resize2fs /dev/mapper/centos-root

步骤 4:验证

bash 复制代码
df -h                 # 检查根分区是否扩容成功
lsblk                 # 确认 LVM 结构

可能出现的问题

1. /dev/vdb1 已经有文件系统

如果 /dev/vdb1 已经有数据,需要先备份并清除文件系统签名:

bash 复制代码
wipefs -a /dev/vdb1   # 清除文件系统签名

2. VG 没有足够空间

如果 vgdisplay 显示 Free PE / Size 为 0,可能是 /dev/vdb1 未正确加入 VG,重新检查 vgextend

3. 文件系统无法调整

  • 确保文件系统支持在线调整(xfsext4 支持)。
  • 如果无法调整,可以尝试在救援模式下操作。

总结

步骤 命令
检查磁盘 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 应该已经成功扩容。

相关推荐
子牙老师几秒前
硬盘第一关:MBR VS GPT
linux·操作系统·文件系统
云飞云共享云桌面27 分钟前
三维设计办公资源如何共享集中和安全管控?
运维·服务器·数据库·安全·自动化·制造
图乐aj1 小时前
kafka 运维基础知识
运维·kafka
郝学胜-神的一滴1 小时前
Qt QPushButton 样式完全指南:从基础到高级实现
linux·开发语言·c++·qt·程序人生
jyan_敬言1 小时前
【Docker】定义和运行多容器应用程序
运维·docker·容器·学习方法
傲世(C/C++,Linux)1 小时前
Linux系统编程——进程通信之有名管道
android·linux·运维
雷工笔记2 小时前
计算机更换硬盘并新装系统
运维·学习
权泽谦2 小时前
从 Linux 到 Docker:一条通向 DevOps 的进阶之路
linux·docker·devops
运维成长记2 小时前
11月份运维面试题
运维
yuanManGan2 小时前
走进Linux的世界:进程优先级
linux·运维·服务器