VirtualBox 开机自启动虚拟机
2024-05-17 06:59:35

在无法完全脱离Windows生态系统的情况下,我们可能需要在Linux环境下运行虚拟机来解决问题。

然而,每次手动启动虚拟机可能会有些麻烦,因此我们可以设置自动启动功能。

创建配置文件

1
2
touch /etc/default/virtualbox
nano /etc/default/virtualbox

在打开的编辑器中添加以下内容:

1
2
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/vbox.cfg

接下来,我们需要编辑虚拟机配置文件:

1
nano /etc/vbox/vbox.cfg

确保文件中包含以下内容:

1
INSTALL_DIR=/usr/lib/virtualbox

然后,在文件末尾添加以下内容:

1
2
3
4
default_policy = deny
user1[seele] = {
allow = true
}

接着,我们需要修改文件的权限和所属组:

1
2
sudo chgrp vboxusers /etc/vbox
sudo chmod 1775 /etc/vbox

最后,设置自动启动的数据库路径:

1
VBoxManage setproperty autostartdbpath /etc/vbox

创建系统服务

现在,我们将创建一个 systemd 服务以实现虚拟机的自动启动:

1
sudo nano /etc/systemd/system/autostart_vm@.service

在编辑器中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=Guest VM %I
After=network.target vboxdrv.service
Before=runlevel2.target shutdown.target

[Service]
User=seele
Group=vboxusers
Type=forking
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/usr/bin/VBoxManage startvm %i --type headless
ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton

[Install]
WantedBy=multi-user.target

启用自动启动

查看可用的虚拟机列表,记住要启动的虚拟机名字:

1
VBoxManage list vms

然后,启用自动启动服务,将“Windows”替换为你要自动启动的虚拟机名称:

1
sudo systemctl enable autostart_vm@Windows

现在,重新启动系统,查看虚拟机是否会自动启动。

Prev
2024-05-17 06:59:35
Next