其实准确点儿的描述应该是: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 系统管理员,说不定正喜大普奔呢!

参考:
https://www.cnblogs.com/sparkdev/p/10522489.html

Ubuntu 18.04 根目录只有 4G 大小的更多相关文章

  1. Ubuntu 18.04 根目录为啥只有 4G 大小

    其实准确点儿的描述应该是:Ubuntu Server 18.04 ,设置 LVM,安装完成后根目录的容量为什么只有 4G?只有 Server 版有问题,Desktop 版没有问题,Ubuntu 16. ...

  2. Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量

    Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量   Ubuntu 作为服务器系统使用的时候,系统盘的空间可能并不是很充裕,apt apt 着,根目录就满了.诚然, ...

  3. Ubuntu 18.04 LTS 常用软件安装杂记

    之前个人笔记本装的是 Linux Mint,用了一段时间但是体验不佳,所以打算换成 Ubuntu .作为一个 Linux 小白,当时配置一些软件环境费了不少时间.这次打算简单记录下,和大家分享一下我的 ...

  4. ubuntu 18.04 搭建flask服务器(大合集,个人实操)

    ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ...

  5. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  6. Ubuntu 18.04编译AOSP源码

    总结一下我从Ubuntu 18.04下编译成功AOSP的过程,以及遇到的坑 我的电脑配置: OS: Ubuntu 18.04 bionic Kernel: x86_64 Linux 4.18.0-17 ...

  7. Ubuntu 18.04.1 搭建Java环境和HelloWorld

    一.搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technetwork/java ...

  8. Ubuntu 18.04学习笔记

    命令行快捷键 https://blog.csdn.net/wanlhr/article/details/80926804 Ubuntu18.04使用vi命令修改文件并保存 vi /opt/teamvi ...

  9. [转]Win7 + Ubuntu 18.04 LTS (Bionic Beaver)双系统安装方法

    这里介绍在win7的基础上,安装ubuntu 18.04 LTS,实现双系统启动. 首先,假设你已安装了windows 7系统. 一. 制作ubuntu U盘启动盘. 方法见http://blog.p ...

随机推荐

  1. 【PostMan】批量参数化的用法 之 text/csv

    目的:批量参数化,单个循环多次使用不同的参数请求. 测试数据准备 新建txt文件,输入格式: 首行 --->参数名 其他行 --->测试数据(不同测试数据需要换行) 如下所示,Number ...

  2. 函数指针和成员函数指针有什么不同,反汇编带看清成员函数指针的本尊(gcc@x64平台)

    函数指针是什么,可能会答指向函数的指针. 成员函数指针是什么,答指向成员函数的指针. 成员函数指针和函数指针有什么不同? 虚函数指针和非虚成员函数指针有什么不同? 你真正了解成员函数指针了吗? 本篇带 ...

  3. python描述:链表

    单链表结构: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点 ...

  4. JavaScript 关于setTimeout与setInterval的小研究

    说明 在开发功能"轨迹播放"时,遇到了一个情况. 原先同事已经开发了一版,这次有个新功能:点击线上任意一点后可以从点击处重新播放. 看了一下原来的版本,发现同时使用了setTime ...

  5. 真的,Kafka 入门一篇文章就够了

    初识 Kafka 什么是 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订 ...

  6. JavaScript笔记九

    1.数组方法 reverse() - 可以用来反转一个数组,它会对原数组产生影响 concat() - 可以连接两个或多个数组,它不会影响原数组,而是新数组作为返回值返回 join() - 可以将一个 ...

  7. 通俗化讲解JWT鉴权的使用场景及结构安全

    一.基于Session的应用开发的缺陷 在我们传统的B\S应用开发方式中,都是使用session进行状态管理的,比如说:保存登录.用户.权限等状态信息.这种方式的原理大致如下: 用户登陆之后,将状态信 ...

  8. CNCF官方大使张磊:什么是云原生?

    作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 编者说: 从 2015 年 Google 牵头成立 CNCF 以来,云原生技术开始进入公众的视线并取得快速的发展,到 2018 年包括 Go ...

  9. 虚拟机配置net模式

    在cmd中输入ipconfig -all查看 更改网络适配器 进入虚拟机左上角编辑----虚拟机网络编辑器查看VMnet8,虚拟机会为我们分配的固定ip段:如下图: ip段是128---254,所以设 ...

  10. Floyd && Dijkstra +邻接表 +链式前向星(真题讲解来源:城市路)

    1381:城市路(Dijkstra) 时间限制: 1000 ms         内存限制: 65536 KB提交数: 4066     通过数: 1163 [题目描述] 罗老师被邀请参加一个舞会,是 ...