web-dev-qa-db-ja.com

カーネルのアップグレード後にVirtualBoxが起動しない

昨日、カーネルのアップグレードを受け取り、再起動後に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をインストールしようとしました。ただし、マシンを再起動した後でも、エラーは残ります。

この場合、何ができますか?

15
matpen

私は同じ問題に直面していました。カーネルのアップグレード後、私の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)
9
Anirudh Gupta

@ricabのコメントにリストされている関連問題は、カーネルモジュールを正常にコンパイルするために特定のバージョンレベルのgccを必要とする新しいカーネルの問題にまでさかのぼります。

私のシステムでは、カーネルの更新後にgcc更新がプッシュされ、再コンパイルが失敗しました。

根本的な原因が発見されたら、新しいカーネルをアンインストールして再インストールすることでシステムを修正できました。グラフィックドライバーは修正されましたが、Sudo /sbin/vboxconfigを発行して、新しいカーネルを起動した後にvirtualboxを修正する必要がありました。

私のシステムは14.04なので、16.04システムに適したgccのバージョンについてアドバイスすることはできませんが、これについては https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/ 1750937

4
Organic Marble