直接在Server上安装virtualbox-ose(Open Source Edition)版本后, 启动老是提示出错:
1
2
3
4
MyServer:~#/etc/init.d/virtualbox-ose start
* Starting VirtualBox host networking... [ OK ]
* Starting VirtualBox kernel module vboxdrv
* No suitable module for running kernel found.
后来发现官方网站上闭源版本的介绍, 真是很详尽: http://www.virtualbox.org/wiki/Linux_Downloads
1
MyServer:~#vi /etc/apt/sources.list
添加一句:
1
deb http://download.virtualbox.org/virtualbox/debian lucid contrib
1
2
3
4
5
MyServer:~#wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
MyServer:~# apt-key add oracle_vbox.asc
MyServer:~#wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
MyServer:~# apt-get update
MyServer:~# apt-get install virtualbox-4.0
第一次运行出错:
1
2
3
4
5
6
7
8
9
10
MyServer:~# /etc/init.d/vboxdrv setup
* Stopping VirtualBox kernel modules [ OK ]
* Uninstalling old VirtualBox DKMS kernel modules [ OK ]
* Trying to register the VirtualBox kernel modules using DKMS
Error! Your kernel headers for kernel 2.6.32-28-server cannot be found at
/lib/modules/2.6.32-28-server/build or /lib/modules/2.6.32-28-server/source.
* Failed, trying without DKMS
* Recompiling VirtualBox kernel modules
* Look at /var/log/vbox-install.log to find out what went wrong
查找错误日志 /var/log/vbox-install.log 发现提示要安装linux-headers-2.6.32-28-server
1
apt-get install linux-headers-2.6.32-28-server
或者
1
2
apt-get install linux-headers-`uname -r`
apt-get install linux-headers-generic
再次启动就正常了
1
2
MyServer:~# /etc/init.d/vboxdrv start
* Starting VirtualBox kernel modules [ OK ]
运行Setup看看:
1
2
3
4
5
MyServer:~# /etc/init.d/vboxdrv setup
* Stopping VirtualBox kernel modules [ OK ]
* Uninstalling old VirtualBox DKMS kernel modules [ OK ]
* Trying to register the VirtualBox kernel modules using DKMS [ OK ]
* Starting VirtualBox kernel modules
如果Linux内核升级后,出现 Failed, trying without DKMS
1
2
3
4
5
6
7
8
9
10
/etc/init.d/vboxdrv setup
* Stopping VirtualBox kernel modules [ OK ]
* Uninstalling old VirtualBox DKMS kernel modules [ OK ]
* Removing old VirtualBox netadp kernel module [ OK ]
* Removing old VirtualBox netflt kernel module [ OK ]
* Removing old VirtualBox kernel module [ OK ]
* Trying to register the VirtualBox kernel modules using DKMS
* Failed, trying without DKMS
* Recompiling VirtualBox kernel modules [ OK ]
* Starting VirtualBox kernel modules [ OK ]
那就安装dkms
好了, 现在可以用普通用户 的身份来使用虚拟机了
Ubuntu1010是网上下载的IDE硬盘系统
Ubuntu1004是自己装的Sata硬盘系统
在上传虚拟机镜像之前,最好在本地打开虚拟机,清除一下网卡MAC addresses的Cache后再关机:
1
sudo rm /etc/udev/rules.d/70-persistent-net.rules
创建Windows的虚拟机
1
2
3
4
5
6
7
8
9
user@MyServer:~$VBoxManage createvm --name Ubuntu1010 --register
Virtual machine 'Ubuntu1010' is created and registered.
UUID: b066726c-8559-48f1-b998-fd7ad742e7ce
Settings file: '/home/user/VirtualBox VMs/Ubuntu1010/Ubuntu1010.vbox'
user@MyServer:~$VBoxManage createvm --name Ubuntu1004 --register
Virtual machine 'Ubuntu1004' is created and registered.
UUID: 9e2a7030-953e-4935-aad7-07de8269ab1c
Settings file: '/home/www/VirtualBox VMs/Ubuntu1004/Ubuntu1004.vbox'
顺便贴一下如何删除虚拟机,包括虚拟机文件, 下手前要三思:
1
user@MyServer:~$VBoxManage unregistervm Ubuntu1004 --delete
创建虚拟机所需的存储控制器
1
2
user@MyServer:~$VBoxManage storagectl Ubuntu1010 --name "IDE Controller" --add ide --controller PIIX4 --hostiocache on
user@MyServer:~$VBoxManage storagectl Ubuntu1004 --name "SATA Controller" --add sata --controller IntelAHCI --hostiocache on
网上下载一个已经装好了的Virtualbox镜像 (user/passwd: ubuntu/reverse), 解压, 移到相应目录下
1
2
3
4
5
user@MyServer:~$wget http://downloads.sourceforge.net/project/virtualboximage/Ubuntu%20Linux/10.10/Ubuntu%2010.10.vdi.bz2
bzip2 -d Ubuntu\ 10.10.vdi.bz2
mv Ubuntu\ 10.10.vdi /home/user/VirtualBox\ VMs/Ubuntu1010/Ubuntu1010.vdi
user@MyServer:~$mv Ubuntu\ 1004.vdi /home/user/VirtualBox\ VMs/Ubuntu1004/Ubuntu1004.vdi
添加硬盘到虚拟机
1
2
3
user@MyServer:~$VBoxManage storageattach Ubuntu1010 --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /home/user/VirtualBox\ VMs/Ubuntu1010/Ubuntu1010.vdi
user@MyServer:~$VBoxManage storageattach Ubuntu1004 --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /home/user/VirtualBox\ VMs/Ubuntu1004/Ubuntu1004.vdi
配置虚拟机网卡(桥接模式):
1
2
user@MyServer:~$VBoxManage modifyvm Ubuntu1010 --acpi on --memory 1024 --nic1 bridged --cableconnected1 on --bridgeadapter1 eth0
user@MyServer:~$VBoxManage modifyvm Ubuntu1004 --acpi on --memory 4096 --nic1 bridged --cableconnected1 on --bridgeadapter1 eth0
查看桥接状态:
1
2
user@MyServer:~$VBoxManage list bridgedifs
user@MyServer:~$VBoxManage showvminfo Ubuntu1004
可以看看更详细的桥接方法:
http://blog.csdn.net/Dreamcode/archive/2009/08/20/4464994.aspx
不知道几种网络连接方式到底有什么区别的, 可以看看VMWare的介绍, 原理一样:
http://bbs.neten.de/viewthread.php?tid=988
想追踪网络,保存在trace.pcap文件中:
1
user@MyServer:~$VBoxManage modifyvm Ubuntu1004 --nictrace1 on --nictracefile1 trace.pcap
取消追踪
1
user@MyServer:~$VBoxManage modifyvm Ubuntu1004 --nictrace1 off
启动虚拟机, headless也就是无头模式, 显示器就是电脑的头, 形象吧
1
2
user@MyServer:~$VBoxManage startvm Ubuntu1010 --type headless
user@MyServer:~$VBoxManage startvm Ubuntu1004 --type headless
如果你装的是Windows, 想用RDP登录, 还想把3389改掉:
1
2
user@MyServer:~$VBoxManage modifyvm Windows2008 --vrdp on
user@MyServer:~VBoxManage modifyvm Windows2008 --vrdpport 3390
查看系统中正在运行的虚拟机:
1
2
user@MyServer:~$VBoxManage list runningvms
"Ubuntu1010" {b066726c-8559-48f1-b998-fd7ad742e7ce}
关机
1
2
user@MyServer:~$VBoxManage controlvm Ubuntu1010 poweroff
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
poweroff 的兄弟姐妹们:
1
pause resume reset savestate acpipowerbutton acpisleepbutton
如果磁盘空间不够了, 那VBox4.0支持resize:
1
user@MyServer:~$VBoxManage modifyhd Ubuntu1010.vdi --resize 40000
clone一个虚拟机:
1
user@MyServer:~$VBoxManage clonehd Ubuntu1004.vdi destination.vdi
什么? 不想这么折腾了, 那删了吧:
1
user@MyServer:~$VBoxManage unregistervm Ubuntu1010 --delete
=======
设置ssh端口转发:
1
2
3
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 22222
错误记录:
1
2
3
4
5
user@MyServer:~$VBoxManage startvm Ubuntu1004 --type headless
Waiting for the VM to power on...
VBoxManage: error: Configuration error: Failed to get the "MAC" value (VERR_CFGM_VALUE_NOT_FOUND).
VBoxManage: error: Unknown error creating VM (VERR_CFGM_VALUE_NOT_FOUND)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component Console, interface IConsole, callee
可能因为原来设置过nic2, 还给nic2设置了端口转发, 后来删除了nic2, 却忘了把转发删除:
设置:
1
2
3
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/1/LUN#1/Config/guestssh/Protocol" TCP
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/1/LUN#1/Config/guestssh/GuestPort" 22
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/1/LUN#1/Config/guestssh/HostPort" 22222
删除:
1
2
3
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/1/LUN#1/Config/guestssh/Protocol"
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/1/LUN#1/Config/guestssh/GuestPort"
user@MyServer:~$ VBoxManage setextradata "Ubuntu1004" "VBoxInternal/Devices/pcnet/1/LUN#1/Config/guestssh/HostPort"
升级:
如果升级遇到错误信息:
1
VirtualBox is currently running. Please close it and try again...
那就找到虚拟机进程, 然后杀掉
1
2
3
ps -aux | grep virtualbox
root 12909 0.0 0.0 7624 920 pts/0 S+ 12:30 0:00 grep virtualbox
user 13438 0.0 0.0 167956 2628 ? Sl May08 13:14 /usr/lib/virtualbox/VBoxSVC --auto-shutdown