pvs是LVM中查看物理卷信息的核心命令,显示设备路径、所属卷组、总容量、空闲空间等;默认不显示未分配PV,需加-a选项,依赖lvm2包。
在 Linux 中,
命令本身不直接提供“物理硬盘总容量”与“PV 已分配空间”的差值,因为 PV(Physical Volume)只是硬盘或分区的一部分,且底层设备可能有未用于 LVM 的空间、保留扇区、RAID 元数据、对齐填充等。但你可以通过组合命令,分步获取物理设备总大小、PV 大小、PV 已用空间,再手动计算差值。
1. 查看 PV 对应的底层物理设备及大小
显示 PV 名称、所属卷组、总大小、空闲大小、已用大小(单位 GB)。但
中的
是 LVM 初始化时识别并使用的容量(即
时实际写入元数据后可用的空间),通常略小于底层块设备的总大小。
要查底层设备真实大小,先确认 PV 路径(如
),再用:
—— 显示设备原始大小(含所有扇区)
—— 返回字节数,可除以 1024³ 得 GiB
—— 输出扇区数(512 字节/扇区),乘以 512 即为字节数
2. 理解 PV Size 为何小于物理设备大小
LVM 在创建 PV 时会预留空间用于元数据(默认 2048 扇区 ≈ 1 MiB),并按 PE(Physical Extent)大小对齐(如默认 4 MiB)。因此:
Docker Desktop(linux)
当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。
下载
例如:200 GiB 分区 → 实际
可能是 199.99 GiB(取决于对齐)
这个差值不是“未分配”,而是 LVM 主动放弃的底层空间
3. 计算“物理设备总容量 − PV 已分配空间”差值
这是你关心的“还能从该盘额外划出多少非 LVM 空间”。步骤如下:
取底层设备总字节数:
取 PV 已用字节数:
相减得剩余裸空间字节数,再换算成易读单位
一行示例(输出 GiB):
4. 注意事项与常见误区
PV 可以跨多个设备(如 RAID 或多磁盘 PV),此时需分别计算每个底层设备
如果 PV 建在整盘(如
)而非分区,
会显示盘大小,但需注意 BIOS/UEFI 保护区域(如最后 1MiB)通常不可用
并不存在;
没有
字段,官方字段列表中只有
(即 PV 容量)
想看整个磁盘是否还有未分区空间?用
或
pvspvs -o pvname,vgname,pvsize,pvfree,pvused --units gpvsPV Sizepvcreate/dev/sdb2lsblk -d -o name,size /dev/sdb2blockdev --getsize64 /dev/sdb2cat /sys/block/sdb2/sizePV Size = floor((device_bytes - metadata_offset) / pe_size) × pe_sizePV Sizeblockdev --getsize64 /dev/sdb2pvs -o pvused --units b --noheadings /dev/sdb2 | tr -d ' 'echo $(echo "scale=2; ($(blockdev --getsize64 /dev/sdb2) - $(pvs -o pvused --units b --noheadings /dev/sdb2 | tr -d ' ')) / (1024^3)" | bc)/dev/sdblsblkpvs -o dev_sizepvsdev_sizepvsizefdisk -l /dev/sdbparted /dev/sdb print free