Ubuntu 16.04 LTS でカーネルが 4.4.0-143 に上がったらVirtualBoxがブートしなくなった

投稿者: | 2019年3月18日

Ubuntu 16.04 LTS でカーネルが 4.4.0-143 になったらVirtualBoxがブートしなくなった。出ているメッセージは次の通り。

Kernel driver not installed (rc=-1908)
The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

/sbin/vboxconfig
as root.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT. 

しかも/sbin/vboxconfigを動かしても途中でエラーになる。エラーログを見てみるとこんな具合なコンパイルエラーメッセージが出ていた。

/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1113:18: error: too many arguments to function ‘get_user_pages’
             rc = get_user_pages(pTask,                  /* Task for fault accounting. */
                  ^

マジでガチなコンパイルエラーである。ソースコードをみても何をどうしていいかわからない。そこで森羅万象なんでも知っているGoogleにキーワードをぶちこんで検索してみると、こんなページが出てきた。

Kernel 4.4.172 Breaking Some Application
https://slackblogs.blogspot.com/2019/02/kernel-44172-breaking-some-application.html

このページと同じ要領で修正した。もちろん、カーネルバージョンを4.4.143にしている。

修正後、/sbin/vboxconfig を動かすと問題なく終了し、無事、VirtualBoxが立ち上がった。この参考にしたブログエントリーを書いてくれた Willy Sudiarto Raharjo さんに感謝!