Debian 9 の新規インストール時に Virtualbox Guest Additions をインストールしようとしましたが、モジュールのビルド時にエラーが発生します。パッケージbuild-essential
, module-assistant
, dpkg
,linux-headers-4.0.3
インストール済み:
$ sudo apt install build-essential dpkg linux-headers-4.0.3-3
$ sudo apt build-dep -y linux
アドインをインストールするには、次の手順を実行します。
$ sudo mount -o remount,exec,ro /media/cdrom0
$ sudo /media/cdrom0/VBoxLinuxAddons.run
エラーが発生しました。
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.1.6 Guest Additions for Linux...........
VirtualBox Guest Additions installer
Removing installed version 5.1.6 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.
sergiy@debian-pc-1:~$
ログには以下が/var/log/VBoxGuestAdditions.log
含まれます。
Created symlink /etc/systemd/system/multi-user.target.wants/vboxadd.service → /lib/systemd/system/vboxadd.service.
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..
Created symlink /etc/systemd/system/multi-user.target.wants/vboxadd-service.service → /lib/systemd/system/vboxadd-service.service.
Created symlink /etc/systemd/system/multi-user.target.wants/vboxadd-x11.service → /lib/systemd/system/vboxadd-x11.service.
ファイル/var/log/vboxadd-install.log
には以下が含まれます。
grep: /lib/modules/4.9.0-3-amd64/build/include/linux/version.h: No such file or directory
make KBUILD_VERBOSE=1 CONFIG_MODULE_SIG= -C /lib/modules/4.9.0-3-amd64/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j1 modules
make -C /usr/src/linux-headers-4.9.0-3-amd64 KBUILD_SRC=/usr/src/linux-headers-4.9.0-3-common \
-f /usr/src/linux-headers-4.9.0-3-common/Makefile modules
test -e include/generated/autoconf.h -a -e include/config/auto.conf || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f /usr/src/linux-headers-4.9.0-3-common/scripts/Makefile.build obj=/tmp/vbox.0
gcc-6 -Wp,-MD,/tmp/vbox.0/.VBoxGuest-linux.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/6/include -I/usr/src/linux-headers-4.9.0-3-common/arch/x86/
------------------------------------------------
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:98:0,
from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
/usr/src/linux-headers-4.9.0-3-common/include/linux/mm.h:1298:6: note: declared here
long get_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
/usr/src/linux-headers-4.9.0-3-common/scripts/Makefile.build:298: recipe for target '/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o' failed
make[4]: *** [/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o] Error 1
/usr/src/linux-headers-4.9.0-3-common/Makefile:1507: recipe for target '_module_/tmp/vbox.0' failed
make[3]: *** [_module_/tmp/vbox.0] Error 2
Makefile:150: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
/tmp/vbox.0/Makefile.include.footer:84: recipe for target 'vboxguest' failed
make: *** [vboxguest] Error 2
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.
出力uname -a
:
Linux debian-pc-1 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u1 (2017-06-18) x86_64 GNU/Linux
$ dpkg -l | dpkg -l grep 仮想マシン
dpkg -l | grep virtualbox
ホストUbuntu 16.10のコマンド結果:
ii virtualbox 5.1.6-dfsg-2 amd64 x86 virtualization solution - base binaries
rc virtualbox-5.1 5.1.22-115126~Ubuntu~yakkety amd64 Oracle VM VirtualBox
ii virtualbox-dkms 5.1.6-dfsg-2 all x86 virtualization solution - kernel module sources for dkms
ii virtualbox-qt 5.1.6-dfsg-2 amd64 x86 virtualization solution - Qt based user interface
ii virtualbox-source 5.1.6-dfsg-2 all x86 virtualization solution - kernel module source
/etc/apt/sources.list
Debian ゲストのファイル:
deb http://deb.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian/ stretch-updates main contrib non-free
deb http://deb.debian.org/debian/ stretch main contrib non-free
deb-src http://deb.debian.org/debian/ stretch main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free
deb http://httpredir.debian.org/debian stretch-backports main contrib non-free
deb-src http://httpredir.debian.org/debian stretch-backports main contrib non-free
Virtualboxプラグイン5.1.6を含むISOは、VirtualBox公式ウェブサイトからダウンロードされます。何が問題なの?どうすれば修正できますか?
答え1
Ubuntuに属しますlinux-headers-4.0.3-3
。linux-headers-4.9.0-3-amd64
このパッケージをdebian 9にインストールする必要があります。
apt install linux-headers-4.9.0-3-amd64
dkms
カーネルモジュールを構築するためにカーネルをインストールして準備します。
apt install dkms
m-a prepare
を通じて走ったVBoxLinuxAddons.run
。
答え2
私の設定はOPに似ています。 @GAD3Rの提案を一度試してみました。
最後に、私が見つけた解決策は最新バージョンのVirtualBox(5.1.24)をインストールしますhttp://download.virtualbox.org/virtualbox/5.1.24/
。