因为需要在host及虚拟机间传输数据,想使用共享文件夹。但是单独设置了共享文件夹后在centos里找不到共享文件夹,看了下要安装增强包。好吧,顺便也解决下鼠标切换的问题,省的老是按右CTL切换,还有窗口也可以无缝切换,那就方便了。但是直接点了vbox里的增强工具包一直有报错。
找了下,需要几个地方注意下。
1.启动安装在 VirtualBox 中的 CentOS 5.5 虚拟机,点击“设备” => “安装增强功能”。这个时候你就可以看到有一个 “光盘”已经挂载到 CentOS 5.5 的桌面上了。它包含了安装 VirtualBox 客户端增强功能的组件。
注意:通常情况下我们直接运行挂载到系统中的 VirtualBox 客户端增强功能的组件就可以了,不过 CentOS 需要配置一下,如果你直接安装就会出现下面的错误。
Bulding the VirtualBox Guest Additions Kernel modules failed
Your system does not seem to be set up to build kernel modules.
Look at /var/log/vboxadd-install.log to find out what went worg. Once you have corrected it,you run
/etc/init.d/vboxadd setup
to build them
2.你需要安装编译内核的相关组件。
yum install kernel-devel gcc
3.在安装完成后,做一个连接
ln -s /usr/src/kernels/2.6.18- 164.15.1.el5-i686 /usr/src/linux
其中,加粗部分,可以直接借助于“Tab”键补齐
注意:一定要进行这此项操作,否则 VirtualBox 客户端增强功能在安装的过程中同样会报错。其中“2.6.18-92.1.18.el5-i686”是内核的版本号,不同的版本可能会不一样,你要根据你自己的系统内核填入。
上述所有在终端中的操作,都可以在任何位置的终端中执行,为保证安全,在执行时,所有的终端都直接使用“应用系统”--“附件”--“终端”,打开终端,定位至“root”。
由 于之前已经执行了virtualbox的“设备”--“安装增强功能”,在桌面上有一个名称 为:VBOXADDITIONS_3.1.6_59338的virtualbox的虚拟光驱(名称可能会根据不同的virtualbox版本而不同),双 击打开,发现很多文件(在执行完上述操作之后,直接双击autorun.sh文件应该可以自动执行安装操作了)。
4.安装 VirtualBox 客户端增强功能工具。
选择和你的系统一致的 VirtualBox 客户端增强功能工具来安装,其中 VBoxLinuxAdditions-x86.run 适用于是32系统的,VBoxLinuxAdditions-amd64.run 是用于64位系统的。
执行以下命令来安装
sh ./VBoxLinuxAdditions-x86.run
虚拟机会自动安装好增强功能,重启虚拟机,鼠标再也不用来回手工切换了!
据说,“NAT”方式的网络连接方式,所有虚拟机的网络连接内容,均需要通过主机的网络进行,因此,可能会有主机与虚拟机同时访问网络时的网速较慢的问题。
另外,virtualbox网站上明明指出了支持centos的,可是在新增虚拟机时,为何不直接给出centos的选项呢?因为centos其实是redhat的社区版。基本等同于redhat的免费版。所以在建立的时候选redhat就可以了。
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节。
另一详细的:
GuestAddition实质上是安装在GuestOS上的一组驱动程序和应用程序。
注意,很多人把下载的增强包双击之后,看到VirtualBox的“全局设定”--“扩展”中已经显示出了增强包的名字就认为已经安装好了,其实那样仅仅 是 从增强包安装文件中解出了相关文件并以插件的形式安装到了VirtualBox中而已。真正的GuestAddition是该安装文件内的1个ISO文 件,必须在GuestOS中进行挂载并安装才能发挥作用,尤其是对于重装GuestOS的情况,“我分明装了GuestAddition,在扩展中也能看 到,怎么没用呢?”,我以前也是没搞明白这一点。
VirtualBox GuestAddition的功能:
1.鼠标集成: 不需要按下VirtualBox的HostKey(默认为右Ctrl)键,就可以从GuestOS中自动释放鼠标,从而无缝的在Host/Guest OS之间移动鼠标。GuestAddition中提供了一个GuestOS的鼠标驱动,可以与HostOS的鼠标驱动进行通讯,从而实现这一点。
2.共享文件夹:可以在Host/Guest OS之间交换文件。通过在Host OS上设置一个文件夹并指定为VirtualBox的共享文件夹,就可以在GuestOS中以网络共享文件夹的形式访问,即使GuestOS没有网络也可以。