温馨提示×

CentOS中VirtualBox虚拟机如何设置启动项

小樊
31
2025-12-05 12:24:00
栏目: 云计算

在 CentOS 的 VirtualBox 中,启动项设置通常包含两类:一是虚拟机从哪个设备引导(启动顺序),二是宿主机开机后是否自动启动该虚拟机。下面分别给出操作步骤与命令示例。


设置虚拟机启动顺序

  • 图形界面
    1. 打开 VirtualBox,选中目标 CentOS 虚拟机,点击设置
    2. 进入 系统 → 主板,在启动顺序中调整设备优先级(如将硬盘光驱置顶)。
    3. 点击确定保存。
  • 命令行
    • 仅从硬盘启动:
      VBoxManage modifyvm “<虚拟机名称>” --boot1 disk --boot2 none --boot3 none --boot4 none
    • 优先从光驱启动:
      VBoxManage modifyvm “<虚拟机名称>” --boot1 dvd --boot2 disk
      以上方法可精确控制虚拟机的启动设备顺序

设置宿主机开机自动启动虚拟机

  • 前置准备
    • 确保运行 VirtualBox 的宿主机用户已加入 vboxusers 组(用于权限与自动启动数据库访问)。
  • 配置步骤
    1. 创建并写入自动启动配置
      echo -e “VBOXAUTOSTART_DB=/etc/vbox\nVBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg” | sudo tee /etc/default/virtualbox
    2. 编辑策略文件(示例允许用户 centos 自动启动,并延迟 10 秒)
      sudo tee /etc/vbox/autostartvm.cfg <<‘EOF’ default_policy = deny centos = { allow = true startup_delay = 10 } EOF
    3. 设置数据库路径并赋权
      sudo VBoxManage setproperty autostartdbpath /etc/vbox sudo chgrp vboxusers /etc/vbox sudo chmod 1775 /etc/vbox
    4. 为指定虚拟机启用自动启动(并设定宿主机关机时的行为)
      sudo VBoxManage modifyvm “<虚拟机名称>” --autostart-enabled on --autostop-type acpishutdown
    5. 重启自动启动服务(不同系统服务名可能不同)

      CentOS 7

      sudo systemctl restart vboxautostart-service sudo systemctl enable vboxautostart-service

      如未找到该服务,可尝试

      sudo systemctl restart vboxautostart sudo systemctl enable vboxautostart
    6. 验证
      sudo VBoxManage list vms sudo VBoxManage showvminfo “<虚拟机名称>” | grep -i autostart 以上流程基于 vboxautostart 机制,支持按用户授权与延迟启动,并在宿主机关机时按策略(如 acpishutdown)安全停止虚拟机。

常用命令与排错要点

  • 常用命令
    • 查看虚拟机:VBoxManage list vms
    • 查看运行中:VBoxManage list runningvms
    • 无界面启动(适合服务器):VBoxManage startvm “<名称>” --type headless
    • 正常关机:VBoxManage controlvm “<名称>” acpipowerbutton
  • 排错要点
    • 权限问题:确保执行用户属于 vboxusers,且 /etc/vbox 的组为 vboxusers、权限为 1775
    • 服务名称:不同发行版/版本的服务名可能为 vboxautostart-servicevboxautostart,可用 systemctl list-unit-files | grep vbox 检查。
    • 策略生效:确认 /etc/vbox/autostartvm.cfgdefault_policy 与对应用户的 allow = true 配置正确。
    • 启动顺序验证:VBoxManage showvminfo “<名称>” | grep -i boot,核对 Boot order 是否符合预期。

0