为什么32G虚拟机硬盘,Ubuntu系统只显示16G容量?

摘要:前言 最近发现 Ubuntu 服务器莫名其妙卡死 登上去看了下原来是硬盘满了 但是使用 df -h 查看后很奇怪,我明明在 PVE 里分配了32G空间,但在 Ubuntu 里查看只有 16G $ df -h devmapperubun
前言 最近发现 Ubuntu 服务器莫名其妙卡死 登上去看了下原来是硬盘满了 但是使用 df -h 查看后很奇怪,我明明在 PVE 里分配了32G空间,但在 Ubuntu 里查看只有 16G $ df -h /dev/mapper/ubuntu--vg-ubuntu--lv 15G 14G 0 100% / ???明明分的是 32G,怎么只有 15G?这不是凭空消失了一半空间吗? 我一开始还以为 PVE 的磁盘配置出错了,后来才发现——真不是它的锅。 非常的奇怪 经过研究之后,原因是PVE分配的虚拟磁盘用了LVM 整个情况涉及 虚拟化磁盘、分区、LVM 逻辑卷和文件系统 这几层关系 真相 原来,Ubuntu 安装时默认启用了 LVM(逻辑卷管理器)。 LVM 的逻辑是:先把整块磁盘做成一个“卷组”(VG),然后从里面再划分出若干个“逻辑卷”(LV)来挂载使用。 问题就出在这里——安装程序默认只给根目录分了大概一半空间。 所以虽然虚拟磁盘是 32G,但根目录只分到了 16G,其余的空间静静地躺在卷组里没人用。 有点像你买了 32G 的 U 盘,却只分了一个 16G 的区用,剩下的部分被遗忘在角落。 扩容 知道原因就好办了,简单三步: 在 Ubuntu 服务器里执行 # 1. 查看卷组剩余空间 # 里面会显示 Free PE / Size,也就是卷组里未分配的空间。 vgdisplay # 2. 扩展根逻辑卷,把所有剩余空间都用上 # 这里 +100%FREE 表示把卷组里剩余的空间全给这个逻辑卷。 lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv # 3. 扩展文件系统,让它真正能用上空间 resize2fs /dev/ubuntu-vg/ubuntu-lv 这里默认文件系统是 ext4,所以用 resize2fs 命令 如果是xfs,则用 xfs_growfs / 然后再 df -h 一看,完美! /dev/mapper/ubuntu--vg-ubuntu--lv 31G 14G 17G 45% / 小结 这次算是被 LVM 上了一课 我之前都没咋用过 LVM 以后再看到“分了 32G 却只显示 15G”这种情况,可以试试本文的解决方式