如何在Debian虚拟机中安装VirtualBox Guest Additions


Answers:


66

作为根用户,Debian 9的TL; DR版本是:

echo deb http://ftp.debian.org/debian stretch-backports main contrib > /etc/apt/sources.list.d/stretch-backports.list
apt update
apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)

就是这样,VirtualBox Guest Additions已安装。

VirtualBox在Debian 10中不可用,也不会在buster-backports其中提供。Lucas Nussbaum有一套非官方的软件包;如果要使用它们,则应按照他的说明进行操作(仅链接-如果链接停止有效,则说明软件包也不可用,因此在此处复制说明毫无意义)。

更详细地,这是使用Debian软件包的Debian 7、8和9的解决方案:

  • 对于Debian 7和8,启用contrib存储库;例如对于Debian 8,请确保您/etc/apt/sources.list包含类似

    deb http://ftp.debian.org/debian jessie main contrib
    
  • 对于Debian 9,使用启用反向移植contrib;为此,添加一行

    deb http://ftp.debian.org/debian stretch-backports main contrib
    

    /etc/apt/sources.list(或更好的是,)中的stretch-backports.list文件/etc/apt/sources.list.d

  • install virtualbox-guest-dkms,内核头文件,以及virtualbox-guest-x11(对于图形来宾实用程序)(可选):

    sudo apt update
    sudo apt install virtualbox-guest-dkms virtualbox-guest-x11 linux-headers-$(uname -r)
    

    (如果您使用的是Debian 9,请在第二行中加上-t stretch-backportsafter install)。

这就是全部所需–您不需要在VM中挂载来宾添加项,也不需要运行安装程序。您可以将三行外壳程序调用添加到您的Vagrantfile(或用于配置VM的任何内容)中,而不必理会它们。

安装virtualbox-guest-dkms软件包将确保自动构建适当的内核模块(并在升级内核时重新构建),并安装来宾添加项。

(请注意,这将安装您在VM中使用的Debian版本中可用的来宾添加程序的版本,该版本可能与运行VM的Virtual Box版本不匹配,但是来宾添加项仍然可以正常使用。)


1
确认适用于Debian 8.3-3.16.0-4-amd64-3.16.51-3(2017-12-13)您可以安装“仅服务器”功能,而无需通过apt-get install --no-install添加X-11 -推荐virtualbox-guest-utils virtualbox-guest-dkms linux-headers-$(uname -r)
Marco Rossi

关于有效安装的真正有价值的信息!我选择使用由Richard在superuser.com/a/1025183/187346上建议的vagrant-vbguest, 因为我一直在共享文件夹中遇到流浪汉错误,因为未安装来宾添加,但指定了文件夹。
科林'18

53

请按照以下步骤在Linux Debian虚拟机上安装VirtualBox Guest Additions:

  1. 打开终端并成为rootsu); 如果已sudo启用,则还可以例如执行sudo -i; 查看man sudo所有选项):

    su
    

输入root密码,然后按Enter

或者,sudo -s如果已安装它,并且您登录的用户具有必要的权限,则可以使用...

  1. 更新APT缓存:

    apt-get update
    
  2. 安装最新的安全更新:

    此步骤将升级您的所有软件包,因此要明智一些。请先尝试以下步骤,否则可能足够工作,然后执行升级并重试。

    apt-get upgrade
    
  3. 安装以下必需的软件包:

    软件包build-essential和软件包module-assistant都是编译内核模块所必需的,因此,在安装VirtualBox Linux Guest Additions时必须具有它们。因此,此命令将获取工作所需的头文件和程序包(编译器和库)。请注意,在安装VirtualBox Linux Guest Additions之后,您将留下一些软件包以及Linux标头,您可以稍后将其删除或不删除。就我而言,它们并没有受到伤害,但是为了系统整洁,您可能希望在玩完之后再接。

    apt-get install build-essential module-assistant
    
  4. 配置系统以构建内核模块:

    m-a prepare
    
  5. 插入访客附加ISO:

    展开菜单设备,然后单击插入来宾添加CD映像...

  6. 它应该自动安装,但是由于某种原因它不会:

    mount /media/cdrom
    
  7. 运行以下脚本:

    sh /media/cdrom/VBoxLinuxAdditions.run
    
  8. 重新启动系统:

    reboot
    

3
这适用于Debian的9
Ortomala Lokni

1
在Debian 9上,这给出了一条错误消息,提示“无法找到当前Linux内核的源”。
user2800708

2
您缺少内核标题,请尝试sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
ximbal

还要检查您是否安装了最新的virtualbox
Hayden Thring,

2
该命令m-a prepare应拉出linux-headers软件包,所有说明在Debian 9安装中均能正常工作。
alemani

5

从Debian存储库安装VirtualBox guest虚拟机插件的另一种方法是使用供应商的资源。预计该存储库将提供较旧且更稳定的代码,而来自供应商的源将具有最新功能和安全更新。

我已经在使用VirtualBox 5.0.30和OS X 10.11.6的运行Linux内核4.9.0-4的Debian 9.4 guest虚拟机上成功尝试了以下说明。首先,将来宾附加程序ISO映像附加到虚拟机,然后启动它。启动后,映像的内容将在中提供/media/cdrom0/。首先,必须安装两个软件包及其依赖项:

$ sudo apt-get install linux-headers-$(uname -r) build-essential

然后,运行供应商提供的脚本来构建和安装必要的内核模块:

$ cd /media/cdrom0/
$ sudo sh VBoxLinuxAdditions.run

重新启动虚拟机,尽情享受吧!


4

在Debian 9中,virtualbox-guest-dkms软件包位于不稳定的(sid)存储库中。

  • 将此添加到/etc/apt/sources.list

    deb http://http.us.debian.org/debian sid main non-free contrib
    
  • 更新存储库并安装软件包

    sudo apt-get update
    sudo apt-get install virtualbox-guest-dkms
    
  • 可选:禁用sid存储库,因为它具有您可能不需要的软件包的更新。


直到我重新启动虚拟机为止,这似乎一直有效。备份后,它仍然“ rsync” d,而不是将当前主机目录挂载到/vagrantVM上。由于该挂载是我想要添加来宾的全部原因,因此仍然无法解决。
offby17年

通常,使用back-backport而不是使用sid更好吗?
卡尔·巴特尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.