Ubuntu 藉由 LVM 解決預設硬碟分割錯誤

邏輯捲軸管理器(英語:Logical Volume Manager,縮寫為LVM),
又譯為邏輯卷宗管理器、邏輯磁區管理器、邏輯磁碟管理器,
是 Linux 核心所提供的邏輯捲軸管理(Logical volume management)功能。
它在硬碟的硬碟分割區之上,又建立一個邏輯層,以方便系統管理硬碟分割系統。

維基百科-LVM

Ubuntu 在預設的系統碟分割的情況,並不會把所有的空間都切進根目錄

1
2
3
4
5
6
7
8
9
10
11
12
Filesystem                         Size    Used Available Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 32G 1.7M 32G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 3.9G 3.6G 92M 98% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/loop0 87M 87M 0 100% /snap/core/4917
/dev/loop1 3.2M 3.2M 0 100% /snap/stress-ng/471
/dev/loop2 90M 90M 0 100% /snap/core/6130
/dev/sda2 976M 143M 766M 16% /boot
tmpfs 3.2G 0 3.2G 0% /run/user/1000

在第四行 /dev/mapper/ubuntu--vg-ubuntu--lv 只有 4GB 在根目錄

但這是 1T 的硬碟啊!

經過一番追尋,發現可以透過 lvm 來解決這個問題

1
2
3
> sudo lvm
lvm> lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
lvm> exit

上面指令是把所有存在的閒置空間都放進那個 volume group 裡面
接下來,我們需要讓檔案系統去使用剛剛調整的所有可用空間

1
> sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

最後,我們可以用 df -h 檢查一下調整的成果

1
2
3
4
5
6
7
8
> df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 1.8M 3.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 915G 11G 865G 2% /
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 16G 0 16G 0% /sys/fs/cgroup

在第五行就成功地看到所有空間都啟用了
完成!

參考文件:
https://askubuntu.com/questions/1106795/ubuntu-server-18-04-lvm-out-of-space-with-improper-default-partitioning