105207879

Установка Home Assistant (HAOS) в VirtualBox на Debian 13

🔧 1: Убедитесь, что VirtualBox установлен

# Проверка установки VirtualBox vboxmanage --version # Если не установлен — установите:
sudo apt update
sudo apt install virtualbox virtualbox-ext-pack

💡 VirtualBox Extension Pack нужен для USB 2.0/3.0, RDP, шифрования дисков и других расширенных функций.

🔧 2: Создайте пользователя homeassistant (если ещё не создан)

sudo adduser homeassistant

Добавьте его в группу vboxusers, чтобы он мог управлять VM (если в будущем захотите запускать их от его имени):

sudo usermod -aG vboxusers homeassistant

⚠️ Но запускать GUI-VM от homeassistant нельзя, если он не вошёл в графическую сессию. Поэтому всё будем делать от user.

🔧 3: Проверьте и настройте VM HomeAssistant

 # 1. Создаём VM с именем "HomeAssistant"

sudo -u user VBoxManage createvm --name "HomeAssistant" --register

🔧 4: Настраиваем основные параметры

sudo -u user VBoxManage modifyvm "HomeAssistant" \
--memory 8192 \
--cpus 2 \
--firmware efi \
--boot1 disk \
--nic1 bridged \
--bridgeadapter1 enp3s0 \
--vram 128 \
--usb on \
--usbehci on \
--clipboard bidirectional \
--draganddrop bidirectional
✅ Это одна команда, разбитая на строки для читаемости. Скопируйте и вставьте целиком в терминал.

🔧 5: Добавляем SATA контроллер (обязательно для HAOS)

sudo -u user VBoxManage storagectl "HomeAssistant" --name "SATA Controller" --add sata --controller IntelAHCI

🔧 6: Прикрепляем ваш .vdi-образ как основной диск

sudo -u user VBoxManage storageattach "HomeAssistant" \
--storagectl "SATA Controller" \
--port 0 \
--device 0 \
--type hdd \
--medium /home/user/haos/haos_ova-16.3.vdi

✅ Это одна команда, разбитая на строки для читаемости. Скопируйте и вставьте целиком в терминал.

🔍 Проверьте, что VM существует и VDI прикреплён:

sudo -u user VBoxManage showvminfo "HomeAssistant" | grep -E "(Memory|CPU|Firmware|NIC|USB|VRAM)"


🔧 7: Проверьте регистрацию VM

sudo -u user VBoxManage list vms

Вы должны увидеть что-то вроде:

"HomeAssistant" {12345678-1234-1234-1234-123456789abc}

Если вы видите её — значит, VM успешно зарегистрирована.

🔧 8: Запустите VM

✅ Измените права доступа к файлу .vdi

Выполните команду:

sudo chmod 664 /home/user/haos/haos_ova-16.3.vdi
sudo chown user:user /home/user/haos/haos_ova-16.3.vdi

Это даст пользователю user полный доступ к файлу, а также позволит VirtualBox корректно работать с ним.

🔧 9: Запуск виртуальной машины

Для запуска в фоновом режиме:
sudo -u user VBoxManage startvm "HomeAssistant" --type headless

🔧 10: Дождитесь загрузки и найдите IP


Как найти IP-адрес Home Assistant после запуска?
Как только VM загрузится:
1. Откройте веб-браузер и перейдите по адресу:
👉 `http://[IP]:8123`
Где `[IP]` — это IP, который получила VM в вашей сети (через DHCP).
2. Если вы не знаете IP, можно просканировать сеть:
sudo nmap -sn 192.168.1.0/24
Найдите MAC-адрес VirtualBox (`08:00:27:...`) и соответствующий ему IP.

 🔧 Шаг 7: (Опционально) Настройка автозапуска VM при загрузке системы

Если вы хотите, чтобы VM запускалась автоматически при загрузке Debian (например, как сервер):

🔧 Создайте файл сервиса:

Создайте директорию (если её нет):

mkdir -p ~/.config/systemd/user

Создайте и отредактируйте файл сервиса:

nano ~/.config/systemd/user/homeassistant.service

Вставьте следующее содержимое:

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=user
Group=user
WorkingDirectory=/home/user/homeassistant
ExecStart=/home/user/homeassistant/bin/hass
Restart=always
RestartSec=3

# Установите переменные окружения, если нужно
Environment=LANG=en_US.UTF-8
Environment=LC_ALL=en_US.UTF-8

# Для работы с USB-устройствами (например, Zigbee)
# Environment=HOME=/home/kvictor

[Install]
WantedBy=default.target
Description=VirtualBox HomeAssistant VM

After=multi-user.target
✅ Объяснение ключевых параметров:

  • User=user — сервис запускается от имени пользователя.
  • ExecStop=acpipowerbutton — корректное выключение (как кнопка питания), а не poweroff — чтобы HA мог корректно завершиться.
  • Restart=always — перезапуск при падении.
  • ExecStartPre — проверка, что VM зарегистрирована.
  • WantedBy=default.target — запуск при входе пользователя в сессию (даже без GUI).

✅ Перезагрузите юзерский systemd и включите сервис

systemctl --user daemon-reload
systemctl --user enable homeassistant.service
systemctl --user start homeassistant.service
systemctl --user status homeassistant.service
Теперь должно сработать!

✅ Включите linger (обязательно для автозапуска при загрузке!)

sudo loginctl enable-linger user

✅ Это позволяет systemd --user запускаться при загрузке системы, даже если пользователь не входил в сессию.

После этого Home Assistant будет запускаться автоматически при каждом включении сервера.

🔍 Проверка: Убедитесь, что сервис включен и работает

# Проверить статус
systemctl --user status homeassistant.service
# Проверить, включён ли сервис
systemctl --user is-enabled homeassistant.service
# Должно быть: enabled
# Проверить, запущен ли процесс
ps aux | grep hass

💡 Бонус: Как проверить, что linger работает?

loginctl show-user user | grep Linger

Вывод должен быть:

Linger=yes
🎉 
Теперь Home Assistant будет запускаться автоматически при загрузке сервера — как полноценный системный сервис.

✅  Перезагрузите сервер и проверьте

sudo reboot

После перезагрузки:

  1. Подождите 1–2 минуты — HAOS загружается медленно.
  2. Подключитесь к HA через браузер:
    http://<IP-сервера>:8123
  3. Проверьте, что VM запущена:

sudo -u user VBoxManage list runningvms

Вы должны увидеть:

"HomeAssistant" {12345678-1234-1234-1234-123456789abc}

 

Comments powered by CComment