温馨提示×

Ubuntu VirtualBox如何设置虚拟机启动项

小樊
39
2025-12-12 06:28:46
栏目: 云计算

Ubuntu 主机上的 VirtualBox 启动项设置

一 调整虚拟机的启动顺序

  • 选中虚拟机 → 点击设置系统主板,在启动顺序中将需要的设备(如光驱硬盘网络)上下移动,排在上面的优先级更高。
  • 需要从 ISO 安装系统时,将光驱置顶,并在存储中把 ISO 挂载到虚拟光驱;安装完成后可将硬盘置顶,避免每次都从光盘启动。
  • 提示:启动设备名称可能显示为IDE/SATA CD/DVDSATA 硬盘网络等,按需要调整即可。

二 临时改变一次启动设备

  • 图形界面:启动虚拟机时按住Shift键,进入引导菜单,用方向键选择目标设备后回车。
  • 命令行:使用 VBoxManage 直接指定启动设备,例如从虚拟光驱启动
    VBoxManage startvm “虚拟机名称” --type headless --cdrom /path/to/ubuntu.iso
    说明:–type headless 表示后台启动;如需前台窗口可去掉该参数。

三 设置开机自动启动虚拟机

  • 方法 A systemd 服务(Ubuntu 16.04+ 推荐)

    1. 创建服务文件:sudo vim /etc/systemd/system/vm-abc.service
    2. 写入示例(将 abc 替换为你的虚拟机名,按需改为你的运行用户):
      [Unit]
      Description=Start VM abc
      After=network.target virtualbox.service
      [Service]
      User=你的用户名
      Group=vboxusers
      Type=forking
      ExecStart=/usr/bin/VBoxManage startvm “abc” --type headless
      ExecStop=/usr/bin/VBoxManage controlvm “abc” acpipowerbutton
      RemainAfterExit=yes
      [Install]
      WantedBy=multi-user.target
    3. 启用并验证:
      sudo systemctl daemon-reload
      sudo systemctl enable --now vm-abc.service
      sudo systemctl status vm-abc.service
      说明:使用 acpipowerbutton 可触发来宾系统的正常关机流程,比直接 poweroff 更安全。
  • 方法 B VirtualBox 内置自动启动数据库(系统级,适合多用户/集中管理)

    1. 建立目录与配置:
      sudo mkdir -p /etc/vbox
      echo ‘VBOXAUTOSTART_DB=/etc/vbox’ | sudo tee /etc/default/virtualbox
      echo ‘VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.conf’ | sudo tee -a /etc/default/virtualbox
    2. 设置目录权限并加入用户组:
      sudo chgrp vboxusers /etc/vbox
      sudo chmod 1775 /etc/vbox
      sudo usermod -aG vboxusers $USER
    3. 配置策略与用户(将 youruser 替换为实际用户名):
      echo ‘default_policy = deny’ | sudo tee /etc/vbox/autostart.conf
      echo ‘youruser = { allow = true; startup_delay = 10; }’ | sudo tee -a /etc/vbox/autostart.conf
    4. 设置数据库路径并为指定虚机启用自动启动:
      VBoxManage setproperty autostartdbpath /etc/vbox
      VBoxManage modifyvm “abc” --autostart-enabled on
    5. 使能服务(不同发行版服务名可能不同,常见为 vboxautostart-service 或 virtualbox):
      sudo systemctl enable --now vboxautostart-service
      说明:该方式会在系统启动阶段按配置自动拉起虚机,适合服务器环境。

四 常见问题与排查

  • 权限错误:执行 VBoxManage 修改自动启动数据库时报错“VERR_ACCESS_DENIED”,请确保运行用户对**/etc/vbox具有写权限并已加入vboxusers**组(groups 命令核验)。
  • 找不到命令:确认安装了 VirtualBox 且 /usr/bin/VBoxManage 存在;若未安装,请先安装 VirtualBox。
  • 服务未生效:执行 sudo systemctl daemon-reload 后重载,再用 systemctl status 查看报错并修正单元文件。
  • 启动方式:无界面需求建议使用**–type headless**;需要前台窗口则去掉该参数。

0