其實準確點兒的描述應該是: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)