Как запустить виртуальную машину в virtualbox при загрузке системы
Способ автозапуска зависит от операционной системы вашего хост-сервера (где установлен сам VirtualBox) — Windows или Linux.
Ниже приведены самые надежные решения для обеих ОС.
Вариант 1: Если сервер на Windows
Для запуска без входа пользователя в систему (headless-режим) лучше всего использовать Планировщик заданий (Task Scheduler).
Шаг 1. Проверьте точное имя ВМ
Откройте командную строку и выполните:
cmd
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
Запомните точное имя вашей виртуальной машины (например, "Ubuntu-Server").
Шаг 2. Настройка в Планировщике заданий
- Нажмите Win + R, введите taskschd.msc и нажмите Enter.
- Справа выберите «Создать задачу...» (Create Task), а не «простую задачу».
- Вкладка Общие (General):
- Имя: например, Autostart VM Ubuntu.
- Установите переключатель: «Выполнять для всех пользователей» (Run whether user is logged on or not).
- Поставьте галочку: «Выполнить с наивысшими правами» (Run with highest privileges).
- Укажите пользователя, под которым создана ВМ (или Администратора).
- Вкладка Триггеры (Triggers):
- Нажмите «Создать» (New).
- Начать задачу: «При запуске» (At startup).
- (Рекомендуется) Поставить галочку «Отложить задачу на» (Delay task for) — 30 секунд или 1 минуту (чтобы службы VirtualBox и сеть успели полностью инициализироваться).
- Вкладка Действия (Actions):
- Нажмите «Создать» (New).
- Действие: «Запуск программы» (Start a program).
- Программа или сценарий:
text
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
Добавить аргументы:
text
startvm "Имя_Вашей_ВМ" --type headless
(Параметр --type headless запускает машину в фоновом режиме без открытия графического окна, что необходимо для работы до входа пользователя).
6. Нажмите ОК, при запросе введите пароль учетной записи Windows.
Вариант 2: Если сервер на Linux (Ubuntu / Debian / Alma / CentOS)
В современных дистрибутивах Linux проще и надежнее всего сделать службу systemd.
- Создайте файл службы:
bash
sudo nano /etc/systemd/system/vbox-autostart.service
- Вставьте конфигурацию (замените YOUR_USER на вашего пользователя Linux, а VM_NAME — на имя ВМ):
ini
[Unit]
Description=VirtualBox VM Autostart
After=network.target vboxdrv.service
[Service]
Type=forking
User=YOUR_USER
ExecStart=/usr/bin/VBoxManage startvm "VM_NAME" --type headless
ExecStop=/usr/bin/VBoxManage controlvm "VM_NAME" acpipowerbutton
TimeoutStopSec=60
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target(Команда ExecStop гарантирует, что при перезагрузке или выключении сервера виртуальная машина корректно завершит работу через ACPI, а не "выдернется из розетки").
- Примените и включите автозапуск службы:
bash
sudo systemctl daemon-reload sudo systemctl enable vbox-autostart.service
