Fedora虚拟机安装VirtualBox增强功能(Guest Additions)

这篇教程介绍如何在Fedora虚拟机里安装VirtualBox增强功能。不管宿主机使用什么OS,只要VirtualBox里安装的是Fedora系统,就能按照下面的步骤安装VirtualBox增加功能。

VirtualBox增强功能提供了如下4个功能。

  1. 用户可以在宿主机和虚拟机之间无缝地移动鼠标指针。用户不再需要按Host键,即右Ctrl键,使鼠标指针从VirtualBox虚拟机中释放出来。
  2. 宿主机可以将文件系统中的一个目录共享给虚拟机,使虚拟机对这个目录有读取和写入的权限。
  3. 增强虚拟机的图形显卡方面的能力。虚拟机的屏幕可以随窗口大小的变动来自动调整分辨率。虚拟机可以使用宿主机的3D硬件加速能力。如果你用VirtualBox安装Ubuntu虚拟机,那么一定要安装增强功能以使用宿主机的3D硬件加速,否则Ubuntu的Unity桌面运行速度会非常慢。
  4. 宿主机和虚拟机之间可以双向共享剪贴板。

安装VirtualBox增强功能的基本流程

明白了安装的流程,下面的安装步骤就很简单了。VirtualBox增强功能包含了一组设备驱动程序(显卡驱动、鼠标驱动)和系统程序(包括VirtualBox内核模块),它们是安装在虚拟机系统中的,而不是安装在宿主机系统上。VirtualBox内核模块必须使用编译的方法来安装。

所以,安装过程可以分为3步。

  1. 在虚拟机里安装gcc, dkms等开发工具,使我们能在虚拟机里编译软件。
  2. 在宿主机下载VirtualBox增强功能的ISO镜像文件,然后插入到虚拟机的虚拟光驱。
  3. 在虚拟机中安装增强功能。

常见问题

为什么必须要编译VirtualBox内核模块?

内核模块的二进制兼容性取决于Linux内核API。由于每一个版本的Linux内核都会对API做点修改,所以内核升级后,内核模块可能就不会与Linux内核兼容了。我们先编译一次,之后如果内核升级了,DKMS会自动编译VirtualBox内核模块。

为什么不在虚拟机里下载增强功能,而要在宿主机下载增强功能?

因为Oracle以ISO镜像文件的格式提供VirtualBox增强功能。VritualBox本身提供了一个插入ISO文件到虚拟光驱的图形操作方法。这比我们手动在虚拟机里挂载ISO文件要更方便。

Fedora虚拟机安装VirtualBox功能的步骤

升级Fedora系统的软件。

sudo dnf update && sudo dnf upgrade

安装DKMS、GCC编译器、kernel-headers和kernel-devle。

sudo dnf install dkms gcc kernel-devel kernel-headers

重启Fedora虚拟机。

sudo shutdown -r now

然后,在虚拟机的窗口选择设备 > 插入增强功能CD镜像

Fedora虚拟机安装VirtualBox增强功能(Guest Additions)

有一个窗口会弹出,询问你是否要运行VirtualBox增强功能的安装脚本,点击运行(Run)。

Fedora虚拟机安装VirtualBox增强功能(Guest Additions)

有些版本的VirtualBox自带了增强功能的ISO文件,所以就不需要我们手动下载。但有些VirtualBox版本会提示你下载增强功能的ISO镜像文件。

输入密码后,增强功能就开始安装了。在此过程中会编译VirtualBox内核模块,安装X Window驱动程序、鼠标驱动程序。如下图:

Fedora虚拟机安装VirtualBox增强功能(Guest Additions)

所有状态都为OK,就表示增强功能都安装成功了,如果有failed状态,就表示有的组件安装失败。安装成功后,重启Fedora虚拟机,就能让屏幕进入全屏模式,设置文件共享和剪贴版共享了。

为这篇文章评分
[Total: 1 Average: 5]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here