银河麒麟V10(Kylin V10)虚拟机根分区扩容实战:VMware 添加新磁盘 + LVM + XFS 在线扩展

在虚拟机环境中,磁盘空间不足是最常见的问题之一。本文基于 银河麒麟 V10 系统(类似 CentOS/RHEL,使用 LVM 管理根分区,文件系统为 XFS),详细记录了在 VMware Workstation 中通过添加一块新虚拟硬盘,并将其融入现有 LVM 卷组,实现根分区在线扩容的完整过程。

本文适用于:

  • 系统:银河麒麟 V10(或其他使用 LVM + XFS 的 Linux 发行版)
  • 虚拟化平台:VMware Workstation 17 Pro(其他版本类似)
  • 场景:根分区空间不足,想通过添加新磁盘扩容根分区(/)

重要提醒:所有磁盘操作都有风险,请务必提前备份重要数据或创建 VMware 快照!

一、初始环境

虚拟机原始磁盘:20G(/dev/sda)

分区情况:

  • /dev/sda1:1G(/boot)
  • /dev/sda2:19G(LVM 物理卷,类型 8e)

LVM 情况:

  • 卷组(VG):klas
  • 逻辑卷(LV):
    • klas-root:17G(根分区,XFS 文件系统)
    • klas-swap:2G

初始空间使用情况:

bash 复制代码
# df -h /
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/klas-root   17G   11G  7.0G   60% /

卷组已满:

bash 复制代码
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  klas   1   2   0 wz--n- <19.00g     0

根文件系统类型:

bash 复制代码
# blkid /dev/mapper/klas-root
/dev/mapper/klas-root: UUID="533ebcf0-7d8d-4914-ba59-fa08d6459ba0" TYPE="xfs"

二、扩容方案

  1. 在 VMware 中添加一块 50G 新虚拟硬盘(/dev/sdb)
  2. 对新磁盘分区(创建 Linux LVM 类型分区)
  3. 将新分区初始化为 LVM 物理卷(PV)
  4. 将新 PV 加入现有卷组 klas
  5. 扩展根逻辑卷(klas-root)
  6. 在线扩展 XFS 文件系统

整个过程无需重启,完全在线操作。

三、详细操作步骤

步骤1:VMware 中添加新磁盘(略)

关闭虚拟机 → 编辑虚拟机设置 → 添加硬盘 → 创建 50G 新磁盘 → 启动虚拟机。

启动后可见新磁盘:

bash 复制代码
# fdisk -l
...
Disk /dev/sdb:50 GiB,...

步骤2:对新磁盘分区(创建 Linux LVM 类型分区)

bash 复制代码
fdisk /dev/sdb

操作流程:

  • n → 新建分区
  • p → 主分区
  • 1 → 分区号 1
  • 起点扇区直接回车(默认)
  • 末尾扇区直接回车(使用全部空间)
  • t → 修改分区类型
  • 8e → Linux LVM
  • w → 写入并退出

验证:

bash 复制代码
# fdisk -l /dev/sdb
Disk /dev/sdb:50 GiB,...
设备       启动   起点      末尾      扇区   大小 Id 类型
/dev/sdb1        2048 104857599 104855552    50G 8e Linux LVM

步骤3:初始化物理卷(PV)

bash 复制代码
pvcreate /dev/sdb1

验证:

bash 复制代码
# pvs
  PV         VG   Fmt  Attr   PSize   PFree
  /dev/sda2  klas lvm2 a--  <19.00g     0
  /dev/sdb1       lvm2 a--   50.00g 50.00g

步骤4:将新 PV 加入现有卷组 klas

bash 复制代码
vgextend klas /dev/sdb1

验证:

bash 复制代码
# vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  klas   2   2   0 wz--n- <69.00g <50.00g   # 总大小变为约69G

步骤5:扩展根逻辑卷(将新空间全部加入根分区)

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

(也可指定大小,如 lvextend -L +49G /dev/mapper/klas-root

验证:

bash 复制代码
# lvs
# 或
# lvdisplay /dev/klas/root

根 LV 大小应变为约 67G。

步骤6:在线扩展 XFS 文件系统(关键一步)

bash 复制代码
xfs_growfs /

此命令会立即将新增空间应用到根文件系统。

步骤7:最终验证

bash 复制代码
# df -h /
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/klas-root   67G   11G   57G   16% /

成功!根分区从 17G 扩容到 67G,可用空间 57G。

完整状态检查:

bash 复制代码
# pvs          # 两个 PV
# vgs          # VG 约69G
# lvs          # root LV 约67G
# df -h        # 根分区已增大

四、注意事项

  1. 备份优先:操作前务必创建 VMware 快照或备份重要数据。
  2. XFS 文件系统必须使用 xfs_growfs ,不能用 resize2fs
  3. 整个过程无需重启,扩展后空间立即可用。
  4. 后续再扩容 :只需再添加磁盘,从 pvcreate 开始重复后续步骤即可。
  5. 如果新磁盘已被挂载 :执行 pvcreate 前需先 umount

五、总结

通过 LVM 的强大灵活性,我们只需添加一块新磁盘,就能轻松实现根分区的在线扩容,无需重新安装系统或迁移数据。这在虚拟机环境中尤其实用。

本次扩容从 17G → 67G,整个过程不到 10 分钟,操作简单且安全。

相关推荐
ZFB00014 天前
【麒麟桌面系统】V10-SP1 2503 系统知识——插入U盘(移动硬盘)为只读状态
linux·运维·kylin
!沧海@一粟!5 天前
Kylin/Linux 服务器健康一键巡检工具
linux·服务器·kylin
苏叶新城8 天前
麒麟操作系统(Kylin OS)V10、V11发展历程
操作系统·kylin
J2虾虾10 天前
在Kylin Server上安装并配置MariaDB
大数据·mariadb·kylin
紫郢剑侠16 天前
使用Samba服务让kylin| 银河麒麟系统电脑向Windows系统电脑共享文件(下)Windows系统端配置
大数据·kylin
NotStrandedYet18 天前
《国产系统运维笔记》第8期:挑战国产化流媒体部署——银河麒麟+龙芯架构编译SRS实战全记录
运维·kylin·国产化·银河麒麟·龙芯·信创运维·srs编译安装
ZFB000122 天前
【麒麟桌面系统】V10-SP1 2503 系统知识——救援模式显示异常
linux·kylin
紫郢剑侠1 个月前
【C语言编程gcc@Kylin | 麒麟 】 1:实现Hello world程序
大数据·kylin
百炼成神 LV@菜哥1 个月前
Kylin Linux V10 aarch64安装DBeaver
java·linux·服务器·kylin
百炼成神 LV@菜哥1 个月前
Kylin Linux V10 aarch64 安装启动 TigerVNC-Server
linux·服务器·kylin