以前,安裝linux按照傳統的分區方式,選擇custom,可以給磁盤划分出sda1, sda2...
這些在linux里稱之為分區,partition,然后分別把/
,/home
,/var
等掛載到各個分區
但是隨着LVM技術的推廣,現在安裝ubuntu如果采用默認的格式化整個磁盤的方式來安裝,安裝完成后發現磁盤空間沒有占滿,原本500多G的磁盤現在整個/
掛載只占用了200多G。造成這種后果很大一部分原因是原本有系統,重裝系統導致。(不確定,至少我是這么經歷的)
如下圖所示:
df -h
lsblk
如上圖所示,可以看到lsblk
看到的實際磁盤空間(物理)有446G多,但是卻只有200G被掛載。
讓我們再用
fdisk -l
查看分區,這個命令打印的比較多,包含了各種亂七八糟的分區,找到sda那塊如下圖:
我們發現原來分區沒毛病,注意,sda1,2,3這是分區,相當於windows下c,d,e盤,而計算下發現圖中sda1,2,3確實對應了真實的硬盤容量,也就是硬盤沒有毛病,確實被ubuntu完全讀了出來。
那么問題就可以縮小,確定是掛載少了。那么,掛載為什么少了?(注意,掛載是基於分區的,在分區上層)
原來這里沒有直接掛載在物理分區上,而是把/
掛載在了邏輯分區LVM文件系統上,而這里顯示的/dev/mapper/ubuntu--vg-ubuntu--lv
,這是一塊邏輯分區文件(邏輯分區以文件形式存在)!它本身只有200G,那理所當然掛載在它之上的/
最多就是200G咯。
要擴展/
我們就擴展這個LVM文件,很簡單,執行如下命令,讓他占滿磁盤剩余空間,乍干我們的磁盤!
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
如果不想炸干:
sudo lvextend -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv
上面這條擴充50G,當然這個擴充大小不能大於磁盤實際剩余大小。
如何查看LVM和實際磁盤大小區別,使用如下命令:
lvdisplay
顯示如圖:
這里看得到邏輯磁盤信息,看不到物理的,使用如下命令都可以看到:
vgdisplay
上面顯示Free的246G,alloc的是200G!終於找到困惑的源頭了,難怪我使用磁盤大小小於我的實際磁盤大小,原來是LVM搗的鬼。
最后,我們發現擴展之后輸入上述命令還是顯示200G alloc,原因是沒有重新計算!還要輸入如下命令進行重新計算:
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
現在再輸入vgdisplay
,容量充滿,大功告成!
鳴謝: