设为首页 收藏本站
查看: 887|回复: 0

[经验分享] Virtualbox终极无间配置篇

[复制链接]

尚未签到

发表于 2015-4-14 08:33:57 | 显示全部楼层 |阅读模式
  Virtualbox有个问题,就是即使是相同用户启动,如果用户session不一样,那么还是会看到不同的启动结果,不能相互管理不同session启动的虚拟机(via)。这就杯具了啊,有时候,启动几个虚拟机,但是其中有一个死机了,要从主机的任务管理器里结束进程,我咋知道应该结束哪个???
还有一个问题,就是网络默认是NAT,很灵活也很方便,端口转发很实用。但是有一个致命伤,就是大流量多连接情况下,容易导致内存溢出,虚拟机断网,甚至进程崩溃等问题。
我看到最近几个更新的changelog有改善NAT的问题,所以卸载了原来的Virualbox,重启,安装新版,重启。然后打开虚拟机,卸载Virtualbox Guest Addtion,重启,安装新版,重启。至此,由外到里更新完毕。
然后,开始正式的配置。
同步全局的Virtualbox设置
我们知道,默认的Virtualbox设置是因用户而异的,一般存放在“C:\Documents and Settings\用户名\.Virtualbox”文件夹中。我们可以设定一下,使设置文件统一存放:新建“VBOX_USER_HOME”变量,里面填入设置存放的目录即可。
虚拟机以服务形式启动(via)
下载srvstart,编辑下面内容存为srvstart.ini,比如保存在D盘根目录下:
env=VBOXHEADLESS="C:\Program Files\Oracle\VirtualBox\vboxheadless.exe"
env=VBOXMANAGE="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
debug=0
debug_out=>D:\soft\vbox\srvstart.log
wait_time=60
[Win2003]
startup=%VBOXHEADLESS% -startvm Win2003
shutdown_method=command
shutdown=%VBOXMANAGE% controlvm Win2003 poweroff
[VMWinXP]
startup=%VBOXHEADLESS% -startvm WinXP
shutdown_method=command
shutdown=%VBOXMANAGE% controlvm WinXP poweroff
然后运行下面命令即可安装里面的WinXP为系统服务VMWinXP:
srvstart install_desktop VMWinXP -c d:\srvstart.ini
类似的,安装里面的Win2003为系统服务则是:
srvstart install_desktop Win2003 -c d:\srvstart.ini
当然,可以用系统命令sc创建系统服务,不过要注意两点:
SC中,参数等于号后面要有一个空格,如“binPath= ”,后面有个空格哦,蛋疼得很。
Virtualbox的服务需要开启桌面互动,否则会启动出错
WEB管理Virtualbox:
由于相同用户不同session也会导致虚拟机状态不同步,而且启动服务需要开启桌面互动,所以我们只能用默认的本地服务(Local Service)身份来启动服务。而Virtualbox的web service默认的验证方式是用户验证,所以我们要先把验证取消:
VBoxManage setproperty websrvauthlibrary null
然后设置Virtualbox的web api为服务,还是使用srvstart工具。我们先编辑刚刚的srvstart.ini,在末尾加上:
[VboxWebSrv]
startup=%VBOX_INSTALL_PATH%\VboxWebSrv –threads=20
shutdown_method=kill
并安装其为“VboxWebSrv”服务:
srvstart install_desktop VboxWebSrv -c d:\srvstart.ini
然后到SVN“phpvirtualbox”项目的源码,它是Virtualbox的WEB GUI。像安装PHP程序一样安装。注意要SOAP扩展,以及把config.php的用户名和密码置空。
启动“VboxWebSrv”服务,访问你刚刚安装的“phpvirtualbox”,应该看到了正常的仿真Virtualbox面板。怎么样,可以通过web控制了吧。最重要的是,解决了不同session的虚拟机有不同状态的问题。
要注意两点:
VboxWebSrv默认占用127.0.0.1的18083端口,注意让防火墙放行。由于取消了验证,所以建议只监听本地的127.0.0.1(默认)
由于phpvirtualbox本身不设有验证机制,也就是说,Virtualbox的web控制端是可以公开访问的,所以有必要添加基于web的认证。Apache可以用.htpasswd解决。参考http://blog.creke.net/273.html。
NAT环境下的端口映射和端口转发(via)
VBoxManage modifyvm "VM name" –natpf1 "guestssh,tcp,host ip,2222, guest ip,22"
命令解释:
跟之前的一样,我们可以看到熟悉的VBoxManage的身影。紧随其后的是 modifyvm ,跟之前版本的命令不一样。然后就是“VM NAME”虚拟机名称,将其替换成相应的虚拟机名称就可以了。接着就是重点部分了,NAT端口映射的参数。
1.natpf1 我们可以很容易理解这个参数,natpf即 nat port forwarding的缩写。后面紧接着的是虚拟机设置中相应网卡的数字,如果你的网卡是第一个,则为1。
2.natpf后的参数
(1)guestssh 是这个端口映射的名字,自行修改成容易理解的名称吧,如果填则系统会自动生成。
(2)tcp (or udp) 是映射的协议。
(3)host ip 则是你的主机的IP地址,如不填写则映射到主机中的所有IP地址上的相应端口。
(4)2222(host port) 主机端口,自选吧。
(5)guest ip 虚拟机中的IP地址,很明显,不填写则映射到虚拟机中的所有IP地址上的相应端口。
(6)22(guest port)虚拟机端口,自选+1。
如果要删除端口映射,只需要输入以下命令:
VBoxManage modifyvm "VM name" –natpf1 delete "guestssh"
清理压缩Virtualbox磁盘镜像
可以使用VBoxManage命令中的modifyhd的compact参数解决。Windows虚拟机可以使用微软官方的SDelete工具来清理磁盘。
具体步骤和原理参见Virtualbox官方的User Guide的Vboxmanage-modifyvdi部分。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56919-1-1.html 上篇帖子: VirtualBox 扩大硬盘空间 下篇帖子: 【转载】VirtualBox中实现与主机文件的共享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表