我刚刚设置了一个新的专用服务器,并全新安装了 Ubunutu 18.04.1 LTS minimal。我正在尝试使用 PHPVirtualBox 安装 VirtualBox,最好使用 VirtualBox 6,但如果需要的话,我也愿意使用 VirtualBox 5。;-)
这是我安装操作系统后所做的事情:
apt update
apt upgrade
apt dist-upgrade
apt install virtualbox
安装似乎已经成功:
root@Ubuntu-1804-bionic-64-minimal ~ # vboxmanage --version
5.2.18_Ubuntur123745
但此时,根据我对以前版本的 Ubuntu 和 VirtualBox 的经验,应该安装四个服务(即 /etc/init.d 中存在的相应文件):vboxautostart-service、vboxballoonctrl-service、vboxdrv 和 vboxweb-service
但是,/etc/init.s 目录如下所示:
root@Ubuntu-1804-bionic-64-minimal /etc/init.d # ls -la
total 128
drwxr-xr-x 2 root root 4096 Apr 3 22:50 .
drwxr-xr-x 82 root root 4096 Apr 3 23:02 ..
-rwxr-xr-x 1 root root 4335 Mar 22 2018 apparmor
-rwxr-xr-x 1 root root 1071 Aug 22 2015 atd
-rwxr-xr-x 1 root root 1232 Apr 19 2018 console-setup.sh
-rwxr-xr-x 1 root root 2489 May 6 2012 cpufrequtils
-rwxr-xr-x 1 root root 3049 Nov 16 2017 cron
-rwxr-xr-x 1 root root 2813 Nov 15 2017 dbus
-rwxr-xr-x 1 root root 985 Mar 4 2018 grub-common
-rwxr-xr-x 1 root root 2363 Jul 17 2017 haveged
-rwxr-xr-x 1 root root 3809 Feb 14 2018 hwclock.sh
-rwxr-xr-x 1 root root 1479 Feb 15 2018 keyboard-setup.sh
-rwxr-xr-x 1 root root 2044 Aug 15 2017 kmod
-rwxr-xr-x 1 root root 6912 May 6 2012 loadcpufreq
-rwxr-xr-x 1 root root 695 Dec 3 2017 lvm2
-rwxr-xr-x 1 root root 571 Dec 3 2017 lvm2-lvmetad
-rwxr-xr-x 1 root root 586 Dec 3 2017 lvm2-lvmpolld
-rwxr-xr-x 1 root root 2653 Mar 7 2018 mdadm
-rwxr-xr-x 1 root root 1249 Mar 7 2018 mdadm-waitidle
-rwxr-xr-x 1 root root 1191 Jan 17 2018 procps
-rwxr-xr-x 1 root root 4355 Dec 13 2017 rsync
-rwxr-xr-x 1 root root 2864 Jan 14 2018 rsyslog
-rwxr-xr-x 1 root root 3837 Jan 26 2018 ssh
-rwxr-xr-x 1 root root 5974 Apr 20 2018 udev
-rwxr-xr-x 1 root root 1306 Mar 15 2018 uuidd
-rwxr-xr-x 1 root root 6444 Nov 11 2017 virtualbox
-rwxr-xr-x 1 root root 2757 Jan 20 2017 x11-common
当我检查内核模块是否已加载时,如这个看似不错的教程,通过systemctl status vboxdrv
,输出为:
root@Ubuntu-1804-bionic-64-minimal ~ # systemctl status vboxdrv
Unit vboxdrv.service could not be found.
当我尝试启用 VirtualBox Web 服务时,如VirtualBox Web 服务文档,通过systemctl enable vboxweb-service
,输出为:
root@Ubuntu-1804-bionic-64-minimal ~ # systemctl enable vboxweb-service
Failed to enable unit: Unit file vboxweb-service.service does not exist.
当我手动添加 virtualbox.org 软件包源并尝试安装 VirtualBox 6 时,也会出现同样的情况。似乎缺少了三个应该存在的服务。我缺少了什么?
答案1
注意:已测试VirtualBox 6.0并且它正在发挥作用。
你使用的 Ubuntu 版本默认没有安装这些服务。不过,你可以下载提供这些服务的官方脚本。
为此,只需将这些命令复制并粘贴到终端并按回车键即可。这将下载脚本并将其添加update-rc.d
到启动脚本中。
cd /etc/init.d/
services=(vboxautostart-service vboxweb-service vboxballoonctrl-service)
base_url="https://www.virtualbox.org/svn/vbox/trunk/src/VBox/Installer/linux"
for service in "${services[@]}"
do
wget "${base_url}/${service}".sh -O "${service}" \
&& chmod +x "$service" \
&& update-rc.d "$service" defaults 90 10
done
- 有关
vboxdrv
:
它不是服务,而是一个模块,需要加载。您可以运行modprobe vboxdrv
来加载该模块,但通常在安装过程中会自动加载virtualbox
。
要检查它是否真的加载,你可以运行
# modprobe -n --first-time vboxdrv
或者您可以使用modinfo
来验证vboxdrv
内核模块是否已加载:
# modinfo vboxdrv
filename: /lib/modules/4.15.0-47-generic/misc/vboxdrv.ko
version: 6.0.4 r128413 (0x00290008)
...
完成所有这些操作后,只需重新启动即可。
重启后,你可以运行service --status-all | grep vbox
来验证服务是否正在运行。
您应该看到类似这样的输出:
[ ? ] vboxautostart-service
[ + ] vboxballoonctrl-service
[ + ] vboxweb-service
现在,您还可以通过 来控制这些服务systemctl
,即systemctl status vboxautostart-service
。
有关每个 Oracle VM VirtualBox 服务的配置选项的详细信息,请参阅官方手册:
网络服务:第 243 页(254/361)
自动启动服务:第 248 页(259/361)