其实准确点儿的描述应该是: Ubuntu Server 18.04 , 设置 LVM, 安装完成后根目录的容量为什么只有 4G? 只有 Server 版有问题, Desktop 版没有问题, Ubuntu 16.04 的 Server 版和 Desktop 版都没有这样的问题.
笔者在 vSphere 中安装虚机 Ubuntu Server 18.04.2, 设置磁盘大小为 200G, 文件系统设置时选择 LVM , 也就是 "Use An Entire Disk And Set Up LVM", 如下图所示:
其他都是默认值, 安装很顺利, 但是进入系统后检查文件系统发现根目录的容量只有区区 4G:
这是咋回事儿? 说好的 200G 呢?
如何解决?
其实如果有些 LVM 的基础知识处理这个问题是很简单的. 先看看 PV 的信息:
PV 的状态没有问题, 接着检查 VG 的容量:
VG 的容量也是正确的, 并且大部分空闲. 接着检查 LV 的容量:
原来问题出在这里, 199G 的 VG, 而 LV 只分到了 4G.
问题找到了, 解决方式也很简单, 先扩展 LV, 再扩展文件系统!
直接把 VG 剩余的所有空间分给 LV:
$ sudo lvextend /dev/Ubuntu-vg/Ubuntu-lv /dev/sda3
再 resize 文件系统就可以了:
$ sudo resize2fs /dev/Ubuntu-vg/Ubuntu-lv
检查结果:
搞定!
是不是漏了什?
到底是哪里出了问题? Ubuntu Desktop 18.04 可没有这样的问题! 不会是和虚拟环境 vSphere 有关吧? 带着种种疑问在网上搜了一通, 其实在 Ubuntu 18.04 的 Release Notes 中就说明了这是个已知问题(Known issues):
LVM Entire Disk option does not use entire disk (1785321)
去看看这个问题的详细信息, 发现这貌似并不是一个 bug, 而是一个 design. 人家本来的目的是让管理员能够更加方便, 合理的使用 LVM, 从而改进了默认的设置(对比 Ubuntu Server 16.04):
- The reason only 4GiB is allocated to the root file-system is that the remaining space is there to be allocated for other purposes by the system administrator.
- E.g. The administrator may want to allocated separate block devices to host virtual machine or container images, and so on.
大意是说: 只分配 4G 给根文件系统的原因是剩余的空间由系统管理员分配给其他用途. 管理员可能希望分配单独的块设备来承载虚拟机或容器映像, 等等.
只不过这个 design 让笔者这种喜欢默认值的用户突然感到了不适应(至少这个行为和 Ubuntu 16.04 不一样, 和 Ubuntu 18.04 Desktop 也不一样). 顿时感觉无比 shallow, 距离系统管理员还有不小的差距啊! 既然被标记成了 issue , 估计在后面的版本中会有调整.
在安装系统时解决该问题
其实如果在安装系统时, 仔细看看默认的配置 (出问题前谁会看呢?) 就会发现这个问题:
文件系统的详细配置中已经指明了根目录所挂载的文件系统所在的 LV 容量为 4G, 编辑该 LV 的配置信息, 把默认值改为允许的最大值就可以了:
其他的配置继续应用默认值, 这次安装完成后根目录的容量就是我们期望的值(不是 200G 噢, 实际只有 195G 左右).
总结
在对这个问题的认知过程中, 笔者刚开始一直受困于自己的经验, 认为 Ubuntu 16.04 的 Server 版和 Desktop 版都没有这样的问题, Ubuntu 18.04 的 Desktop 版也没有这样的问题, 那就一定是 Ubuntu Server 18.04 的问题. 这样的习惯性思维导致了笔者无法以更广阔的视角看待这个问题, 如果笔者是一个真正的 Linux 系统管理员, 说不定正喜大普奔呢!
参考:
LVM Entire Disk option does not use entire disk (1785321) https://bugs.launchpad.net/subiquity/+bug/1785321
来源: https://www.cnblogs.com/sparkdev/p/10522489.html