Oracle VM VirtualBox 设置本机与虚拟机共享文件
文章转载自http://wenku.baidu.com/link?url=5uZ1xWnGC55FGW2XUqzLVdttRcik2xCqwRKEdh6z-nZJ63UQn3j2750ES_q4OrotSE26r3yL36uzRGz_cuSbur4cQYOmc9R4dw4otqOWDV_
环境:主机操作系统是Windows 7,虚拟机是CentOs6.5(RedHat Enterprise版本相同),虚拟机是VirtualBox 4.3.20。
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
#sudo bash ./VBOXADDITION_3.2.10_66523-x86.run或sh VBOXADDITION_3.2.10_66523-x86.run
specify KERN_DIR=<directory> 百度找到解决办法
安装kernel-devel和kernel-headers两个软件包,配置编译环境
先安装好gcc
#yum -y install gcc
再安装kernel-devel和kernel-headers
#yum install kernel-devel kernel-headers
在安装完成后,做一个连接
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”是内核的版本号,不同的版本可能会不一样,你要根据你自己的系统内核填入。#uname -r 可以查看内核版本。
安装成功后,再次执行
#cd cd /media/VBOXADDITION_3.2.10_66523
#sh VBOXADDITION_3.2.10_66523-x86.run
重新启动下
#lsmod|grep vboxsf
vboxsf 38088 0
vboxguest 152104 7 vboxsf
说明载入了内核模块 vboxsf
2. 设置共享文件夹
重启完成在VirtualBox的菜单点击”设备(Devices)” -> 分配数据空间(Shared Folders)菜单,添加一个共享文件夹,选项固定和临时是指该文件夹是否是持久的。尽量使用英文名称。我这里用winshare.
3. 挂载共享文件夹
重新进入虚拟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
这样就能够自动挂载了。
4. 取消挂载
#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节。