安装VirtualBox客户附加组件时出现构建主要Guest Additions模块错误。

我在Ubuntu 12.04的主机上使用VirtualBox安装了Ubuntu 12.10的客户端。所有软件都是从软件仓库中获取,没有进行直接安装。当我安装客户端附加组件时,在控制台中显示以下错误。在运行命令之前,我已经将VBoxGuestAdditions.iso映射到了客户端。 我找到的最接近的解决方案是this文章,它建议安装最新版本的VirtualBox(而不是软件仓库中的版本)。是否有其他替代解决方案?
sudo ./VBoxLinuxAdditions.run

Verifying archive integrity... All good.  
Uncompressing VirtualBox 4.1.12 Guest Additions for Linux.........  
VirtualBox Guest Additions installer  
Removing installed version 4.1.12 of VirtualBox Guest Additions...  
Removing existing VirtualBox DKMS kernel modules ...done.  
Removing existing VirtualBox non-DKMS kernel modules ...done.  
Building the VirtualBox Guest Additions kernel modules  
The headers for the current running kernel were not found. If the following  
module compilation fails then this could be the reason.

Building the main Guest Additions module ...fail!  
(Look at /var/log/vboxadd-install.log to find out what went wrong)  
Doing non-kernel setup of the Guest Additions ...done.  
Installing the Window System drivers  
Warning: unknown version of the X Window System installed.  Not installing  
X Window System drivers.  
Installing modules ...done.  
Installing graphics libraries and desktop services components ...done.

1请澄清VirtualBox的版本- v4.2.2已经发布了-你应该使用这个版本。 - fossfreedom
12.04仓库提供的是VirtualBox 4.1.12版本。所以,我应该单独安装它,而不是从仓库中安装。 - Praveen Sripati
6个回答

对于VirtualBox版本4.2.0,Oracle的版本。 安装包virtualbox-guest-x11即可解决问题。

enter image description here

从终端(虚拟系统)
sudo apt-get install virtualbox-guest-x11
重新启动您的虚拟系统。

安装virtualbox-guest-x11允许全屏显示。但是,在虚拟机上运行sudo ./VBoxLinuxAdditions.run时,出现了与原帖中提到的相同错误。这是否意味着虚拟机增强功能已成功安装? - Praveen Sripati
客户附加组件提供了什么?在这里查看。 所以我假设你的问题的答案是是的,已经成功安装。 - NickTux
谢谢 - 明白了 - 接受了答案。所以,你的解决方案会在虚拟机中安装X窗口系统驱动程序。 - Praveen Sripati
你能解释一下这个实际上是干什么的吗?它是替换了OP问题中的 sudo ./VBoxLinuxAdditions.run 命令,还是使其能够工作?这对我在Windows 8.1上运行的VirtualBox 5.0.0 r101573上的Ubuntu 15.10有效吗? - Buttle Butkus
@ButtleButkus,是的。不过,建议使用.run文件安装VB附加组件。但如果由于某种奇怪的原因安装失败,可以尝试答案中指定的软件包。 - NickTux
@NikTh 在做完这个之后,我的虚拟机无法关机。它显示无法卸载客户附加组件并将我送入根模式。所以最近我只能强制关闭虚拟机然后从快照中恢复。虽然这样可以解决问题,但感觉不太对劲。 - Buttle Butkus

虽然我已经安装了“完整的通用Linux内核和头文件”(在Windows Server 2003 / Q6600上运行的VirtualBox下的Ubuntu 12.10),但我仍然收到了可怕的“找不到当前运行的内核的头文件”错误。因此,我查看了这个页面...

为了明确起见,对于那些复制粘贴的人(包括我自己),精确的命令是:

sudo apt-get install build-essential linux-headers-`uname -r` dkms
进一步意味着在“设备”下,首先将“共享剪贴板”设置为“双向”(以便使用方便)。 然后打开一个终端窗口(点击顶部的“Dash”按钮,在搜索框中输入“terminal”,点击终端图标打开同样的窗口)。 然后通过在终端窗口中右键单击来复制/粘贴上述sudo apt-get命令。 然后在提示时输入您的root/admin密码。 然后通过VirtualBox的“设备/安装增强功能”进行安装。 此外,与上述顺序无关但仍涉及增强功能的话题,最新/最好的增强功能始终可以从CD中下载/挂载。

http://download.virtualbox.org/virtualbox/

Ubuntu 12.10的附加信息,后来我发现我必须这样做。
  1. apt-get purge xserver-xorg-video-vmware

  2. 从上述网址下载4.6.2版本的.iso文件,并重新安装增强功能

  3. 在/etc/modules中添加"vboxvideo"(我使用sudo gedit /etc/modules命令,但也可以使用sudo bash -c 'echo vboxvideo >> /etc/modules'命令)

  4. 停止虚拟机运行

  5. 进入设置/显示/启用3D加速

为了获得更好的表现。现在我得到了:
Not software rendered:    yes
Not blacklisted:          yes
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes
除了一些与命令中的Mesa表相关的OpenGL警告之外,还有一些不太令人愉快的警告。
/usr/lib/nux/unity_support_test -p

  1. 打开终端并输入:

    sudo apt-get install build-essential linux-headers-`uname -r` dkms
    
  2. 然后从 设备 → 安装增强功能 重新安装 VirtualBox 客户附加功能

在Windows 7上作为主机使用VirtualBox 2.2.4进行了测试。

升级到Virtualbox 4.2.4版本使用Synaptic软件包管理器(在Ubuntu存储库中,Dash Home没有显示新版本),我仍然需要获取内核头文件以避免“缺少内核头文件”错误消息并构建客户附加组件。
sudo apt-get install build-essential kernel-headers-`uname -r`
注意:那是一个 `uname -r` 的反引号,并不是一个单引号 'uname -r'(在我的键盘上,反引号位于数字1的左边)。

1这给了我一个错误 E: 无法定位软件包 kernel-header-3.5.0.21-generic。 - dibs

升级了最新版本的VirtualBox,问题解决了。现在Guest Additions安装正常。

这是你的操作步骤: 第一步:安装最新版本的Virtual Box。这一点非常重要,无论你现在使用的是哪个版本,都需要先卸载再安装最新版本。 第二步:点击设备 -> 从虚拟机窗口菜单中选择插入Guest Additions CD镜像。 第三步:打开终端,然后...
sudo apt-get install linux-headers-$(uname -r) dkms
步骤4:进入文件夹。
/media/osboxes/VBOXADDITIONS_5.1.6_110634/ 
或者你的VBoxLinuxAdditions.run脚本所在的位置。 第5步:在终端中输入以下命令运行VBoxLinuxAdditions.run脚本 ./VBoxLinuxAdditions.run 第6步:关闭Virtual Box然后重新打开它。它会根据你的需求调整窗口大小。