之前搭建了一個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查看一下空間情況
最后,最好重啟一下虛擬機哦 :)))))