跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

VMware CentOS 磁盘扩容实战:LVM 流程与 growpart 问题解决

本文记录在 VMware 环境下对 CentOS 7 虚拟机根目录进行磁盘扩容的完整流程。操作分为两步:首先在虚拟化平台扩展虚拟硬盘容量,随后在操作系统内部通过 parted 调整分区大小,利用 pvresize 更新物理卷,再通过 lvextend 扩展逻辑卷,最后使用 xfs_growfs 刷新文件系统。针对 growpart 工具因 util-linux 版本过低导致的报错问题,提供了使用 parted 替代的解决方案。操作前建议创建快照以防数据丢失,确保系统从 26G 成功扩容至 76G。

花里胡哨发布于 2026/2/18更新于 2026/10/1885 浏览
VMware CentOS 磁盘扩容实战:LVM 流程与 growpart 问题解决

VMware CentOS 磁盘扩容实战

在日常运维中,虚拟机磁盘空间不足是常见问题。本文记录如何为运行中的 CentOS 7 虚拟机安全地扩容根目录,涵盖从虚拟化平台到操作系统内部的全流程,并解决实际操作中可能遇到的 growpart 报错问题。

环境与背景

  • 虚拟化平台:VMware Workstation 16/17 (ESXi 步骤类似)
  • 客户机系统:CentOS 7.x
  • 初始磁盘:20G
  • 目标磁盘:80G
  • 关键特征:系统采用 LVM 分区结构

扩容前使用 lsblk 和 df -h 查看磁盘情况:

$ sudo lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  80G  0 disk 
├─sda1   8:1    0   1G  0 part /boot
└─sda2   8:2    0  29G  0 part 
  ├─centos-root 253:0 0 26G 0 lvm /
  └─centos-swap 253:1 0 3G  0 lvm [SWAP]

第一阶段:VMware 层面扩容

⚠️ 警告:操作前请务必对虚拟机创建快照或备份,以防数据丢失!

  1. 关闭虚拟机:确保目标 CentOS 虚拟机已完全关机(Power Off),而不是挂起(Suspend)。
  2. 编辑设置:在 VMware 中,右键点击虚拟机 -> '设置' (Settings)。
  3. 扩展磁盘:选择'硬盘' (Hard Disk) -> 点击'扩展' (Expand) 按钮。
  4. 设置容量:输入大于当前值的容量(例如从 20G 扩展到 80G)。点击确定,等待完成。

至此,虚拟硬盘已变大,但操作系统还无法使用新空间。

第二阶段:CentOS 系统内部扩容

启动 CentOS 虚拟机并登录。以下是操作的核心步骤。

标准 LVM 扩容流程

这是最正确、最安全的流程,适用于标准的 LVM 分区结构。

1. 确认磁盘状态 首先确认 VMware 扩容是否成功,并看清磁盘结构。

sudo lsblk
sudo parted /dev/sda print

从输出可以清晰看到:

  • /dev/sda 磁盘已变为 80G。
  • 但分区 /dev/sda2 仍为 31.1G,这意味着有大量空闲空间位于 sda2 分区之后。
  • /dev/sda2 的类型是 lvm,我们的根文件系统实际在逻辑卷 centos-root 上。

结论:我们需要将磁盘末端的空闲空间 -> 加入到 sda2 分区 -> 被 LVM 物理卷识别 -> 将新空间加入到 centos 卷组 -> 最后扩展 centos-root 逻辑卷及其文件系统。

2. 扩展分区 使用 parted 工具将 sda2 分区扩展到磁盘末尾。

sudo parted /dev/sda
(parted) resizepart 2 -1 # 将第 2 个分区扩展到所有剩余空间
(parted) quit

注意:-1 表示扩展到最大可用空间。如果 resizepart 命令不可用(极旧版本),需使用 rm 和 mkpart 重建分区,但风险极高,不推荐。

3. 刷新内核分区表 让系统在不重启的情况下识别新的分区大小。

sudo partprobe /dev/sda

4. 扩展物理卷 (PV) /dev/sda2 本身是一个物理卷,我们需要调整其大小。

sudo pvresize /dev/sda2

执行后,使用 sudo pvdisplay 查看,会发现 Free PE 空间增加了。

5. 扩展逻辑卷 (LV) 将卷组中的空闲空间全部分配给 centos-root 逻辑卷。

# 查看所有空闲空间
sudo vgdisplay
# 将所有空闲空间扩展到 centos-root 逻辑卷
sudo lvextend -l +100%FREE /dev/mapper/centos-root

6. 扩展文件系统 最后一步,扩展逻辑卷上的文件系统,才能真正使用空间。

# CentOS 7 默认使用 XFS 文件系统
sudo xfs_growfs /
# 如果是 Ext4 文件系统,请使用以下命令:
# sudo resize2fs /dev/mapper/centos-root

7. 验证结果 运行命令检查最终成果:

df -h
lsblk

输出应显示根目录 / 的挂载点大小已变为 76G 左右,扩容成功!

备用方案:解决 growpart 报错

如果在非 LVM 系统上使用传统方法,可能会遇到 growpart 报错。

错误信息:

sudo growpart /dev/sda 2
unexpected output in sfdisk --version [sfdisk, 来自 util-linux 2.23.2]

原因:CentOS 7 自带的 util-linux 版本过低,与 growpart 脚本不兼容。

解决方案:直接使用 parted 替代(如上文所示),这是最佳解决方案。或者尝试更新 cloud-utils-growpart 包:

sudo yum update cloud-utils-growpart

总结与注意事项

  • 核心要点:操作前一定要用 lsblk 和 df -T 命令搞清楚磁盘和文件系统结构。识别 LVM 是关键,它决定了后续完全不同的操作流程。
  • 推荐流程:对于现代 CentOS/RHEL 系统,标准 LVM 扩容流程 (parted -> pvresize -> lvextend -> xfs_growfs) 是唯一正确路径。
  • 备份!:任何磁盘分区操作都有极高风险,操作前务必为虚拟机创建快照。
  • 工具选择:放弃陈旧的 growpart 和 fdisk 脚本,parted 是更强大、更现代的命令行分区工具。

目录

  1. VMware CentOS 磁盘扩容实战
  2. 环境与背景
  3. 第一阶段:VMware 层面扩容
  4. 第二阶段:CentOS 系统内部扩容
  5. 标准 LVM 扩容流程
  6. 查看所有空闲空间
  7. 将所有空闲空间扩展到 centos-root 逻辑卷
  8. CentOS 7 默认使用 XFS 文件系统
  9. 如果是 Ext4 文件系统,请使用以下命令:
  10. sudo resize2fs /dev/mapper/centos-root
  11. 备用方案:解决 growpart 报错
  12. 总结与注意事项

更多推荐文章

查看全部
  • Java 算法刷题总结:数组、链表、树与动态规划
  • Apache IoTDB 全场景部署:跨端边云的时序数据库实践
  • FFT 与 DFT 原理及算法解析
  • 微软发布 AutoDev AI 程序员,自主完成软件工程任务性能提升 30%
  • 基于 Spring Boot 3.3 的 Java AI Agent Gateway 实践
  • IT6604 单链路 HDMI 1.4 接收芯片技术解析
  • 前端面试高频场景题汇总
  • TrendRadar 本地部署:打造个人专属 AI 热点情报系统
  • 前端多版本零 404 部署:根因分析与工程化落地
  • 全球老龄化背景下的护理机器人发展现状与趋势
  • .NET 集成 GoView 低代码可视化大屏实战指南
  • MySQL MVCC 实现原理
  • 27 岁自学 Python 转行可行性与入行时机分析
  • Llama3 微调实践教程(XTuner 版)
  • ChatGLM3 大模型本地化部署与应用开发技术指南
  • 算法:位运算(三)
  • 前缀和算法详解与应用
  • 2025年6月GESP C++七级真题及题解:选择题与判断题
  • 基于 CTCM 算法的复杂城市地形下无人机避障三维航迹规划
  • 哈希表实现详解:开放定址法与链地址法

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online