为了实现Host主机与虚拟机之间的文件夹映射,过程是各种艰辛,百度谷歌无数,直到大半夜才弄好,程序猿真心伤不起啊。
相对于这一点还是VMware实现的友好一点,不用设置安装搞得这么烦索,个人觉得这是一个必要的功能,何必弄个什么扩展呢?
希望以后能集成进去,可是,现在我们还得自己安装。
VirtualBox 有两类扩展,或者说是插件,
Guest Addition,称为客户端境强包有什么用呢?其有以下几个特性:
无缝鼠标支持
共享文件夹
更好的视频支持
无缝窗口
通用主机/虚拟机间交互
共享剪切版
自动登录
还有一个是Extension Pack(扩展增强包)
其主要括展的主要是:
USB 2.0(EHCI),增强2.0
VirtualBox远程桌面协议(VRDP)
Intel PXE boot ROM
PCI passthrough
我们这里主要是为了共享文件夹,记录一下如何安装Guest Addition及常见的错误:
个人的主机是Ubuntu 13.04,虚拟机安装的是CentOS 6.4,VirtualBox的版本是4.12
最简单的安装Guest Addition 的方法就是Ctrl+D,如果成功那么恭喜,后面没你什么事了。如果没反应,继续跟着我苦B吧。。。
首先下载VBoxGuestAdditions_4.2.12.iso,网址http://dlc.sun.com.edgesuite.net/virtualbox/ 在里面找个对应的版本,这个软件仓库里包含VirtualBox哦。
然后在VirtualBox,里面先择Devices--CD/DvD Devices--Choose a virtual CD/DVD disk file-->VBoxGuestAddition_XXX.iso
持载镜像:sudo mount /dev/cdrom /evil/share 如查不成功,重启后再挂载,后有如下文件:
cd /evil/share
sudo sh ./VBoxLinuxAdditions.sh
会出现几个FAILLED
查看日志发现: Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
这里缺了几个软件
安装几个必备的软件:yum install gcc make
sudo apt-get install linux-headers-`uname -r`
安装dkms,
sudo yum install dkms
下载dkms http://pkgs.repoforge.org/dkms/
wget http://pkgs.repoforge.org/dkms/dkms-2.1.1.2-1.el6.rf.noarch.rpm
直接安装 sudo yum install dkms-2.1.1.2-1.el6.rf.noarch.rpm
sudo yum install kernel-devel-2.6.32-358.el6.x86_64
成功后,再次运行 sudo sh ./VBoxLinuxAdditons.sh
这时只剩一个FAILED ,其它就可以了,后面那个FAILED无关紧要,懒得去弄了。。。
最后在Devices--Shared Foleds 里设置主机共享文件,然后在虚拟机里面挂载即可:
sudo mkdir /home/virtualfile
sudo mount -t vboxsf hostfile /home/virtualfile
FAQ:
/sbin/mount.vboxsf: mounting failed with the error: Protocol error
如果发现这个错误 ,则说明上面的文件路径有错,主机目录只要文件名即可 ,不用绝对路径。
这里最主要的是dkms及kernel-head的下载,可在/usr/src/kernels/文件夹中查看