一直以来都是以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/