从 内核版本 4.4.0-20 开始,在开启了 Secure Boot 的电脑上,未注册的 kernel 模块不再允许执行,所以如果想在保持 Secure Boot 的情况下依然允许执行,我们需要做的则是注册这些模块。可以依次执行如下操作:

  1. 创建签名 keys
    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
    1
  2. 注册模块
    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
    1
    其中 $uname -r 和 $modinfo -n vboxdrv 表示执行命令后的结果填入

  3. 注册 key 到 Secure Boot
    sudo mokutil --import MOK.der
    1
    这条命令会要求输入密码,记住密码,下一步有用

最后重启电脑,会进入如下界面,按照下面的步骤执行即可,执行完后会再次重启。重启完成后再执行:sudo modprobe vboxdrv 即可。
ubuntu 16.04 virtualbox could not insert 'vboxdrv': Required key not available 问题解决方法-LMLPHP

ubuntu 16.04 virtualbox could not insert 'vboxdrv': Required key not available 问题解决方法-LMLPHP

ubuntu 16.04 virtualbox could not insert 'vboxdrv': Required key not available 问题解决方法-LMLPHP

ubuntu 16.04 virtualbox could not insert 'vboxdrv': Required key not available 问题解决方法-LMLPHP

ubuntu 16.04 virtualbox could not insert 'vboxdrv': Required key not available 问题解决方法-LMLPHP

05-08 15:10