sishui198
作者sishui198·2012-01-20 11:51
软件开发工程师·Esri中国(北京)有限公司

virtualbox体验

字数 4167阅读 3135评论 0赞 0
最近使用virtualbox 做一些任务,但是发现virtualbox的NAT和VMware的似乎不一样,virtualbox的NAT,主机访问不了虚拟机(需要通过映射,才可以),而后者直接就可以,如果有多个虚拟机的话virtualbox给每个机器的都是10.0.2.15,而后者却可以变化。我做的事情是要主机能访问虚拟机,而且虚拟机也要互相访问,vitrualbox有一个internal的配置,就是虚拟机可以互相访问,但是internal是访不了主机的,于是用了两个网卡,但是将internal 设置好了之后使用ifconfig得不到IP,没法就自己手动配置,也不知道配置多少,google了下,找到一篇博文,搞定了,谢谢!一下为博文内容:

http://sunshyfangtian.blog.51cto.com/1405751/479201

测试环境:
主机:Windows 7,VirtualBox4.0.0
客户机:CentOS 5.5-i386

由于是笔记本电脑上做测试,这里以Windows(Host)+CentOS(Guest)为例。实际中,在图形界面下,CentOS操作VirtualBox与Windows操作VirtualBox基本是一样的。

 

一、关于VirtualBox

维基百科是这样描述VlBox的:Oracle VirtualBox是由德国InnoTek软件公司出品的虚拟机软件,现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。它提供用户在32位或64位的Windows、Solaris及Linux 操作系统上虚拟其它x86的操作系统。用户可以在VirtualBox上安装并且运行Solaris、Windows、DOS、Linux、OS/2 Warp、OpenBSD及FreeBSD等系统作为客户端操作系统。

与同性质的VMware及Virtual PC比较下,VirtualBox独到之处包括远程桌面协议(RDP)、iSCSI及USB的支持,VirtualBox在客户机操作系统上已可以支持USB 2.0的硬件设备。


二、VirtualBox虚拟机的文件组成

VBox小巧,其文件组成也相对简单。通过设置路径,把每一台虚拟机的所有文件都保存到一个目录下,测试用的CentOS5.5由以下文件组成:

 
第一个文件夹,存放虚拟机日志,暂时还看不懂日志里面的内容,所以还不知道日志的用途。
第二个文件,应该说是虚拟机的快捷方式,直接双击可以运行虚拟机及其里面的客户机系统。
第三个文件,是这VBox预览功能生成的一个小文件,刚在虚拟机里装好客户机系统时是没有的。删掉也没影响,客户机运行后,会自动重新生成。
第四个文件,vdi文件,这个是核心文件,客户机系统总容量有多大,它就能长到多大。VBox为每一个vdi文件定义了唯一的一个uuid,复制出来的vdi无法在虚拟介质管理器中注册。因此vdi文件不能随便复制以用于另一环境中。


三、VirtualBox生成快照

先说说VBox快照功能,VBox4.0的中文界面将其译成备份功能。系统运行时,随时可以生成当前状态的备份。当生成了备份之后,会在Snapshots目录下创建一个新的vdi文件,之后对当前状态所做的一切操作都将针对最新的vdi文件,但vdi目录下的初始vdi文件就不会再改变了。在系统发生问题时,可以恢复到生成备份当时的系统。恢复后看到的界面是备份时系统正在运行的界面。

具体操作:在运行的虚拟机中,单击“控制”菜单下有个“生成备份”的子菜单,即可备份系统。生成备份后,,单击“控制”菜单下有个“即出”的子菜单,在弹出的“关闭虚拟电脑”对话框中,勾选“强制退出”选项下的“恢复到当前备份”即可。在VBox管理窗口中的“快速修复”选项卡中也可以进行同样的操作。

VBox的备份是线性的,每个虚拟机只能针对当前状态做一个备份,而不能做多个备份。


四、VirtualBox虚拟电脑

VirtualBox 不像Vmware的磁盘文件,拷贝过来是不能直接使用的。但VBox有其自身的解决方法,就是通过“导入虚拟电脑”和“导出虚拟电脑”来实现,其实就是虚拟机克隆功能。

通过“导出虚拟电脑”将当前系统导出成一个ova(Open Virtualization Format Archive)文件。这个文件可以被随便拷贝、存放,需要用的时候,双击或在VBox运行窗口中执行“导入虚拟电脑”,就可以将之前导出的虚拟机导入到VBox中,实质是vdi文件的重新注册过程,虚拟机的设置及其里面的客户机系统保持不变。


五、VirtualBox Guset Additions

VirtualBox Guset Additions的作用包含以下几点:
        实现客户机和主机间的鼠标平滑移动
        与主机实现文件共享
       于主机共享剪贴板的内容,也就是说直接可以在主机、客户机之间复制、粘贴
       使用音效系统,要不然没法用虚拟机听音乐了
        与主机实现时间同步
        自动登录windows

在项操作在CentOS5客户机上还没操作过,在Windows2003客户机上曾装过一回,具体的操作是,启动客户机系统,在drives中选择"安装增强功能(Install Guset Additions)"。在弹出的对话框中,基本上一路“下一步”就OK了。安装结束后,需要重启客户机系统后,可以看到右下角有个四方形的图标,表示系统运行了“Oracle VM VirtualBox Guest Additions”。此时,鼠标可以在当前系统和客户机系统之前随意移动,而在装VirtualBox Guset Additions之前,要从客户机系统回到当前系统是需要按组合键“Ctrl+Alt+Delete”的。而且系统根据当前VBox窗口的大小自动调整像素,也可以全屏显示。

该功能的缺陷之处在于,安装Guest Additions后,客户机基本就绑定到特定的VBox环境中了,不利了虚拟机的克隆和迁移。
 

六、VirtualBox网络配置

安装完VirtualBox4.0.0后,主机多了一个“VirtualBox Host-Only Network ”本地网卡,IP和DNS是自动获取的,在以后的VBox网络配置中,一般保持默认。

VBox中,可以为同一个虚拟机添加四个网卡,对不同的网卡进行不同模式的设置。比如说,添加两块网卡一块的连接方式为NAT,另一块为Host-only Adapter,这样客户机既可以安全上网,也可以和主机通信。

NAT模式
VBox默认是NAT(网络地址转换)方式,Guest OS(客户机系统)装好后(联网方式设为DHCP),就可以直接连网。 使用NAT方式,客户机访问网络由主机提供(其实是通过主机的NAT服务器,这是VirtualBox内置的)。在这种方式下,客户机的网络地址外网不可见,因此外网访问不了客户机,而且主机也无法通过网络访问客户机,要想将主机上的一些资料上传到客户机,是做不来的。

测试时,主机IP是10.8.5.24的内网地址,主机下查看VBox的IP,结果如下:
 

客户机IP是10.0.2.15的内网地址,网关是10.0.2.2,使用route命令,查看结果如下:
 

主机能ping通169.254.134.226,ping不能ping通客户机;客户机ping不通169.254.134.226,但客户机能ping通主机,并而能正常上网。

桥接模式(Bridged Adapter)
将客户机的网络连接改为桥接方式,然后到虚拟系统中,将IP与主机IP设置在同一网段。此时,客户机相当于网络上的一台独立主机。主机、虚拟机、网络上的其他工作站,可以直接互相访问。如果只允许客户机与主机通信,只须将主机网卡设置双IP,一个用于上网,一个用于与虚拟机通信,而无须修改客户机的网络连接方式。这跟将两台主机设置成同一网段,然后用一根网线相连,就可以通信是一样的。

内网模式(Internal)
顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。在主机上同时开两台客户机,IP分别设为192.168.1.1和192.168.1.2(掩码都为255.255.255.0,网关不设),可以正常通信。

主机模式(Host-only Adapter)
这种模式,据说VBox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的(主机上的VirtualBox Host-Only Network网卡),可以通过这张网卡来实现上网及其他功能。

如果要让VBox的虚拟机可以访问外网,需将主机系统的本地连接设为与VirtualBox Host-Only Network共享。如图所示进行设置后,VirtualBox Host-Only Network的IP地址被自动设置,测试时IP为192.168.137.1,子网掩码为255.255.255.0。
 

在客户机中将IP设为同一网段的地址,并将DNS地址设为主机所用的DNS地址。理论上,这时客户机与主机、网络上的其他工作站都可以连接的,但实际测试中,(重新激活的网卡,又重启了客户机),客户机只能与主机通信,而且只是在192.168.137.0这个网段内进行通信。
 

感觉主机模式比较复杂,以后有空再作深入的研究。
 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

  • QT自定义信号
    评论 0 · 赞 0
  • QT 中消息循环和事件处理
    评论 0 · 赞 0
  • 解析Qt内省机制
    评论 0 · 赞 0
  • WPF 绑定数据源的方式
    评论 0 · 赞 0
  • Linux下Mysql相关问题
    评论 0 · 赞 0
  • X社区推广