Kim_zh

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

   因为需要在host及虚拟机间传输数据,想使用共享文件夹。但是单独设置了共享文件夹后在centos里找不到共享文件夹,看了下要安装增强包。好吧,顺 便也解决下鼠标切换的问题,省的老是按右CTL切换,还有窗口也可以无缝切换,那就方便了。但是直接点了vbox里的增强工具包一直有报错。

找了下,需要几个地方注意下。

VirtualBox 大 家都习惯性把它简称为 Vbox ,比 VM 的体积小、开源、速 度快。不过在使用 VirtualBox  在虚拟机中安装 CentOS 之后,不能直接运行安装好 VirtualBox 的客户端增强功能,需要简 单地配置一下才能在 CentOS 虚拟机中正常安装 VirtualBox 客户端增强功能。下面就看一下 OwnLinux 为大家提供的 “为 CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能”图文教程。

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的话,在挂载的时候就会出现如下 的错误信息:

/sbin/mount.vboxsf: mounting failed with the error: Protocol error

原因分析可以看Tips on running Sun Virtualbox的Shared Folder on a Linux Guest节。

另一详细的:

在VirtualBox中安装好客户操作系统(GuestOS)之后,建议安装VirtualBox增强包(VirtualBox GuestAddition),它的作用是对GuestOS的性能和可用性进行优化(也就是提高GuestOS的性能和提升使用者的使用体验)。

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没有网络也可以。

3.更好的视频支持:VirtualBox的虚拟显卡只提供了最基本的视频特性,而GuestAddition中的显卡驱动提供了超高的分辨率 和2D3D 视频加速。你可以任意调节虚拟机窗口的大小且GuestOS也会自动适应,就如同在GuestOS中设置了任意的分辨率的一样。

4.无缝窗口:这个功能很强大。未安装GuestAddition时,虚拟机窗口只能是一个独立的窗口,安装GuestAddition并启用 无缝窗口模 式之后,GuestOS可以跳出虚拟机窗口并嵌入Host OS的桌面,就好像是Host OS的普通应用程序一样工作。

支持的GuestOS有:<Windows>和<运行X Window的Linux、Solaris>。

无缝模式的开关快捷键:HostKey+L

注:VirtualBox默认的HostKey是右ctrl。

5.通用的Host/Guest 通讯通道:这个功能主要跟程序员有关。GuestAddition中的"Guest Properties(客户机属性)"提供了一个通用的基于字符串的机制,使用此机制可以在Host/Guest之间交换数据,从而控制或者监控 GuestOS。比如在Host OS上直接控制GuestOS的程序启动、运行、关闭等。

6.时间同步:因为某些原因,Host OS和Guest OS的系统时间可能不同步,虽然VirtualBox本身提供了同步功能,但GuestAddition的时间同步的效率和方式大大优于VirtualBox自身。

7.共享剪贴板:也就是可以在Host/Guest OS之间复制粘贴啦。

8.自动登录:可以使GuestOS自动登录,包括使用证书的情况下。

在CentOS 6.3下安装GuestAddition

在安装GuestAddition之间,需要让CentOS为编译生成外置核心模块做好准备。

(原文:Before installing the Guest Additions, you will have to prepare your guest system for building external kernel modules.)

下列操作对CentOS, Red Hat Enterprise Linux and Oracle Enterprise Linux都适用:

建议以root身份运行下列命令。

1.如果你的CentOS 版本早于 6,那么需要在 /etc/grub.conf 中添加一行 divider=10,以将这个参数传递给核心,以减少 idle CPU load。

2.#yum update

把系统的所有软件升级到最新版本。

3.#yum install gcc

安装编译系统

4.#yum install kernel-devel

安装外置核心模块。

5.#reboot

重启以使所有的升级或安装生效。

至此,所有的准备工作就完成了,下面开始安装GuestAddition。

6.在虚拟机窗口的菜单条下选择 "Device"--“Mount CD/DVD-ROM” ,选择 "CD/DVD-ROM image" ,会弹出 Virtual Media Manager 窗口,然后在资源浏览器中找到 VBoxGuestAdditions.iso 文件(这里假设 Host OS 是 Windows),VBoxGuestAdditions.iso 通常位于 VirtualBox 的安装目录下。

注意:VirtualBox虚拟机窗口的菜单很多时候是隐藏的,显示的快捷键是HostKey+C。我找这个急出一身汗。

至此,就相当于在 CentOS 虚拟机中插入了 GuestAddition 的光盘。接下来需要挂载该光盘。

7.#mount -t auto /dev/cdrom1 /mnt

挂载光盘。

注意:VirtualBox默认有2个光驱,分别是 /dev/cdrom 和 /dev/cdrom1 。

如果你挂载命令执行后卡了很久,最后出现:you must specify the filesystem type,说明你需要换个设备名。

我就是在这一步卡了很久,尿都憋出来了,后来发现 VirtualBox 有2个光驱,nnd。

8.#cd /mnt

挂载成功后进入挂载目录。

9.#sh ./VBoxLinuxAdditions.run

安装 GuestAddition。安装过程比较久,慢慢等。

安装成功的画面如下:

clip_image001

好了,整个安装完成。最后需要重启以使 GuestAddition 生效。

#reboot

posted on 2013-11-03 23:38  Kim.zh  阅读(1254)  评论(0编辑  收藏  举报