如何仅通过命令行在 CentOS 上安装 Virtualbox Guest Additions

its*_*_me 80 centos virtualbox

阅读 Virtualbox 用户手册,我终于得到了 [这里],它解释了如何通过命令行在 Linux 客户机上安装 Virtualbox Guest Additions。

但对我来说还不够清楚(我刚开始学习一些命令)。有人可以写下您用于通过 CLI 安装 Virtualbox Guest Additions 的确切命令吗?(其中包括查找虚拟机来宾添加的安装位置等)

its*_*_me 115

...最后这对我有用,也应该适用于任何试图在命令行模式下在 CentOS (x86_64) 虚拟服务器上安装 VirtualBox Guest Additions 的人。

# yum update
# yum install dkms gcc make kernel-devel bzip2 binutils patch libgomp glibc-headers glibc-devel kernel-headers elfutils-libelf-devel
# mkdir -p /media/cdrom
# mount /dev/scd0 /media/cdrom
# sh /media/cdrom/VBoxLinuxAdditions.run
Run Code Online (Sandbox Code Playgroud)

注意:在 CentOS 7 及更高版本中,cdrom 位于/dev/sr0而不是/dev/scd0.

该过程完成后,重新启动系统。就这样。

  • 在 CentOS 7 中,cdrom 不在 `/dev/scd0` 而是在 `/dev/sr0` (25认同)
  • @theJerm 我希望你已经弄清楚了这一点,但为了记录:使用 `sudo mkdir /media/cdrom` 创建挂载点(只是一个目录)。 (6认同)
  • 在 CentOS 6.4 64b 的最小安装中,安装命令是 `sh /media/cdrom/VBoxLinuxAdditions.run`。我还必须安装 Perl(`yum install perl`)并创建挂载点(`sudo mkdir -p /media/cdrom`)。 (5认同)
  • 如果人们想知道……在完成任何这些之前,您必须使用 _Insert Guest Additions CD 映像_(当前可在 virtualbox 的窗口菜单中的 _Devices_ 中找到),以便“VBoxLinuxAdditions.run”实际可用。 (4认同)
  • 您还需要`yum install make` (3认同)
  • 我认为这里不需要重新启动。只需检查 /lib 下安装的 vbox* 模块,然后为每个 vbox 模块运行 modprobe;确保 /etc/init.d/vbox* 中的 vbox 启动脚本全部(重新)启动。为了检查 VBoxAdditions 是否正常工作,我将从测试源和 vmguest 之间的复制粘贴开始。运行 VBoxClient-all 命令并查看它是否返回任何内容。如果没有返回任何内容,则 VBox 设置良好。此外,检查 chkconfig 以确保正确定义 vbox 启动脚本以在所需的运行级别启动。 (2认同)
  • 我尝试执行 mount /dev/scd0 /media/cdrom 并且我得到:mount point /media/cdrom 不存在。有什么我想念的吗? (2认同)

Ola*_*che 16

@its_me 的回答几乎奏效,但它无法构建一些内核模块。

如果它不适合您,请查看消息。

就我而言,其中一位要求调查/var/log/vboxadd-install.log. 那里说了一些关于缺少内核源代码并提供内核源代码目录的内容,例如KERN_DIR=/path/to/kernel/sources.

由于已经安装了kernel-devel和 源/usr/src/kernels/2.6.32-504.16.2.el6.x86_64,我很困惑,但使用请求的环境变量调用它

KERN_DIR=/usr/src/kernels/2.6.32-504.16.2.el6.x86_64 sh /media/cdrom/VBoxLinuxAdditions.run
Run Code Online (Sandbox Code Playgroud)

现在它抱怨缺少头文件并建议这样做

yum install kernel-devel-2.6.32-504.el6.x86_64
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一个略有不同的版本,504.16.2而只是504. 安装正确的kernel-devel软件包后,构建然后安装按预期工作。


因此,运行内核和已安装的内核源(又名kernel-devel)必须匹配。您可以通过查看正在运行的内核来验证这一点

uname -a
Run Code Online (Sandbox Code Playgroud)

以及安装的源代码

ls /usr/src/kernels
Run Code Online (Sandbox Code Playgroud)

作为最终结论,无论发生什么,请查看提供的消息和日志文件。


小智 6

这是一个旧线程,但在我搜索类似问题时出现。万一其他人遇到这个问题,以下答案为我解决了这个问题:

http://www.if-not-true-then-false.com/2010/install-virtualbox-guest-additions-on-fedora-centos-red-hat-rhel/

注意* URL 是 2010 年,但文章是在 2013 年更新的。

  • 这些步骤要好得多,因为它们包括所有必要的先决条件,如 perl 和 dkms (3认同)