用虛擬機玩Linux時經常發生Linux硬盤空間不足的情況,而宿主機硬盤空間又吃緊,怎么辦?
很多童鞋給Linux分配的硬盤是8G,而安裝Linux時采用默認分區方式的話swap分區有2G。swap分區即交換分區,類似于Windows的虛擬內存pagefile.sys。當內存不足時,把一部分硬盤空間虛擬成內存使用。而內存夠用時則排不上用場。
對于實體機Linux,這2G的swap空間一般算不了什么,但對硬盤只有8G的虛擬機Linux來說,2G就很寶貴了。所以——減小Linux swap分區收回空間。
減小swap分區的方法:
1、先“df -h”和“fdisk - l”命令查看一下當前分區情況,如圖。根分區為5.5G。
圖中/dev/mapper/vg_"hostname"-lv_swap就是swap分區,為2G。swap分區亦可用free命令查看到。


2、用swapoff命令關閉交換分區:
# swapoff /dev/mapper/vg_"hostname"-lv_swap
然后用free命令檢查下swap是否變為0了。

3、用lvreduce命令把swap分區減小1500M:
# lvreduce -L -1500M /dev/mapper/vg_"hostname"-lv_swap
輸入y,確定,看到提示swap減小至516M。

4、重新把/dev/mapper/vg_"hostname"-lv_swap設置為swap分區:
# mkswap /dev/mapper/vg_"hostname"-lv_swap

5、swapon開啟swap分區:
# swapon /dev/mapper/vg_"hostname"-lv_swap
然后用free命令檢查下swap是否變為516M了。

擴展根分區把回收的空間利用起來
1、此時回收的1500M是閑置的自由空間,還得將它分配給根分區。還好現在的Linux分區一般是采用LVM分區方式,可以很方便地進行分區的動態擴展,不破壞現有數據。筆者這里是使用圖形LVM(Logical Volume Manager)工具進行分區的動態擴展(如果沒有安裝此工具則需要裝一下system-config-lvm的rpm包)。高手亦可在命令行下完成。
# system-config-lvm
展開“邏輯視圖”->“lv_root”,點擊“編輯屬性”。
2、點擊“使用剩余”,可以看到5.54G增大至7.0G了。然后“確定”。

3、回到LVM界面,查看到自由空間變為0 了。
4、回到命令行模式用“df -h”命令檢查一下,可以看到根分區增大至6.9G了。動態擴展無需重啟,立即生效,大功告成!
