一直以來都是以vagrant+docker作為開發環境,可是久而久之,原Box自帶的8G容量就捉襟見肘了。時不時需要手動刪除一些東西。
Virtualbox 本身只支持vdi硬盤文件格式的擴容,對vmdk 格式的卻不支持。但是卻提供vmdk到vdi格式的轉化,正好可以利用這一功能進行擴容。
1. 關閉虛擬機, 從Virtualbox頁面查看硬盤文件地址(選中虛擬機->右鍵->設置->存儲)。進到文件所在目錄后執行:
$ VBoxManage clonehd box-disk1.vmdk box-disk1.vdi –format VDI
2. 給vdi格式硬盤文件擴容
$ VBoxManage modifyhd box-disk1.vdi –resize 20000
3. 從Virutalbox存儲界面刪除原硬盤文件,然后再加入新的VDI格式硬盤文件
4. vagrant up啟動虛擬機,然后vagrant ssh進入
5. 利用cfdisk工具創建主分區,謹記選擇格式為Linux LVM (8e)
$ sudo cfdisk /dev/sda
6. 利用pvcreate命令給新的分區創建物理卷
$ sudo pvcreate /dev/sda3 successfully created
7. 查看VG Name,我自己的VG Name是centos
$ sudo pvdisplay | grep "VG Name" VG Name centos
8. 將新分區擴展到centos這個組
$ vgextend centos /dev/sda3 Volume group "centos" sucessfully extended
9. 擴展邏輯分區
$ lvextend /dev/mapper/centos-root /dev/sda3
10. resize並且生效
$ resize2fs /dev/mapper/centos-root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/debian-605/root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/debian-605/root to 4937728 (4k) blocks. The filesystem on /dev/debian-605/root is now 4937728 blocks long.
在centos 7下,這一步會出錯
resize2fs 1.42.9 (28-Dec-2013) resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root Couldn't find valid filesystem superblock.
這時,只需要使用xfs_growfs命令替換就行了
xfs_grouwfs /dev/mapper/centos-root
至此,大分告成。vagrant reload重啟虛擬機查看效果
於是乎,媽媽再也不用擔心我的虛擬機磁盤沒容量了。
參考文章:
https://gist.github.com/christopher-hopper/9755310
//blog.lenss.nl/2012/09/resize-a-vagrant-vmdk-drive/



