之前搭建了一個CentOS(7.0, x64)的VM,一直沒留意它的硬碟空間。昨天,系統突然彈出警示,說 根目錄 空間不足了。
這樣的話,就只能給它增加空間唄。
我自己其實已經增加過硬碟空間了,但是為了寫這篇部落格,我再一次添加了10GB的硬碟
在虛擬機器關機的前提下,先通過VMware給虛擬機器增加一些硬碟空間,如下圖:
點擊“擴充”之後,稍等一會,等待VMware處理完。
處理完了之後,VMware會提示你,雖然擴充了硬碟空間,但須你進系統之後,進行分區等操作之後才能使用。
看到這個提示,我是崩潰的。因為我自己根本不會在Linux下進行分區啊,它不像Windows分區或者擴充那麼簡單。這可咋整呢。沒辦法,只有兩條路可以走:要麼將新增加的硬碟添加至系統中,要麼重新建立一個新的虛擬機器。
很明顯第二條路比第一條路更難走。所以,只能含著淚選擇第一條路。
但是,在這條路上,我不是一個人在奮鬥,我在網上找到了很好的指南,有: http://blog.sina.com.cn/s/blog_967817f20102v2a6.html http://www.cnblogs.com/yorian/archive/2012/02/06/2340438.html http://stackoverflow.com/questions/26305376/resize2fs-bad-magic-number-in-super-block-while-trying-to-open http://stackoverflow.com/questions/13362910/trying-to-resize2fs-eb-volume-fails
其中,第1個連結,裡面介紹了 LVM 等相關的知識;第2個連結,是我本次主要參照的連結,按照裡面的命令進行了操作;第3條是遇到的一個問題找到的解決方案。第4條是第3條所提及到的解決方案。
下面開始Linux中操作。請以root使用者進行操作
先進行分區。關於分區,可以參照上面的第2個連結進行。但是,我在登陸系統之後,使用了圖形化的操作。
開啟系統的“磁碟”工具
從圖中可以看到,新增加的硬碟空間了
用df -hl看到目前的空間情況
用“fdisk -l”查看分區情況
點擊上圖中的“+”號,進行分區
調整分區類型
用fdisk -l再次查看分區情況
從圖中可以看到,新增加的分區了。
到此為止,我們就建立了一個分區/dev/sda4,此時我們已經可以通過“掛載”命令(即mount)來使用這個新的空間。但是對於我,這並不能滿足我的需求,因為本意想用它來擴充根目錄的空間的。而由於目前已經有分區掛載到根目錄“/”上了,所以,無法再次將新增的分區掛載到“/”了,只能通過擴充已知掛載到“/”的分區的容量來達到擴充“/”的空間的目的了。(這句描述聽起來很是拗口啊 :))
用lvs查看當前的邏輯卷
請記住上圖中VG列的內容(即“centos”),下面會用到
用pvcreate將新增的分區建立一個物理卷
用vgextend將建立的物理卷追加到上面讓你們記住的VG上
雖然系統提示extend成功了,但是這個時候,“/”的容量還沒有增加。
可以通過df -hl查看
用vgdisplay查看系統當前的VG
主要查看Free PE / Size 2696 / 10.53 GiB,說明我們最多可以有10.53GB的擴充空間。
用lvextend給根目錄擴充容量
這裡需要注意一下兩個問題: lvextend的最後兩個參數的值:
“/dev/centos/root”:請看上面df -hl命令的截圖,這個值就是該截圖中 掛載點“/”對應的“檔案系統”的值 /dev/sda4:這個就是上面建立的分區啦 上面的截圖中報了一個錯:Insufficient free space: 2696 extents needed, but only 2559 available,這個說明,雖然上面說有“10.53GB”的可用空間,但是我們無法全部使用,只好在lvextend命令中,減少一點了,如下圖:
最後一步,告訴系統“/”的容量有增加了。
如果參照最上面的第2個連結的話,它使用的是“resize2fs”命令,我使用了之後,系統會報錯:
後來經過調查,在stackoverflow上找到了一個解決方案,也就是上面的第3和第4個連結。
按照它們的提示,先安裝了xfsprogs.x86_64,然後:
用xfs_growfs通知系統“/”的容量增加了
最後,用df -hl查看一下空間情況
最後,最好重啟一下虛擬機器哦 :)))))