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

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

我一直在努力在 Debian 虚拟机(Debian 7、Debian 8 和 Debian 9)中安装 VirtualBox Guest Additions。

答案1

作为 root 用户,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 就安装好了。

对于 Debian 10 和 11,VirtualBox 软件包在新版本中提供快速通道服务(另见Debian wiki 上的 VirtualBox 页面)。因此对于 Debian 11:

echo deb http://ftp.debian.org/debian bullseye-backports main contrib > /etc/apt/sources.list.d/bullseye-backports.list
apt update
apt install fasttrack-archive-keyring
echo deb https://fasttrack.debian.net/debian-fasttrack/ bullseye-fasttrack main contrib > /etc/apt/sources.list.d/bullseye-fasttrack.list
echo deb https://fasttrack.debian.net/debian-fasttrack/ bullseye-backports-staging main contrib >> /etc/apt/sources.list.d/bullseye-fasttrack.list
apt update
apt install virtualbox-guest-x11

来宾内核模块包含在 Debian 11 内核中。对于 Debian 10,请按照上面的说明进行操作,替换bullseyebuster,并安装与 Debian 9 中相同的软件包:

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

更详细地说,这是使用 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-backports后)。install

那是全部这是必需的——您不需要在虚拟机中安装来宾添加项,也不需要运行安装程序。您可以将三行 shell 调用添加到您的Vagrantfile(或用于配置虚拟机的任何内容)中,然后忘记它们。

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

(请注意,这将安装您使用的 Debian 版本中可用的来宾添加版本在虚拟机中,这可能与运行虚拟机的 Virtual Box 版本不匹配 - 但来宾添加应该仍然可以正常工作。)

答案2

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

  1. 以 root 身份登录;
  2. 更新您的 APT 数据库

apt-get 更新;

  1. 安装最新的安全更新

    此步骤将升级您的所有软件包,因此请明智地对待它,首先尝试以下步骤,如果没有,它们可能足以工作,然后升级并重试。

apt-get 升级;

  1. 安装所需的包

apt-get install build-essential module-assistant;

2 个软件包(build-essential 和 module-assistant),这两个软件包都是在安装 virtualbox linux 附加软件包时能够重新编译内核模块所必需的,因此此命令将获取工作所需的头文件和软件包(编译器和库),请注意安装你的 virtualbox linux 附加包后,你会留下一些包以及 linux 头文件,之后你可能会删除它们,也可能不会删除它们,在我的例子中,它们并没有什么坏处,但为了系统的整洁,你可能想在玩完后把它们捡起来; )

  1. 通过在终端中运行来配置系统以构建内核模块:

妈妈准备;

  1. 在虚拟机菜单上并在虚拟机运行的情况下!,单击安装来宾添加...来自设备菜单,virtualbox 应该挂载 iso 副本,但如果出于任何原因,它不仅仅在终端运行中:

挂载/media/cdrom。

最后在终端运行:

sh /media/cdrom/VBoxLinuxAdditions.run

按照屏幕上的说明进行操作,然后重新启动。

希望这可以帮助。

CN

答案3

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

我已在使用 VirtualBox 5.0.30 和 OS X 10.11.6 运行 Linux 内核 4.9.0-4 的 Debian 9.4 客户机上成功尝试了后续说明。首先,将来宾插件 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 存储库,因为它包含您可能不想要的软件包的更新。

相关内容