UNAS是一款基于Debian Linux 的NAS系统,他的Virtualbox可以让我们装其他系统也集成到NAS系统中来,比如我的UNAS系统使用的是双网口的蜗牛星际主机,我装iKuai 软路由部署到UNAS主机中,当UNAS主机重启后,都需要手动地将iKuai软路由虚拟机启动一篇,对于懒人来说是一个非常痛苦的事情,最大化地追求自动化管理方式,我们本文会用到Vbox的虚拟机系统引导自启动服务
在本指南中,我们将学习如何在Linux上的系统启动时自动启动VirtualBox VM。
VirtualBox带有一项名为vboxautostart-service的服务,可让您轻松地在系统重新引导期间自动启动虚拟机。
为了将VirtualBox VM配置为在Linux上的系统引导时启动,您需要激活自动启动服务。 可以通过在/ etc / default / virtualbox中设置两个变量来激活自动启动服务。
这些变量可以定义为:
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg
要将这些变量放在/etc/default/virtualbox中,请运行以下命令;
echo -e "VBOXAUTOSTART_DB=/etc/vbox\nVBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg" | sudo tee /etc/default/virtualbox
定义虚拟机自动启动配置设置。 自动启动配置文件包含用于控制如何自动启动虚拟机的选项。
vim /etc/vbox/autostartvm.cfg
配置文件
default_policy = deny
vbox = {
allow = true
startup_delay = 10
}
设置数据库目录的所有权
数据库目录/etc/vbox应该是用户可写的,用于自动启动VM。为了简化操作,您可以将数据库目录的组所有权设置为vboxusers组。 再设置组的写权限。 在这种情况下,将使用vbox用户自动启动虚拟机。
root@U-NAS:/# setfacl -m u:vbox:rwx /etc/vbox/
root@U-NAS:/# setfacl -m g:vboxusers:rwx /etc/vbox/
为了防止目录被所有者或root用户以外的其他用户修改或删除,请设置sticky位。
root@U-NAS:/# chmod +t /etc/vbox
作为用户,您可以为单个计算机启用自动启动。 这要求您首先定义数据库目录的路径。
切换为 vbox 用户
root@U-NAS:/# su vbox
$bash
vbox@U-NAS:/$ VBoxManage setproperty autostartdbpath /etc/vbox/
vbox@U-NAS:/$ vboxmanage list vms
"iKuai-1" {112dcbde-d38a-4e19-bcd0-74cd01e3a29d}
"dsm6.2" {1a5ec8f2-2060-42c5-baac-03922240239a}
本示例的虚拟机名称是iKuai-1,然后使用下面命令
vbox@U-NAS:/$ vboxmanage modifyvm {112dcbde-d38a-4e19-bcd0-74cd01e3a29d} --autostart-enabled on
重新启动vboxautostart-service 现在完成配置。 要生效设置,您需要重新启动vboxautostart-service。
vbox@U-NAS:/$ su root
Password:
root@U-NAS:/# systemctl restart vboxautostart-service
要测试您的虚拟机是否可以在系统启动时自动启动,请重新启动系统并进行检查。 系统启动时,您的VM现在应该正在运行。
重启您的 U-NAS主机 查看虚拟机是否自动启动。