Ubuntu Server 22.04 上的 Virtualbox 问题

Ubuntu Server 22.04 上的 Virtualbox 问题

我从 Ubuntu Server 上的标准存储库安装了 Virtualbox。Virtualbox 版本为 6.1.32,支持内核版本 5.16+(我的版本是 5.15.0-27-generic)。然后我从他们的 github、apache 等安装了 phpvirtualbox。因此,安装后,我没有 vboxwebsrv 服务,很可能是因为这个原因,phpvirtualbox 无法开始

一些输出:

~$ sudo service vboxwebsrv restart
Failed to restart vboxwebsrv.service: Unit vboxwebsrv.service not found.
~$ sudo service vboxdrv start
Failed to start vboxdrv.service: Unit vboxdrv.service not found.

如何修复?

答案1

TLDR(以 root 身份):

# 1. enable virtualbox
echo "LOAD_VBOXDRV_MODULE=1" >> /etc/default/virtualbox
service virtualbox restart

# 2. enable vboxweb-service
echo "VBOXWEB_USER=vbox" >>  /etc/default/virtualbox
cp /usr/lib/virtualbox/vboxweb-service.sh /etc/init.d/vboxweb-service
sudo systemctl daemon-reload
sudo service vboxweb-service restart

解释:

  1. 在 Ubuntu 提供的软件包中,启动脚本是/etc/init.d/virtualbox,其中写道(大约在第 44 行):
if [ "$LOAD_VBOXDRV_MODULE" != 1 ]; then
        log_success_msg "virtualbox disabled; edit /etc/default/virtualbox"
        exit 0
fi

因此必须在 /etc/default/virtualbox 中LOAD_VBOXDRV_MODULE设置为。1

但是,这将加载 virtualbox 内核模块,但它不会启动 Web 服务(这是 phpvirtualbox 工作所必需的...)

  1. 包中存在 vboxweb-service 的启动脚本,但未安装,因此您必须手动将脚本复制到/etc/init.d,然后重新加载 systemd(否则您将收到类似这样的错误Failed to start virtualbox-websrv.service: Unit virtualbox-websrv.service not found.),最后您可以启动 vboxweb-service

此外,您必须指出哪个用户将运行虚拟机(该VBOXWEB_USER指令,但这已在 phpvirtualbox 的文档中解释过)

相关内容