web-dev-qa-db-ja.com

CentOS 7のVirtualBoxゲスト追加機能をインストールするにはどうすればよいですか?

どうやって?エラーが発生します。

[vagrant@localhost mnt]$ Sudo ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.16 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.16 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
vboxadd.sh: Building Guest Additions kernel modules.
Failed to set up service vboxadd, please check the log file
/var/log/VBoxGuestAdditions.log for details.

[vagrant@localhost mnt]$ cat /var/log/VBoxGuestAdditions.log
vboxadd.sh: failed: Look at /var/log/vboxadd-install.log to find out what went wrong.
vboxadd.sh: failed: Please check that you have gcc, make, the header files for your Linux kernel and possibly Perl installed..

[vagrant@localhost mnt]$ cat /var/log/vboxadd-install.log
/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.
5
Chloe
vagrant init centos/7
vagrant up; vagrant halt
  • 仮想マシンにCDROMを追加し、VBoxGuestAdditions.isoファイルをドライブに挿入します。

virtual box guest additions

  • 名前vagrantと、Vagrantfileのディレクトリへのパスを使用して、VirtualBoxに共有フォルダーを手動で追加します。 Vagrantが/ vagrantを正しく設定していません。

virtualbox shared folder

  • Vagrantfileを編集して下部に追加し、起動するたびに共有フォルダーをプロビジョニングします。

    config.vm.provision "Shell", run: "always", inline: <<-Shell
        mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
    Shell
    
  • を続行

    vagrant up
    vagrant ssh
    Sudo yum update
    Sudo yum install kernel-devel gcc
    exit
    vagrant halt; vagrant up; vagrant ssh
    export KERN_DIR=/usr/src/kernels/`uname -r`
    Sudo mount /dev/sr0/ /mnt
    cd /mnt
    Sudo ./VBoxLinuxAdditions.run
    
3
Chloe

Kernel-headerとkernel-develをインストールする必要がありました。さらに、仮想ボックスゲストの追加をインストールするためのgcc。

    Sudo yum update
    Sudo yum install kernel-headers kernel-devel
    Sudo yum install gcc*
0
alianjum0

CentOS 7のVirtualBox Guest Additionsヘルパースクリプト

私はこれを新しいVMに変換し、実行スクリプトが失敗したときにいくつかのヘルパーバイナリがそのまま残ることを利用してエラーメッセージを修正します。

VBoxGuestInstall.sh

#!/bin/bash

# reference: https://www.if-not-true-then-false.com/2010/install-virtualbox-guest-additions-on-Fedora-centos-red-hat-rhel/
# though this document is invalid, it does provide the dependencies and the epel repository needed.
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install gcc kms make bzip2 Perl

# get rid of the currently running kernel packages and install the new ones...
yum remove kernel*`uname -r`
yum install kernel*

NEW_UNAME=$(ls /usr/src/kernels/ | grep 'el7.x86_64')
# this command is to ensure the kernel's .config reaches the source directory the 
# modules will be building against.
cp -f /boot/config-$NEW_UNAME /usr/src/kernels/$NEW_UNAME/.config

mkdir /media/VirtualBoxGuestAdditions
mount /dev/sr0 /media/VirtualBoxGuestAdditions

# this will fail, but your helper binaries will be installed
/media/VirtualBoxGuestAdditions/VBoxLinuxAdditions.run
# so we will now direct the helper binary to build for the kernel we want instead of
# the running one invalidly returned by `uname -r` inside of VirtualBox's .run binary.
/sbin/rcvboxadd quicksetup $NEW_UNAME

スクリプトを移動する

すべての依存関係をインストールした後、実行中のカーネルではなく、必要なカーネルをターゲットにします。ホストのlocalhostで単純なhttpサーバーを実行すると、VM内のネットワークアダプターを介してサーバーを取得できます。ゲストの追加をインストールする前の気の利いた小さなトリック。 bitnamiを使用しているのは、うそをついたばかりだからです。simplehttpdや非常によく似たものが機能し、ファイルを提供できるものであれば何でもかまいません。

cd ~/
wget 'http://Host_machine_ip_goes_here:80/VBoxSetup.sh'
chmod +x ./VBoxSetup.sh
Sudo ./VBoxSetup.sh
0
Robert Smith