当前位置:首页 > 系统教程 > 正文

VMware虚拟机CentOS磁盘扩容完整指南

VMware虚拟机CentOS磁盘扩容完整指南

(解决growpart报错&LVM扩容)

VMware虚拟机CentOS磁盘扩容完整指南 VMware虚拟机扩容 CentOS磁盘扩容 LVM扩容 growpart报错解决 第1张

在使用VMware虚拟机运行CentOS时,随着数据增长,磁盘空间不足是常见问题。本文提供完整的VMware虚拟机扩容CentOS磁盘扩容方案,重点解决LVM扩容中遇到的growpart报错,即使是小白也能轻松操作。

一、准备工作

在开始之前,请确保:

  • 已安装VMware Tools(可选,但有助于识别磁盘变化)
  • 备份重要数据,以防误操作
  • 拥有root权限或sudo权限

二、检查当前磁盘状态

使用以下命令查看现有磁盘和LVM布局:

df -hlsblkpvsvgslvs

记录下需要扩容的卷组(VG)和逻辑卷(LV)名称。

三、在VMware中扩容磁盘

有两种方式:增加新硬盘扩展现有硬盘。推荐扩展现有硬盘(无需重新分区)。

  1. 关机:确保虚拟机处于关闭状态。
  2. 右键虚拟机 → 设置 → 硬盘 → 扩展 → 输入新大小(如从20G扩到50G)→ 确定。
  3. 开机,进入CentOS。

如果选择增加新硬盘,步骤类似:添加新硬盘→创建新分区→加入LVM。

四、在CentOS中识别新空间

重启后,使用 lsblk 查看磁盘大小是否更新。如果没有变化,尝试以下命令重新扫描SCSI设备:

echo "- - -" > /sys/class/scsi_host/host0/scan# 如果有多个host,逐个执行

或者使用 partprobe 重新读取分区表。

五、扩展分区(关键步骤,常见growpart报错)

如果扩展了现有硬盘,需要扩展对应的分区。使用 growpart 工具:

# 安装growpart(解决growpart报错:命令未找到)yum install -y cloud-utils-growpart# 扩展第一个分区(例如 /dev/sda3)growpart /dev/sda 3

常见growpart报错及解决:

  • FAILED: partition X is not the last partition:需要扩展的分区必须是最后一个分区,否则无法在线扩展。建议在添加硬盘时就规划好分区顺序。
  • unexpected output in sfdisk:通常是分区表类型问题,GPT分区需要 growpart 支持,可尝试使用 parted 手动扩展。
  • No space left on device:磁盘未真正扩容,检查VMware设置。

如果不想使用growpart,可用 fdisk 删除分区后重建(必须保持起始扇区一致),但操作复杂且风险高,不推荐小白尝试。

六、LVM扩容

无论哪种方式,最终都是扩展LVM的物理卷(PV)、卷组(VG)和逻辑卷(LV)。

情况A:扩展了原有硬盘并扩展了分区

  1. 扩展物理卷:pvresize /dev/sda3 (替换为你的分区)
  2. 检查VG空间:vgs
  3. 扩展逻辑卷:lvextend -l +100%FREE /dev/mapper/centos-root (将全部剩余空间给根逻辑卷)
  4. 调整文件系统:
    • ext4: resize2fs /dev/mapper/centos-root
    • xfs: xfs_growfs /

情况B:新增了一块硬盘

  1. 分区(可选):fdisk /dev/sdb 创建新分区,类型为8e(LVM)。
  2. 创建物理卷:pvcreate /dev/sdb1
  3. 加入卷组:vgextend centos /dev/sdb1 (centos替换为你的VG名)
  4. 扩展逻辑卷和文件系统同情况A的3、4步。

七、验证扩容结果

使用 df -h 查看文件系统大小,lsblk 查看分区大小,确认扩容成功。

VMware虚拟机CentOS磁盘扩容完整指南 VMware虚拟机扩容 CentOS磁盘扩容 LVM扩容 growpart报错解决 第2张

八、总结

通过以上步骤,你已成功对VMware虚拟机中的CentOS进行了LVM扩容,并解决了常见的growpart报错。记住,VMware虚拟机扩容CentOS磁盘扩容的关键在于正确识别新空间并扩展LVM组件。希望本指南对你有所帮助!