VirtualBox的增强功能VBoxGuestAdditions太酷啦!VirtualBox没装增强功能的时候实在是弱爆了!只能小窗口访问,并且总是要通过hostkey切换鼠标,非常麻烦。一开始我只是想要扩大虚拟机的分辨率,不想它总是那么小窗口不好用,then发现安装VBoxGuestAdditions可以解决好多问题~~
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有:
无缝模式的开关快捷键: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自动登录,包括使用证书的情况下。
windows安装办法:
获取VBoxGuestAdditions有两种办法
一是从官网下载
http://download.virtualbox.org/virtualbox 选择版本号,就能找到相应的版本,例如 http://download.virtualbox.org/virtualbox/4.3.30/VBoxGuestAdditions_4.3.30.iso
获取之后在VBox设置里面将VBoxGuestAdditions_4.xxx.iso文件加载到虚拟机里的虚拟光驱(参考系统镜像加载方法),然后进入虚拟系统里,在里面打开虚拟光驱,运行光驱或者打开光驱直接运行文件VBoxLinuxAdditions.exe(可执行文件)进行安装,安装后重启就可以了。
二是直接在VBox里面下载,这种方法更加简单快捷
打开VBox管理器,点击菜单的“设备” => “安装增强功能”
就会自动下载并弹出安装提示
直接安装之后重启即可。
linux安装方法:
1 同样的,在 VirtualBox 中的 CentOS 7 虚拟机中,点击VBox菜单的“设备” => “安装增强功能”
此时,你会发现VBoxGuestAdditions已经下载在桌面了。它包含了安装 VirtualBox 客户端增强功能的组件。
2 安装编译内核的相关组件,在控制终端敲命令:(注意,这步一定要先用root账号登录,否则可能会安装不成功!)
yum install kernel-devel --外置核心模块
yum install kernel-headers --安装内核,编译内核,驱动必要的
yum install gcc --编译器
yum install gcc-c++
yum install make --自动编译源码的工具,写好makefile就可以方便编译
3 在安装完成后,做一个连接
ln -s /usr/src/kernels/2.6.18- 164.15.1.el5-i686 /usr/src/linux
其中,加粗部分是内核版本,可通过 uname -a 命令查看
注意:一定要进行这此项操作,否则 VirtualBox 客户端增强功能在安装的过程中同样会报错。
4 安装 VirtualBox 客户端增强功能工具
右键查看桌面VBOXADDITIONS_4.xxx_59338 的属性,看其存放路径
然后进入该存放路径进行安装,例如:
cd /run/media/root/VBOXADDITIONS_4.xxx_59338
sh ./VBoxLinuxAdditions.run
!!!此时安装会报错,查了好久才查到原来是少了一个环境变量。。。
需先设置KERN_DIR环境变量以及更新系统所有软件
yum update
Linux的环境变量存放在/etc/profile文件里面,在文件的最后面添加所需要的环境变量即可,如下:
#vim /etc/profile
KERN_DIR=/usr/src/kernels/2.6.32-431.20.5.el6.i686
export KERN_DIR
同样的,加粗部分是内核版本号,要根据自身系统版本修改。将这2行添加好以后,使用 :x 保存并退出
使用source命令来使变量立即生效,若不使用,必须重启之后环境变量才会生效
#source /etc/profile
执行该命令之后,环境变量立刻生效,可以使用命令 #echo $KERN_DIR 来查看刚刚设置的环境变量
THEN,就可以执行第4步,安装成功啦!!最后重启~~~
PS:设置主机和虚拟机可以双向复制文字,在虚拟机设置->常规->高级->共享粘贴板,选择”双向“
5. 设置共享文件夹
重启完成在VirtualBox的菜单点击"设备" -> “共享文件夹”菜单
添加一个共享文件夹,最好使用英文名称,选择固定文件夹
6 挂载共享文件夹
重新进入虚拟CentOs7,在命令行终端下输入:
#mkdir /mnt/share --设置新文件夹
#mount -t vboxsf vboxshare /mnt/share --挂载文件夹,加粗部分是你前面添加的文件夹的名称,即将Windows下的vboxshare文件夹挂载到linux的/mnt/share文件夹,这样在linux中访问/mnt/share就能相当于访问vboxshare文件夹,实现了主机和虚拟机之间的文件共享
#cd /mnt/share --进入文件夹
#ls -al --查看是否挂载成功,若成功,可以看到vboxshare文件夹里的东西
如果挂载有报错 /sbin/mount.vboxsf: mounting failed with the error: No such device
可能是没有载入内核模块 vboxsf ,先查看下:
#lsmod | grep vboxsf
如果没有结果返回,说明 vboxsf没有载入,执行
#modprobe vboxsf
设置开机自动挂载,网上的说法都是可以在/etc/fstab中添加一行
share /mnt/share vboxsf rw,gid=100,uid=1000,auto 0 0
但是本人实践每次启动都挂接不上,重启还会进入到命令行界面,无法进入图形界面,后来发现提示是share:command not found 命令不支持,百度说要开启什么功能才能支持share命令,没细研究。
so,采用另一种方法,在系统启动时执行挂接脚本,在启动脚本文件中加入上面手动挂接的命令
#vim /etc/rc.d/rc.local
mount -t vboxsf vboxshare /mnt/share
可以用source /etc/rc.d/rc.local 命令来看是否会报错
本人实践时一直挂载不成功,后来vim /etc/rc.d/rc.local 的时候发现有提示说要 chmod +x /etc/rc.d/rc.local ,即要为/etc/rc.d/rc.local 文件加上可执行权限,这样做之后就 source /etc/rc.d/rc.local 就没有报错了,重启也挂载成功了~~
7. 取消挂载
#umount -f /mnt/share