昨日、カーネルのアップグレードを受け取り、再起動後にVirtualBoxが動作しなくなりました。
ここに私のシステム情報があります(カーネルのアップグレード後):
matteo@workstation:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
matteo@workstation:~$ uname -a
Linux workstation 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
私はずっと前にVirtualBoxをインストールしました
Sudo apt install linux-headers-$(uname -r)
Sudo apt install virtualbox-dkms virtualbox virtualbox-qt
毎日使用され、カーネルの更新に問題はありませんでした。今受け取ったエラーは
matteo@workstation:~$ Sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Exec format error
matteo@workstation:~$ dmesg | tail -n 1
[ 1413.167311] vboxdrv: version magic '4.4.0-116-generic SMP mod_unload modversions ' should be '4.4.0-116-generic SMP mod_unload modversions retpoline '
このエラーメッセージを含むフォーラム投稿を見つけました here 3日前から、残念ながら解決できませんでした。そのため、UbuntuリポジトリからVirtualBoxパッケージを削除し、 この手順 を使用して最新の5.2をインストールしようとしました。ただし、マシンを再起動した後でも、エラーは残ります。
この場合、何ができますか?
私は同じ問題に直面していました。カーネルのアップグレード後、私のgccバージョンは5.4.1と表示されていました。このバージョンを5.4.0にダウングレードすると、vboxdrvカーネルモジュールのretpolineが手に入りました。
これからの手順に従ってください link 私の問題を解決するのに役立ちました:
Sudo apt-get install ppa-purge
Sudo ppa-purge ppa:ubuntu-toolchain-r/test
#Select gcc version 5 using update-alternatives manually
Sudo update-alternatives --config gcc
これらの手順の後、gcc --versionは(Ubuntu 5.4.0-6ubuntu1〜16.04.9)5.4.0 20160609になります
次に、すべての新しいLinuxヘッダー(4.4.0-116)をパージします
Sudo apt-get purge linux-headers-4.4.0-116 linux-headers-4.4.0-116-generic linux-image-4.4.0-116-generic linux-image-extra-4.4.0-116-generic linux-signed-image-4.4.0-116-generic
もう一度インストールします
Sudo apt-get install linux-generic linux-signed-generic
その後、virtualboxを再インストールし、今回は最新のvirtualbox-5.2をインストールしましたが、virtualboxのデフォルトの5.0バージョンでも問題なく動作するはずです。
Sudo apt-get purge virtualbox-dkms virtualbox virtualbox-qt
Sudo apt-get install virtualbox-5.2
そして、最新モジュールでレトポリンをサポートしています
anirudh@AHDRMD34579:~$ modinfo vboxdrv
filename: /lib/modules/4.4.0-116-generic/misc/vboxdrv.ko
version: 5.2.6 r120293 (0x00290000)
license: GPL
description: Oracle VM VirtualBox Support Driver
author: Oracle Corporation
srcversion: 4880B21EFF1B605D6402982
depends:
vermagic: 4.4.0-116-generic SMP mod_unload modversions retpoline
parm: force_async_tsc:force the asynchronous TSC mode (int)
@ricabのコメントにリストされている関連問題は、カーネルモジュールを正常にコンパイルするために特定のバージョンレベルのgccを必要とする新しいカーネルの問題にまでさかのぼります。
私のシステムでは、カーネルの更新後にgcc更新がプッシュされ、再コンパイルが失敗しました。
根本的な原因が発見されたら、新しいカーネルをアンインストールして再インストールすることでシステムを修正できました。グラフィックドライバーは修正されましたが、Sudo /sbin/vboxconfig
を発行して、新しいカーネルを起動した後にvirtualboxを修正する必要がありました。
私のシステムは14.04なので、16.04システムに適したgccのバージョンについてアドバイスすることはできませんが、これについては https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/ 1750937