Skip to main content

HA-VM installieren mit virt-install unter Linux Ubuntu

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst
sudo adduser $USER libvirt
# Neu einloggen oder 'newgrp libvirt' damit die Gruppe aktiv wird

# Namen deines Ethernet-Interfaces herausfinden:
ip link show

# gucken, ob vorhanden yamls im verzeichnis /etc/netplan sind (zb durch cloud-init mit prio 50-cloud-init.yaml) und diese anpassen oder mit höherer prio setzen
# sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    enp3s0:          # ← deinen Interface-Namen eintragen
      dhcp4: false
  bridges:
    br0:
      interfaces: [enp3s0]
      dhcp4: true
      parameters:
        stp: false
        forward-delay: 0


sudo chmod 600 /etc/netplan/01-netcfg.yaml
sudo netplan try

sudo netplan apply
ip addr show br0   # br0 sollte jetzt eine IP haben

wget https://github.com/home-assistant/operating-system/releases/download/17.1/haos_ova-17.1.qcow2.xz

xz -d haos_ova-17.1.qcow2.xz

sudo mv haos_ova-17.1.qcow2 /var/lib/libvirt/images/homeassistant.qcow2
sudo chown libvirt-qemu:kvm /var/lib/libvirt/images/homeassistant.qcow2

sudo virt-install \
  --name homeassistant \
  --description "Home Assistant OS" \
  --os-variant generic \
  --ram 4096 \
  --vcpus 4 \
  --disk /var/lib/libvirt/images/homeassistant.qcow2,bus=scsi \
  --controller type=scsi,model=virtio-scsi \
  --network bridge=br0,model=virtio \
  --graphics none \
  --boot uefi \
  --import \
  --noautoconsole 
# Mit --noautoconsole bleibt das Terminal frei



### Optional mit USB-Device durchschleifen:
lsusb

#output zb:
#Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
#Bus 003 Device 004: ID 30c9:0052 Luxvisions Innotech Limited Integrated RGB Camera
#Bus 003 Device 003: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2

# Zigbee Dongle bei "Bus 003 Device 003" somit
# --hostdev 003.003
# an Befehl anhängen:
sudo virt-install \
  --name homeassistant \
  --description "Home Assistant OS" \
  --os-variant generic \
  --ram 4096 \
  --vcpus 4 \
  --disk /var/lib/libvirt/images/homeassistant.qcow2,bus=scsi \
  --controller type=scsi,model=virtio-scsi \
  --network bridge=br0,model=virtio \
  --graphics none \
  --boot uefi \
  --import \
  --noautoconsole \
  --hostdev 003.003
# oder besser ID (vendor:product) aus lsusb holen 
  --hostdev 10c4:ea60
# oder für's hinzufügen im Nachhinein:
sudo virsh attach-device homeassistant /dev/stdin --persistent << EOF
<hostdev mode='subsystem' type='usb' managed='yes'>
  <source>
    <vendor id='0x10c4'/>
    <product id='0xea60'/>
  </source>
</hostdev>
EOF

sudo virsh list --all

# Nach ca. 2–3 Minuten IP abfragen (wird evtl nicht angezeigt weil VM den QEMU Guest Agent benötigt. Siehe unten um IP herauszufinden)
sudo virsh domifaddr homeassistant

# VM zum Autostart hinzufügen
sudo virsh autostart homeassistant

# Auf Console der VM zugreifen (escape aus der Console mit STRG+])
sudo virsh console homeassistant

# Login username VM-Console
homeassistant login: root

# IP aus VM-Console herausfinden
ha network info
# zeigt etwa sowas an:
# ha network info
#docker:
#  address: 172.30.32.0/23
#  dns: 172.30.32.3
#  gateway: 172.30.32.1
#  interface: hassio
#host_internet: true
#interfaces:
#- connected: true
#  enabled: true
#  interface: enp0s2
#  ipv4:
#    address:
#    - 10.1.1.242/24

# Home Assistant einrichten
Nach ca. 5–10 Minuten (erster Boot bereitet das System vor) im Browser aufrufen:
http://<IP-der-VM>:8123

oder falls mDNS im LAN funktioniert:
http://homeassistant.local:8123

hilfreiche cmds:

sudo virsh list --all                                        # Status aller VMs
sudo virsh shutdown homeassistant                            # Sauber herunterfahren
sudo virsh snapshot-create-as homeassistant snap-vor-update  # Snapshot anlegen
sudo virsh console homeassistant                             # In Shell der VM gehen