没有安装Virtual Box增强功能Guest Additions的虚拟机操作很不方便,比如:
- 虚拟机的分辨率最大只有1024x768;
- 鼠标被虚拟机捕获后要按右Ctrl键才能释放,否则只能再虚拟机里移动;
- 剪贴板不能共享
安装Guest Additions可以解决上述所有问题。
以CentOS 7.3虚拟机为例,如果安装CentOS时没有选择Development Tools组,需要先安装kernel-devel和gcc
$ sudo yum install -y kernel-devel gcc
通过VirtualBox的 设备 | 安装增强功能... 菜单可以加载VBoxGuestAdditions.iso,可以直接点击Run安装或者执行
$ cd /run/media/centos/VBOXADDITIONS_5.1.22_115126
$ sudo sh ./VBoxLinuxAdditions.run
有时安装会出错
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.22 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
Failed to set up service vboxadd, please check the log file
/var/log/VBoxGuestAdditions.log for details.
查询log发现是找不到和Linux内核匹配的源文件
$ cat /var/log/VBoxGuestAdditions.log
vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: modprobe vboxguest failed.
$ cat /var/log/vboxadd-install.log
/tmp/vbox.0/Makefile.include.header:112: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. Stop.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.
查询kernel-devel版本是3.10.0-514.26.2.el7.x86_64,而Linux内核版本是3.10.0-514.el7.x86_64,确实不一致。如果安装CentOS时选择了Development Tools组,kernel-devel版本和Linux内核版本是匹配的,则不会出现这个问题。
$ rpm -qa | grep kernel-devel
kernel-devel-3.10.0-514.26.2.el7.x86_64
$ uname -r
3.10.0-514.el7.x86_64
可以使用下面两个命令中的一个安装和Linux内核版本匹配的kernel-devel
$ sudo yum install -y "kernel-devel-uname-r == $(uname -r)"
$ sudo yum install -y kernel-devel-3.10.0-514.el7
然后再次安装Guest Additions成功
$ cd /run/media/centos/VBOXADDITIONS_5.1.22_115126
$ sudo sh ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.22 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.22 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Starting the VirtualBox Guest Additions.
网友评论
确实是犹豫内核版本不一样导致无法挂载共享
1、登入linux系统查看内核版本 $ uname -r
2、进行系统升级,yum update, 升级结果就能看到内核已经升级了
3.10.0-862.2.3.el7.x86_6
3、这个时候直接安装 yum install gcc kernel-devel kernel-headers dkms make bzip2
查看kernel-devel 版本
kernel-devel-3.10.0-862.2.3.el7.x86_64
这样就内核一致了
4、最后关机
5、利用virtualbox 给这个虚拟机添加 VBoxGuestAddisions 包后缀iso
6、这时候vagrant up就会自动安装了
==> default: Machine booted and ready!
[default] GuestAdditions 5.2.12 running --- OK.
我现在都是这个了
经过反复查找之后,终于找到了一个有用的帮助,就是说:
3.x版本的kernel将这个头文件的位置放在 /usr/src/Kernels/xxx(version)/include/generated/uapi/linux/version.h 了,而早期版本的则位于/usr/src/Kernels/xxx(version)/include/linux/version.h, 较早版本的VMTools则不能自动识别新目录。所以解决方案是通过建立从新版位置的Version.h到/include/linux/version.h的软连接,即 ln -s 命令。
如此这般之后才算可以正常安装了。
/var/log/VBoxGuestAdditions.log for details.的错误提示吗?重启后Settings|Displays里显示器是VBX吗?有哪些分辨率可以选择?