环境:主机操作系统是Windows 7,虚拟机是CentOs,虚拟机是VirtualBox。
1. 安装增强功能包(Guest Additions)
安装好CentOs5.5后,运行CentOs5.5并登录。然后在VirtualBox的菜单里选择"设备(Devices)" -> "安装增强功能(Install Guest Additions)"。
你会发现在CentOs5.5桌面上多出一个光盘图标,这张光盘默认被自动加载到了文件夹/media/VBOXADDITION_3.2.10_66523(根据版本不同该名称可能有所不同)。进入命令行终端,输入:
#cd /media/VBOXADDITION_3.2.10_66523
#./VBoxLinuxAdditions.run进行安装,安装完成后,会有一个错位项出现,原因是直接在挂载的设备上进行安装,把设备中的内容拷贝到本地即可顺利安装完成。
2、如果出现 specify KERN_DIR=<directory>,安装下面的步骤解决
安装kernel-devel和kernel-headers两个软件包,配置编译环境
先安装好gcc
#yum -y install gcc
再安装kernel-devel和kernel-headers
#yum install kernel-devel kernel-headers
3、错误都排除后,做一个连接
ln -s /usr/src/kernels/2.6.18-194.26.1.el5-i686 /usr/src/linux
注意:一定要进行这此项操作,否则 VirtualBox 客户端增强功能在安装的过程中同样会报错。其中“2.6.18-194.26.1.el5-i686”是内核的版本号,不同的版本可能会不一样,你要根据你自己的系统内核填入。该版本号要与/usr/src/kernels下的文件目录相同。
4、查看是否载入了内核模块vboxsf
重新启动下
#lsmod|grep vboxsf
vboxsf 38088 0
vboxguest 152104 7 vboxsf
说明载入了内核模块 vboxsf
5、设置共享文件夹
重启完成在VirtualBox的菜单点击"设备(Devices)" -> 分配数据空间(Shared Folders)菜单,添加一个共享文件夹,选项固定和临时是指该文件夹是否是持久的。尽量使用英文名称。我这里用winshare.
6、挂载共享文件夹
重新进入虚拟CentOs5.5,在命令行终端下输入:
#sudo mkdir /mnt/share
#sudo mount -t vboxsf winshare /mnt/share
如果提示 /sbin/mount.vboxsf: mounting failed with the error: No such device
可能是没有载入内核模块 vboxfs ,先查看下:
#lsmod | grep vboxsf
如果没有结果返回,说明 vboxsf没有载入,执行
#sudo modprobe vboxsf
正常的话mount -t vboxsf winshare /mnt/share共享文件夹应该可以访问了
#cd /mnt/share
#ls -al
假如您不想每一次都手动挂载,可以在/etc/fstab中添加一项
share /mnt/share vboxsf rw,gid=100,uid=1000,auto 0 0
这样就能够自动挂载了。
本人这样做了,但是每次启动都挂接不上,因此使用以下方法,在系统启动时执行挂接脚本,成功自动挂接
#vi /etc/rc.d/rc.local
在文件的最后加入上面手动挂接的命令,比如:
mount -t vboxsf sharefolder /share
7、取消挂载
#sudo umount -f /mnt/shared
注意:共享文件夹的名称千万不要和挂载点的名称相 同(这一点我并未实验,不过也无必要)。比如,上面的挂载点是/mnt/share,如果共享文件夹的名字也是share的话,在挂载的时候就会出现如下 的错误信息(http://www.virtualbox.org/ticket/2265):
/sbin/mount.vboxsf: mounting failed with the error: Protocol error
原因分析可以看Tips on running Sun Virtualbox的Shared Folder on a Linux Guest节