Skip to main content

Установите 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