银河麒麟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 分钟,操作简单且安全。

相关推荐
凯小默3 天前
国产麒麟系统 kylin 里面 nwjs 怎么打包安装应用并且怎么支持 arm 跟 amd 两种内核?
kylin·nwjs
起个名字总是说已存在5 天前
Kylin Linux麒麟环境docker启动容器报错permission denied解决
linux·docker·kylin
被闲置的鱼11 天前
麒麟OS各种环境安装脚本,达梦数据库DM8、JDK安装、Nginx安装、vsftpd安装、硬盘挂载一件安装脚本
java·linux·数据库·nginx·kylin
峰兄19830519 天前
基于容积卡尔曼滤波的轮胎侧向力与非线性修正技术研究:MPC路径跟踪控制优化实践
kylin
a123560mh1 个月前
国产信创操作系统银河麒麟常见软件适配(MongoDB、 Redis、Nginx、Tomcat)
linux·redis·nginx·mongodb·tomcat·kylin
a123560mh1 个月前
服务器操作系统常见的系统参数调优方法
linux·服务器·网络·kylin
java_logo2 个月前
Docker 部署银河麒麟(Kylin Linux)全流程教程
linux·运维·阿里云·docker·容器·kylin
心灵宝贝2 个月前
申威服务器安装Nacos 2.0.3 RPM包详细步骤(Kylin V10 sw_64架构)附安装包
服务器·架构·kylin
指尖@韶华2 个月前
【Kylin Linux root 密码故障处置指南(超限重试 + 改回原密码)】
linux·运维·kylin