本质是扩容底层块设备后通过pvresize刷新pv边界:先触发内核重读磁盘容量(如echo 1 > /sys/block/sdb/device/rescan),再执行pvresize /dev/sdb使vg获得新增空闲空间,最后可lvextend和文件系统扩展。

Linux 中扩展 LVM 卷组(VG)中某个物理盘的容量,本质是扩容该物理卷(PV)所对应的底层块设备(比如已存在的 /dev/sdb 或 /dev/vdb),再让 LVM 识别新增空间。这常见于虚拟机环境中对已有磁盘在线扩容(如 VMware、KVM 或云平台中将一块已挂载的磁盘从 20G 扩到 30G),而非添加新磁盘。
关键点在于:卷组本身不直接“扩容物理盘”,而是让其中某个 PV 的容量变大,再通过 pvresize 通知 LVM 更新 PV 边界。
一、确认底层磁盘已扩容且系统识别到新大小
-
查看当前磁盘大小:
lsblk # 或 fdisk -l /dev/sdb # 替换为你的实际设备名
-
若显示仍是旧容量(如 20G),但你在虚拟平台或云控制台已完成扩容(如扩到 30G),需触发内核重读容量:
- 对 SCSI 设备(多数虚拟/云磁盘):
echo 1 > /sys/block/sdb/device/rescan
- 对 NVMe 或部分 IDE 设备,可用:
blockdev --rereadpt /dev/sdb
- 再次运行
lsblk,确认/dev/sdb显示新总大小(如 30G)。
- 对 SCSI 设备(多数虚拟/云磁盘):
⚠️ 注意:此步骤必须完成,否则后续
pvresize不会生效。
Browser Setup (No-Root Linux)下载在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
二、扩展物理卷(PV)边界
LVM 不会自动感知底层磁盘扩容,需手动刷新 PV 元数据:
pvresize /dev/sdb
- 无输出即成功;加
-v可看详细过程。 - 运行后检查:
pvs # 查看 PV 大小是否已更新 vgdisplay vg_name # 确认 VG 的 `Free PE / Size` 是否增加
✅ 成功标志:pvs 中 /dev/sdb 的 PSize 和 PE Total 变大,且 vgdisplay 显示卷组有新增空闲空间。
三、后续操作(可选但通常需要)
扩容 PV 后,VG 获得了更多空闲 PE,此时可:
- 扩展逻辑卷(LV):
lvextend -l +100%FREE /dev/vg_name/lv_name
- 同步扩展文件系统:
- ext4/xfs 等:
resize2fs /dev/vg_name/lv_name # ext4 xfs_growfs /mount/point # xfs(挂载点路径,非设备名)
- ext4/xfs 等:
常见误区提醒
- ❌ 不要对
/dev/sdb直接fdisk分区后再pvcreate—— 这会破坏原有 PV 结构,导致数据丢失。 - ✅ 如果原 PV 是整盘(如
/dev/sdb),扩容后仍用整盘,无需分区。 - ✅ 如果原 PV 是分区(如
/dev/sdb1),则需先用fdisk或parted扩展该分区,再pvresize /dev/sdb1。 - ❌
vgextend是加新PV,不是扩已有 PV —— 此处不适用。
操作全程无需卸载、无需重启,适用于生产环境在线扩容。只要底层设备容量已变、内核已识别、pvresize 成功,VG 就自然获得新空间。











