具有 SecureBoot 的 Virtualbox

具有 SecureBoot 的 Virtualbox

我按照本指南使用安全启动设置虚拟机: https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/

我按照所有步骤操作,但当尝试运行 /sbin/vboxconfig 时出现以下错误:

sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.

命令modprobe vboxdrv返回:

sudo modprobe vboxdrv modprobe: ERROR: could not insert 'vboxdrv': Required key not available

更新

按照我的答案中的解决方案操作后,尝试安装虚拟机时出现此错误:

无法为虚拟机 Ubuntu 打开会话。

VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED).

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: ConsoleWrap
Interface: IConsole {xxx-yyy-xxx-yyy-xxx}

更新2:

嗯...看来该问题是由以下原因引起的: https://stackoverflow.com/questions/33304393/vt-x-is-disabled-in-the-bios-for-both-all-cpu-modes-verr-vmx-msr-all-vmx-disabl

所以我不能分配超过 3GB 的空间?`

更新我错过的重要步骤:

在 BIOS 中启用虚拟化!

答案1

我找到了一个解决方案,但我不确定它为什么有效。

在这里的教程中:https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/ 有一个用于签名和加载模块的脚本,应该在每次内核编译后运行。

然而,我发现了另一个,这个: https://github.com/Majal/maj-scripts/blob/master/vboxsign

它可以完成工作并且我可以成功运行 virtualbox。

```

bash vboxsign
vboxdrv: ..~Module signature ap*
vboxdrv successfully loaded
vboxnetflt: ..~Module signature ap*
vboxnetflt successfully loaded
vboxnetadp: ..~Module signature ap*
vboxnetadp successfully loaded
vboxpci: ..~Module signature ap*
vboxpci successfully loaded

```

第二次运行回报:

```

bash vboxsign
Module vboxdrv is already signed. Skipping.
vboxdrv: ..~Module signature ap*
vboxdrv successfully loaded
Module vboxnetflt is already signed. Skipping.
vboxnetflt: ..~Module signature ap*
vboxnetflt successfully loaded
Module vboxnetadp is already signed. Skipping.
vboxnetadp: ..~Module signature ap*
vboxnetadp successfully loaded
Module vboxpci is already signed. Skipping.
vboxpci: ..~Module signature ap*
vboxpci successfully loaded

```

如果我/sbin/vboxconfig在签署模块后运行,那么密钥似乎再次丢失:

```

sudo /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.

```

我认为在签署模块后应该再次运行该命令/sbin/vboxconfig,但似乎该命令重置了签署...

所以也许其他脚本也有效,但我已经重置它们了。

如果我直接运行,virtualbox就不会再出现模块未签名的错误信息,并且 VirtualBox 运行正常。需要测试是否工作正常。

我错过的重要步骤:

在 BIOS 中启用虚拟化!

相关内容