UbuntuでVirtualBox 6.1の仮想マシンが起動しない現象に遭遇しました


気がつくと、VirtualBoxの仮想マシンが起動しなくなっていました。原因はGCCのバージョンでした。GCCが古すぎて-fstack-protector-strongオプションがエラーになっていたためです。GCCを8にしたら解消しました。

現象

VirutalBoxの仮想マシンを起動しようとしても、以下のようなエラーが表示されて起動しません。

dpkg: パッケージ virtualbox-6.1 の処理中にエラーが発生しました (--remove):
 installed virtualbox-6.1 package pre-removal script subprocess returned error exit status 1
A copy of VirtualBox is currently running.  Please close it and try again.
Please note that it can take up to ten seconds for VirtualBox to finish running.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.
処理中にエラーが発生しました:
 virtualbox-6.1
E: Sub-process /usr/bin/dpkg returned an error code (1)

セキュアブートはPCを買ったときからOFFです。

解決方法

vboxdrvをリビルドする際に使われるGCCは4.8で古いものでした。しばらくGCC 8.4を使っていたのですが、仕事でGCC 4.8を使うので一時的にGCCのバージョンダウンをシたのが悪かったようです。

update-alternativesで一時的にGCC 8.4に戻して/sbin/vboxconfigしてVirtualBoxドライバがビルドしました(サービスが起動しました)。

環境

  • Ubuntu 18.04
  • (NGな環境)GCC 4.8
  • (OKな環境)GCC 8.4
  • VirtualBox 6.1