暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VirtualBox 开机自启指定虚拟机

猿武场 2022-10-11
4404

「 Linux 开源指北 」好厨子好菜好下饭

  整理 | 猿胖子

  出品 | 猿武场(ID:apesarena)

关注公众号并回复数字「 1024 」加入猿武场社群 

某些特定场景下需要开机启动特定虚拟机(尤其WIN平台)虽然可以采用更为便捷的容器(Docker)方式来跑一些服务,但这里还是以VirtualBox虚拟机的方式实现

Windows 平台方案

新建BAT脚本文件,auto_alp(虚拟机名).bat 文件命名随意即可,在创建好的脚本文件中添加如下内容。

@ECHO OFF

// ALP为虚拟机名称
VBoxManage.exe startvm ALP(虚拟机名)  --type headless

EXIT

第一步:将BAT脚本文件放到Virtualbox安装目录下

默认的安装目录为:"C:\Program Files\Oracle\VirtualBox",这里以实际安装目录为准

第二步:打开"任务计划程序",创建一个计划任务

1. 在左下角开始菜单中搜索并打开"任务计划程序",点击右侧"创建任务"的安装目录

2. 常规页签中填入名称: ALP(虚拟机名,自定义即可)

3. 安全选项勾选"不管用户是否登录都要运行",勾选"使用最高权限运行"

4. 切换到"触发器"页签,点击新建,选择"在系统启动时",确认

5. 换到"操作"页签,点击新建,选择"启动程序",点击浏览选择auto_alp(虚拟机名).bat脚本文件

起始于填入脚本所在路径,笔者这里默认为"C:\Program Files\Oracle\VirtualBox"(重点)不填入将无法启动脚本

6. 切换到"条件"页签,取消勾选"电源"中的两个选项

完成后重启电脑,查看 virtualbox 虚拟机已经显示运行中。

Linux平台方案

1. 在 etc/default/virtualbox 中添加如下内容

# Auto Starting VMs

VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg

2. 创建自启动服务
新建文件/etc/systemd/system/auto_alp(虚拟机名).service,注意替换自己的用户名及虚拟机信息
[Unit]
Description=vm1
After=network.target virtualbox.service
Before=runlevel2.target shutdown.target
[Service]
User=用户名
Group=vboxusers
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPid=no
RemainAfterExit=yes
// ========== 主要是修改这里 ==========
ExecStart=/usr/bin/VBoxManage startvm 虚拟机名 --type headless
ExecStop=/usr/bin/VBoxManage controlvm 虚拟机名  acpipowerbutton
// ========== 主要是修改这里 ==========
[Install]
WantedBy=multi-user.target

3. 设置开机启动服务
// 设置开机启动
sudo systemctl daemon-reload
sudo systemctl enable auto_alp   // 步骤2中设置的服务名

4. 取消开机启动服务
// 取消开机启动
sudo systemctl disable auto_alp   // 步骤2中设置的服务名

完成后重启电脑,查看 virtualbox 虚拟机已经显示运行中。

代 / 码 / 改 / 变 / 世 / 界
感谢您对猿武场的关注与支持
如果您喜欢本期内容欢迎 点亮 赞、在看、转发文章!

文章转载自猿武场,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论