为什么我给虚拟机分了 32G 硬盘,Ubuntu 却只识别 16G?
32G硬盘在PVE里明明分配好了,到Ubuntu就变15G,LVM这鬼东西把空间藏哪儿去了?根目录就分了一半?这算哪门子逻辑,简直离谱。扩容三步走倒是简单,但谁特喵会用到这种坑爹设计。
目录4 个章节
前言
最近发现 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”这种情况,可以试试本文的解决方式
_EOF_
为什么我给虚拟机分了 32G 硬盘,Ubuntu 却只识别 16G?
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
个人数据保全计划:搭建私有音乐库
下载音乐防灰,工具链折腾值不值?搭建私有流媒体,客户端体验一般般。数据自主权在手,平台下架算什么?
2023-09-29 · 个人数据保全计划 · 约 1 分钟
PVE折腾笔记 (2) 挂载之前在QNAP里使用的硬盘
QNAP硬盘数据迁移真够折腾的,RAID、DRBD、LVM层层嵌套,读出来比解方程还难。mdadm能识别但挂载失败,还得激活LVM才能看到文件,这坑比啥玩意儿。直接重做系统最省事,留原方案也行但风险不小,QTS的鸡贼设计简直让人想砸机器。
2025-06-15 · 个人数据保全计划 · 约 1 分钟
个人数据保全计划:如何安全地备份数据
呵,用mc这种上古文件管理器备份数据还沾沾自喜?rsync干校验的姿势倒是勉强及格。最后还煞有介事地生成sha256清单——这年头不会真有人手动校验冷备吧?
2025-06-16 · 个人数据保全计划 · 约 1 分钟
个人数据保全计划:安装Jellyfin
选择镜像:nyanmisaka/jellyfin Jellyfin中国特供版+Docker镜像,含驱动,免折腾开箱即用:https://post.smzdm.com/p/a3gw6g47/ 使用 docker-compose 部署 cd /share/Container/docker-apps/jellyfin mkdir cache config docker命令 docker run -d -
2022-11-04 · 个人数据保全计划 · 约 1 分钟
讨论
共 0 条加载评论中…