VirtualBox建立虚拟机

VirtualBox建立虚拟机

目录

1 序2 做母鸡3 母鸡下蛋4 Win8 UEFI固件5 VirbualBox备份6 ssh登录虚拟机7 后记

1 序

以前做过一个流控设备,基于CentOS系统,加载自定义的核心内核模块进行包过滤、识别、分流等功能。当时的版本“母鸡”是在VMWare里面建立的一个虚拟机,存储设备每次就是往CF卡里面复制一个镜像。

后来核心模块引擎出问题,需要让“宝岛”公司调试模块的,竟然让我把虚拟机镜像文件发到海峡对岸。我说,CentOS本来是谁都可以下载的,告诉对方我们用的哪个内核版本就可以,对方编译后就是我们现在用的环境。但领导说,还是把镜像发过去吧。。。

我用一个周末发送过去了,使用的是FTP断点续传;对岸拿到镜像文件后说无非打开,因为没有VMWare,只有VirtualBox。我们赶紧告诉对方,可以安装一个VMWare,有短期免费版本,或者下一个绿色版本。对岸传来一声冷笑。

这个事情不了了之,耽误了时间。开始追查为什么传文件花了这么多时间,为什么要传一个镜像文件过去,不只是传一个内核文件过去之类。

最后,结论是我自作主张,传了4G左右的镜像文件过去。

2 做母鸡

因为以前发生的这个事情,我对搞这个系统发布的母鸡很抵触,不想弄。

正好我笔记本上编译了一个公司系统的测试环境,前后编译了三次,花了一个多月;先后遇到boost编译、fftw编译、多线程支持、nlopt、64bit和32bit兼容等问题,经过反复折腾终于可以用了。

这周给新员工培训,在这个测试环境做做演示,还是非常方便的。那晓得,培训后,要求我给每个人编译一个环境,我头直接大了。

决定使用VirtualBox编译一个母鸡镜像,然后下蛋。

3 母鸡下蛋

3.1 virtualbox kernel版本问题

考虑到大家的笔记本有Windows系统,而我的是Fedora20系统;可能有的是32位,有的是64位。我下了一个i686的Virtualbox。

安装后无法启动,报错:

The VirtualBox kernel modules do not match this version of VirtualBox.

原因就是我笔记本是64位的操作系统,而安装了一个32位的VirtualBox,出现了模块不匹配问题。

64bit的VirtualBox启动后,安装了Fedora20.之所有安装Fedora20,而不是CentOS,是因为我不想重新编译测试环境的几个binary,如果虚拟机继续使用同一个系统,我宿主机上的bianry直接拷贝过去就能用了。

3.2 virtualbox 镜像挂载问题

有时候启动虚拟机会报错挂载失败之类的,只需要重新执行命令:

sudo /etc/init.d/vboxdrv setup

重新启动虚拟机就行了。

3.3 增强功能安装问题

如果要把binary文件放到虚拟机中,要么是ssh传递,但我设置的是共享文件夹,必须先安装增强功能,方法:

cd /run/media/ubx/VBOXADDITIONS_4.3.6_91406/sudo yum distro-syncsudo yum -y kernel-devel kernel-headers dkms gcc gcc-c++sudo yum -y install kernel-devel kernel-headers dkms gcc gcc-c++sudo ./VBoxLinuxAdditions.run 
3.4 挂载共享文件夹问题

其实已经自动挂载共享文件夹到/media/sf_Share/,但用户组信息要root查看。

采用命令:

sudo mount -t vboxsf Share Linux_Share

这个地方“Share”是在宿主机器的目录,不写dirname,只写basenamne;而Linux_Share是要挂载到的目录

3.5 32bit程序兼容问题

系统安装好后,陆续安装各种软件包和链接库,主要遇到的问题是:

系统是64位的,安装软件包默认只安装64位的版本,没有安装i686版本bianry许多地方需要使用32位的库

报错信息:

bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directoryerror while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决方法:

sudo yum -y install glibc.i686sudo yum -y install zlib.i686sudo yum -y install libstdc++.so.6
3.6 Users.bin问题

由于用户信息是二进制文件,虽然是二进制文件,但直接编辑二进制文件还是会暴露用户信息;这种情况下,二进制和明文每啥区别。花了很多时间去用binary删掉用户信息,后来干脆使用Web前端批量删除了。

4 Win8 UEFI固件

拿给别人用的时候,发现都是Win8系统,由于采用了UEFI固件,为了加快启动速度,默认是禁用了BIOS设置的。

进入Win8-【设置】-【常规】-【立即重启】-【疑难】-【UEFI固件】-【重启】,重启后直接进入BIOS,激活“虚拟化技术”。

因为进入了BIOS,顺便激活了UEFI固件之外的启动项,难怪说Win8想不让人装Linux双系统是办不到的!

5 VirbualBox备份

虚拟机支持快照功能,我建立几个快照后,发布镜像的时候直接把VDI磁盘文件拷贝过去,发现里面的内容总是最近的一个快照内容,目前机器的里面的新东西在磁盘里面是没有的。

新建快照就会把新内容存到VDI磁盘文件里面,应该是我没有仔细阅读VirtualBox的文档所致,但也不想花时间去看。

6 ssh登录虚拟机

在virtualbox中建立一个端口转换,比如宿主机ip是192.168.1.128,则在virtualbox设置网络里面选择NAT,并新建端口转换:

宿主机ip         宿主机端口  虚拟机ip    虚拟机ssh默认端口192.168.1.128   2222      10.0.1.25    22

在虚拟机开启ssh服务在宿主机执行ssh 192.168.1.128 -p 2222,则可以ssh登录虚拟机,从而获得一个更好操作的终端环境其它网络服务也是一个道理,进行端口转换即可,注意虚拟机要开启端口、宿主机不要防火墙关闭了端口即可

7 后记

VirtualBox文档算是很齐全的,使用体验也不错,”母鸡下蛋”的过程有点疼而已;另外,我总觉的不会有几个人真的用这个虚拟机的,尽耽误我时间。


作者简介:

朱春来(Leslie Zhu),金融工程师,毕业于西安电子科技大学, 喜欢历史,喜欢编程. 日常在GNU/Linux环境下进行C/C++、Python开发,对Common Lisp、Node.js、金融等感兴趣。可以通过邮箱(pythonisland@gmail.com)联系他,或者直接在他的个人主页上留言.

访问朱春来(Leslie Zhu)的个人主页(http://lesliezhu.github.com)

VirtualBox建立虚拟机

相关文章:

你感兴趣的文章:

标签云: