收不到推送?别急,先点个⭐星标,系统才知道你是真爱。
我是虚拟化时代君,一个把服务器当朋友的技术宅。这里专注分享 虚拟化 / 云计算 / 运维实战 / 脚本技巧 / 软件工具 / 白嫖资源,能少踩坑的,绝不让你多走一步弯路。
每天更新,不定时掉福利,技术路上我们一起卷。

事情起因很简单:一台跑了 Telegram 告警机器人 的 Rocky Linux 10 虚拟机,根分区使用率冲到 63%,再涨下去日志就要爆。VMware 那边直接把 vmdk 从 20G 扩到 30G,整个过程在 vCenter 点几下就完了。
但接下来才是真正的活——Linux 系统里 lsblk 看到的还是 20G。
扩盘这件事,VMware 只完成了一半。剩下的一半在系统里:内核要识别、分区要重画、LVM 要刷新、文件系统要在线扩。任何一步漏了,10G 都是空气。
本文是这次操作的完整复盘:6 步把 17G 扩到 27G,零停机。然后把同样的方法论铺开到另外 6 种常见场景——LVM+ext4、非 LVM、新加独立硬盘、阿里云/腾讯云/AWS 云盘——一篇收齐。
[root@vmrocky ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsda 8:0 0 20G 0 disk├─sda1 8:1 0 600M 0 part /boot/efi├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 18.4G 0 part ├─rl-root 253:0 0 16.4G 0 lvm / └─rl-swap 253:1 0 2G 0 lvm [SWAP][root@vmrocky ~]# df -hT /Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/rl-root xfs 17G 11G 6.1G 63% /结构:sda3 → PV → VG(rl) → LV(rl-root) → xfs → /
VMware 把 vmdk 从 20G 扩到 30G,但 Linux 没感知,lsblk 还是 20G。
# 扫描所有 SCSI host,发现新设备 / 新容量for h in /sys/class/scsi_host/host*/scan; do echo '- - -' > $h; done# 强制 sda 重读自己的容量echo 1 > /sys/class/block/sda/device/rescan验证:
[root@vmrocky ~]# lsblk /dev/sdasda 8:0 0 30G 0 disk ← 已变成 30G├─sda1 ...├─sda2 ...└─sda3 8:3 0 18.4G 0 part ← 分区还是 18.4G,下一步处理sda 容量更新了,但分区表里的 sda3 还停在老位置。Rocky 10 默认没装 growpart,先装:
dnf install -y cloud-utils-growpart然后:
growpart /dev/sda 3# 输出:CHANGED: partition=3 start=3328000 old: size=38612992 ... new: size=59586527growpart 自动把分区扩到磁盘末尾,无需手算扇区,在线安全(不会动 sda1/sda2)。
fdisk / parted?两者也行,但 fdisk 要删了重建分区(步骤多易错),parted resizepart 交互式且不同版本行为有差异。growpart 是云镜像标配,最稳。pvresize /dev/sda3# 输出:Physical volume "/dev/sda3" changed# 1 physical volume(s) resizedPV 现在感知到底层分区变大了,VG 自动多出 10G 可用空间。
lvextend -l +100%FREE /dev/rl/root# 输出:Size of logical volume rl/root changed from 16.41 GiB to 26.41 GiB-l +100%FREE 表示吃掉 VG 里所有剩余 extents。
也可写成 -L +10G(精确加 10G)。
xfs 只能扩、不能缩,且必须在挂载状态下扩:
xfs_growfs /# 输出:data blocks changed from 4301824 to 6923264[root@vmrocky ~]# df -hT /Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/rl-root xfs 27G 11G 16G 40% /完成 — / 从 17G → 27G,使用率 63% → 40%,零停机。
确认是 LVM + xfs 且只有一个数据盘 sda 的场景:
dnf install -y cloud-utils-growpart && \for h in /sys/class/scsi_host/host*/scan; do echo '- - -' > $h; done && \echo 1 > /sys/class/block/sda/device/rescan && \growpart /dev/sda 3 && \pvresize /dev/sda3 && \lvextend -l +100%FREE /dev/$(vgs --noheadings -o vg_name | tr -d ' ')/root && \xfs_growfs / && \df -hT /前 4 步完全一样(rescan → growpart → pvresize → lvextend),最后一步换:
resize2fs /dev/mapper/rl-rootresize2fs 对 ext2/3/4 都适用,在线扩容也支持。
例如 /dev/sda1 直接挂在 /data:
# 1. rescanfor h in /sys/class/scsi_host/host*/scan; do echo '- - -' > $h; doneecho 1 > /sys/class/block/sda/device/rescan# 2. 扩分区growpart /dev/sda 1# 3. 扩文件系统(xfs)xfs_growfs /datagrowpart /dev/sda 1resize2fs /dev/sda1加的是 sdb,需要:
# 1. 识别for h in /sys/class/scsi_host/host*/scan; do echo '- - -' > $h; donelsblk # 应该看到 sdb# 2. 两条路线 ——# 路线 1:扩入现有 LVM(推荐)pvcreate /dev/sdbvgextend rl /dev/sdb # rl 是你的 VG 名lvextend -l +100%FREE /dev/rl/rootxfs_growfs /# 路线 2:独立挂载点mkfs.xfs /dev/sdbmkdir /data2mount /dev/sdb /data2# 持久化echo "UUID=$(blkid -s UUID -o value /dev/sdb) /data2 xfs defaults 0 0" >> /etc/fstab如果新加的空间不在末尾、或 sda3 后面还有别的分区,growpart 会失败。两种处理:
云厂商控制台扩完盘后步骤一致,只是设备名不同(可能是 vda、nvme0n1、xvda):
# 阿里云 / 腾讯云:通常是 vdagrowpart /dev/vda 1xfs_growfs / # 或 resize2fs /dev/vda1# AWS Nitro:nvme0n1growpart /dev/nvme0n1 1xfs_growfs /xfs_growfs <挂载点> | |||
resize2fs <设备> | |||
resize2fs <设备> | |||
btrfs filesystem resize max <挂载点> | |||
zpool online -e <pool> <dev> |
lsblk 留一份现状echo 1 > /sys/class/block/sdX/device/rescan 指定具体盘,避免误扫。NOCHANGE: partition X is size ... could only be grown by ...lvcreate -s -L 1G -n snap /dev/rl/root 也能保。swapoff → lvextend → mkswap → swapon,会短暂没有 swap。LVM 体系下扩容不可逆(xfs 不能缩),所以:
lvextend 但暂不 xfs_growfs,验证 LV 大小没问题再扩 fsxfs_growfs 失败但 LV 已扩大:xfs 状态不会损坏,重试即可;最坏情况从快照回滚扩容后顺手核对:
echo "=== 块设备 ===" && lsblkecho "=== 文件系统 ===" && df -hTecho "=== LVM ===" && vgs && lvsecho "=== inode ===" && df -i /操作日期:2026-05-11 目标主机:某台 Rocky Linux 10.1 虚拟机 结果:/ 17G → 27G,业务零中断
如果你在做企业 IT 运维,类似 VMware/Linux/AD/NetScaler 的实战记录我会持续往这个仓库收。觉得有用,欢迎关注公众号,下一篇打算写新加独立硬盘并入 LVM 的完整流程。
【以上内容均属虚拟化时代君整理,大家仅供参考!】

资源申明:小编更新资源文章只是为了给大家提供一个绿色学习的平台,如果你在本站看到的任何图片文字有涉及到你的利益以及版权都可以联系小编删除。联系微信:XNHSDJ