Установите Home Assistant на FreeBSD внутри виртуальной машины bhyve
Для этого на FreeBSD 13.1-p1 vm vm-bhyve 1.5.0 в качестве менеджера виртуальных машин bhyve и qemu-tools 7.0.0_1 требуется преобразовать образ из qcow2 в raw, как я полагаю.
Требования
Требуемые pkgs
- вм-бхиве
- qemu-инструменты
Для этого вам нужно настроить vm-bhyve, о чём я не буду рассказывать.
Шаблон операционной системы Centos8
Создайте файл с именем centos8.conf. Поместите этот файл в папку vm_dir в разделе «.templates».
loader="uefi"
cpu=1
memory=512M
network0_type="virtio-net"
network0_switch="public"
disk0_name="disk0"
disk0_dev="sparse-zvol"
disk0_type="virtio-blk"
Установка
При запуске vm img url образ будет загружен, распакован и помещён в нужную папку. Папка vm_dir определена в /etc/rc.conf в подкаталоге ".img". На тот момент последней версией образа была 8.4. Однако после установки мне сразу же предложили обновиться до версии ОС 8.5.
Загрузить изображение
vm img https://github.com/home-assistant/operating-system/releases/download/8.4/haos_ova-8.4.qcow2.xz
Создание виртуальной машины
Теперь мы создаём виртуальную машину с помощью команды vm create. Параметр -t centos8 определяет шаблон, созданный ранее. Параметр -c 2 указывает, сколько ядер вы хотите назначить виртуальной машине. Параметр -m 8G указывает объём оперативной памяти, 4 ГБ должно быть достаточно. Ознакомьтесь с требованиями на веб-странице Home Assistant. Параметр -s 100G указывает объём дискового пространства, которое вы хотите назначить виртуальной машине. Когда я впервые настраивал это, я выделил только 50 ГБ, чего должно быть более чем достаточно. Однако я использую разреженный ZFS, так как он не будет использовать все 100 ГБ сразу, поэтому я могу выделить больше.
vm create -t centos8 -c 2 -m 8G -s 100G -i haos_ova-8.4.qcow2 haos
Боковое примечание
По какой-то причине при первом запуске этой команды иногда возникает ошибка «Диск занят».
qemu-img: /dev/zvol/tank/bhyve/haos/disk0: error while creating output image: Protocol driver 'host_device' does not support image creation, and opening the image failed: Could not open '/dev/zvol/tank/bhyve/haos/disk0': Device busy
/usr/local/sbin/vm: ERROR: failed to write img file with qemu-img
Если удалить виртуальную машину и создать её заново, она появится.
vm destroy haos
Затем снова выполните команду vm create, и она создаст виртуальную машину. Если проблема не исчезнет, вы можете изменить шаблон, чтобы он использовал образы дисков, а не zfs. С образами дисков такой ошибки никогда не возникало. Также можно указать открытый ключ для аутентификации с помощью -C -k your_key.pub. Но на текущей странице руководства нет информации об этом. И я не уверен, как это работает. По крайней мере, я не могу найти это на странице руководства. С помощью флага -n вы можете задать статический IP-адрес. Кроме того, я смог найти в исходном коде vm-core на GitHub.
Example netconfig param: "ip=10.0.0.2/24;gateway=10.0.0.1;nameservers=1.1.1.1,8.8.8.8"
Я бы хотел, чтобы у вас была возможность задать параметры для выбора сетевого коммутатора, который вы хотите использовать. Но, похоже, такой возможности нет.
Завершение
Проверьте конфигурацию
Завершите настройку, выполнив команду vm configure. В частности, проверьте, подключена ли виртуальная машина к нужному коммутатору виртуальных машин
vm configure haos
Запуск виртуальной машины
Запустите машину, выполнив команду vm start
vm start haos
Контролируйте запуск, запустив консоль виртуальной машины
vm console haos
https://github.com/stiana/tcbsd-haos-installer
https://forums.truenas.com/t/installing-haos-home-assistant-os-in-a-vm/108
wget https://github.com/home-assistant/operating-system/releases/download/16.2/haos_ova-16.2.qcow2.xz
unxz -v haos_ova-16.2.qcow2.xz
qemu-img convert -p -O raw haos_ova-16.2.qcow2 ha_.img