VirtualBox配合Vagrant使用

环境:

  • Mac OSX: 10.9.5
  • VirtualBox: 4.3.24
  • Vagrant: 1.7.2

常用命令

初始化和启动

mkdir PROJECT_FOLDER
cd PROJECT_FOLDER
vagrant init hashicorp/precise64
vagrant up

修改Vagrantfile 文件后重启

vagrant reload

关闭虚拟机

vagrant halt

删除虚拟机

vagrant destroy

创建私有的box

首先创建一个VirtualBox的虚拟机,配置如下

  • Name: precise64
  • Type: Linux
  • Version: Ubuntu64
  • Memory Size: 512MB (to taste ...
more ...

VirtualBox 命令行操作

通常情况下VirtualBox都是用GUI操作的,但有时候机器没有装VNC或其远程桌面的时候, SSH上去操作还是有必要的。经常用到下面几条。

查看所有的虚拟机名称

VBoxManage list vms

启动虚拟机

VBoxManage startvm {VM_NAME} --type headless

关闭虚拟机

VBoxManage controlvm {VM_NAME} poweroff

克隆虚拟机

VBoxManage clonevm {VM_NAME} --mode machine --name {NEW_VM_NAME} --register

如果需要远程桌面登录虚拟机, 这里的远程桌面是微软mstsc或Mac OSX下的Remote Desktop Connection

VBoxManage modifyvm {VM_NAME} --vrdeport 3390
more ...

Virtualbox减少虚拟机文件大小

应用场景:

你是不是看着日渐增大的VirtualBox的虚拟机文件发愁,想把虚拟机备份一下, 或者想把虚拟机拷給别人用,那传输时间...

首先如果是vmdk格式的话先, 转化vmdk到vdi

sudo VBoxManage clonehd disk1.vmdk disk1.vdi --format vdi

挂载 systemrescuecd-x86-4.3.1.iso, 进行zerofree, 原理就是把没用的地方变成0, 从而使得压缩的时候是一大片的0,压缩率比较高。

fdisk -l
zerofree /dev/mapper/vg_xxx-lv_xxx
or
zerofree /dev/sdc1
sudo VBoxManage modifyhd --compact disk1.vdi
more ...

VirtualBox Ubuntu 克隆后网络问题

Clone出来的Ubuntu启动的时候特别慢,一直在配置网络,等待一段时间进去 后,运行以下命令

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
sudo reboot
more ...

各虚拟机之间的格式转换

KVM qcow2 转 Virtualbox vdi

qemu-img convert -f qcow2 vdisk_qcow.img -O raw vdisk_raw.img
VBoxManage convertfromraw --format VDI vdisk_raw.img vdisk.vdi

VMWare 转成 KVM raw

qemu-img convert CentOS-flat.vmdk -O raw /vms/images/{VM_GUEST_NAME}.img
more ...