Installing HAOS in a VM on TrueNAS SCALE

Hi @arun2118, I am glad you got the DNS sorted - I’m curious: is Pi-Hole still disabled? I’m asking because a few others have also had DNS troubles, but I’m unsure exactly what they’re doing to fix the issue. I’m trying to figure out how to help others better with this in the future.

I’m using Pi-Hole, so I don’t think that’s the issue.

Can you say if you have manually configured the network setting in the TrueNAS UI?

For example, on my TrueNAS, I have configured Nameserver 1 with my Pi-Hole IP and IPv4 Default Gateway with my router’s IP.

I started pi hole back up, changed my router settings back, I’m restarting HA each change I do to see if one causes a issue. I found I was not able to update HA or any plugins, error came back something along the lines of “no connection to host”, the DNS for HA was set to pi-hole, and had to change to 8.8.8.8 to get the updates working.
This may be why initial install failed as some connection was trying to be made outside but pi-hole was interfering? I didn’t see anything getting blocked on the pi-hole web UI but I’m not also too familiar with reading the logs to say what happened. I’m going to restart truenas and my router today and see if it still works. My truenas network config is same as yours.

EDIT:

I didn’t notice before but the National Weather Service card is not showing any data, I did some digging and found this may be a DNS issue. I SSH in to HA ran “ha dns logs” and found a error:

[core-ssh ~]$ ha dns logs
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/corefile.sh
cont-init: info: /etc/cont-init.d/corefile.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun coredns (no readiness notification)
s6-rc: info: service legacy-services successfully started
[ERROR] plugin/mdns: could not locate primary interface due to: Could not resolv e ‘8.8.8.8.in-addr.arpa’, server or network returned error SERVFAIL
.:53
.:5553
CoreDNS-1.8.4
linux/amd64, go1.15.15, 053c4d5-dirty

after trying a few things like changing settings on the router(asus rt66u b1) I found if I use pi hole DNS running on the same computer, the error goes away but have some other errors which may be due to bad tokens due to restoring he back up on a new system? :

[core-ssh ~]$ ha dns logs
[ERROR] plugin/errors: 2 api.ring.com. A: read udp 127.0.0.1:55779->127.0.0.1:5553: i/o timeout
[INFO] 127.0.0.1:34698 - 7435 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.687865188s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:35944 - 35736 “A IN pubsub.googleapis.com. udp 50 true 2048” NOERROR - 0 10.737749606s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:34915 - 65529 “AAAA IN pubsub.googleapis.com. udp 50 true 2048” NOERROR - 0 10.738046459s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. AAAA: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 172.30.32.1:60047 - 35736 “A IN pubsub.googleapis.com. udp 39 false 512” NOERROR - 0 8.00225939s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. A: read udp 127.0.0.1:44283->127.0.0.1:5553: i/o timeout
[INFO] 172.30.32.1:60047 - 65529 “AAAA IN pubsub.googleapis.com. udp 39 false 512” NOERROR - 0 8.001550617s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. AAAA: read udp 127.0.0.1:49814->127.0.0.1:5553: i/o timeout
[INFO] 172.30.33.4:39209 - 40691 “A IN api.ring.com. udp 30 false 512” NOERROR - 0 8.002040238s
[ERROR] plugin/errors: 2 api.ring.com. A: read udp 127.0.0.1:57404->127.0.0.1:5553: i/o timeout
[INFO] 172.30.33.4:34493 - 29118 “A IN api.ring.com. udp 30 false 512” NOERROR - 0 8.00257754s
[ERROR] plugin/errors: 2 api.ring.com. A: read udp 127.0.0.1:44635->127.0.0.1:5553: i/o timeout
[INFO] 127.0.0.1:41527 - 7995 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 11.925928418s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:56318 - 61862 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 11.892670231s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 172.30.33.4:52331 - 35072 “A IN api.ring.com. udp 30 false 512” NOERROR - 0 8.002643669s
[ERROR] plugin/errors: 2 api.ring.com. A: read udp 127.0.0.1:52810->127.0.0.1:5553: i/o timeout
[INFO] 127.0.0.1:40313 - 51143 “NS IN . udp 17 false 512” NOERROR - 0 12.660855263s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:40819 - 28770 “NS IN . udp 17 false 512” NOERROR - 0 14.161970691s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:47008 - 7995 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 14.666268812s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:51563 - 61862 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.694750041s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:51451 - 28620 “NS IN . udp 17 false 512” NOERROR - 0 10.694619987s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:34862 - 17193 “NS IN . udp 17 false 512” NOERROR - 0 9.384830943s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:49912 - 34799 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.694634702s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:46883 - 35736 “A IN pubsub.googleapis.com. udp 50 true 2048” NOERROR - 0 9.385063129s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. A: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:58019 - 65529 “AAAA IN pubsub.googleapis.com. udp 50 true 2048” NOERROR - 0 10.694610949s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. AAAA: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:48009 - 61862 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.694753896s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:51822 - 34799 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.694766685s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:35806 - 29118 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.694732191s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 172.30.33.4:37326 - 35072 “A IN api.ring.com. udp 30 false 512” NOERROR - 0 8.001819718s
[ERROR] plugin/errors: 2 api.ring.com. A: read udp 127.0.0.1:60555->127.0.0.1:5553: i/o timeout
[INFO] 127.0.0.1:59957 - 57908 “NS IN . udp 17 false 512” NOERROR - 0 10.694672202s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:38790 - 40691 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 11.767149975s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:55779 - 29118 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 10.694642441s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:44283 - 35736 “A IN pubsub.googleapis.com. udp 50 true 2048” NOERROR - 0 10.694718347s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:59152 - 29567 “NS IN . udp 17 false 512” NOERROR - 0 11.767108881s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:44635 - 29118 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 11.264644767s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 172.30.32.1:46268 - 8244 “AAAA IN api.weather.gov. udp 33 false 512” NOTIMP qr,rd,ra 33 0.001764859s
[INFO] 127.0.0.1:38453 - 53488 “NS IN . udp 17 false 512” NOERROR - 0 6.176085843s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.0.0.1:853: connect: network is unreachable
[INFO] 127.0.0.1:49814 - 65529 “AAAA IN pubsub.googleapis.com. udp 50 true 2048” NOERROR - 0 14.521157631s
[ERROR] plugin/errors: 2 pubsub.googleapis.com. AAAA: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:57404 - 40691 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 14.520941572s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:48872 - 41716 “NS IN . udp 17 false 512” NOERROR - 0 14.141872157s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.1.1.1:853: i/o timeout
[INFO] 127.0.0.1:52810 - 35072 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 13.13384006s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 172.30.32.1:46268 - 8244 “AAAA IN api.weather.gov. udp 33 false 512” NOTIMP qr,aa,rd,ra 33 0.000184559s
[INFO] 127.0.0.1:56475 - 36329 “NS IN . udp 17 false 512” NOERROR - 0 13.133753937s
[ERROR] plugin/errors: 2 . NS: dial tcp 1.0.0.1:853: i/o timeout
[INFO] 127.0.0.1:60555 - 35072 “A IN api.ring.com. udp 41 true 2048” NOERROR - 0 13.329061689s
[ERROR] plugin/errors: 2 api.ring.com. A: dial tcp 1.1.1.1:853: i/o timeout
s6-rc: info: service legacy-services: stopping
[INFO] SIGTERM: Shutting down servers then terminating
[00:10:17] INFO: Service restart after closing
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/corefile.sh
cont-init: info: /etc/cont-init.d/corefile.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun coredns (no readiness notification)
s6-rc: info: service legacy-services successfully started
.:53
.:5553
CoreDNS-1.8.4
linux/amd64, go1.15.15, 053c4d5-dirty

I’m was having a issue with the time in the logs of pi hole being off and suspecting this could also be a DNS issue but found the the bios time in the computer running Truenas/Pi hole needs to be set to GMT.

Everything is working fine now. Any one know how to back up the main Truenas drive in case it fails?

okay, so i’ve been searching through all the comments here to see if somewhere i can find my issue but since i can’t seem to find an answer i’m just going to ask.
I run HA in a vm on truenass scale cobia. Has worked great for years but now i’m trying to passthrough my conbee II. it does show show up in my HA machine but doesn’t connect to ZHA. my truenas keeps spamming:

Jan 21 21:36:14 truenas kernel: usb 1-8: usbfs: process 3152564 (CPU 0/KVM) did not claim interface 0 before use

i can’t seem to find anything regarding my issue where my device does show up in HA but doesn’t want to connect to the integration.
if anyone knows anything i could really use some help.

Hi @Kroelie - Unfortunately, the Conbee II is known to not work with USB Passthrough.

You still have a few options, though:

  1. Use PCIe passthrough to connect the entire USB controller to the VM.
  2. Use this script to start your VM. (this gets old pretty fast)
  3. The final option is to get another Zigbee controller

@troy

I`ve followed your steps.

And i was able to install HAOS…

BUT, and a BIG BUT.

When the VM finishes booting, i try to go on
homeassistant.local:8123

And i got error… like my VM is not connected to the internet…

Check the error on the print:

The main error is this:

[supervisor.jobs] 'GitRepo.clone' blocked from execution, no supervisor internet connection
[supervisor.store] Can't add repository https://github.com/esphome/home-assistant-addon due to 'GitRepo.clone' blocked from execution, no supervisor internet connection

Please, someone can help me out ?

Im using TrueNas Scale, updated to this day.

On my ROUTER, i was using the TrueNAS Computer as the DNS (so i can use pihole on my entire network).

Found out thats the issue, if i change my router settings back to default, then it works.
But now, i dont have pihole working on my network.

Anyone knows how to do it ?

Hi @efdutra - Glad you got the main problem figured out.

I’m using Pi-Hole on my network - Here’s how I have my router configured.

On the WAN side, I’m still using whatever DNS is automatically configured.

On the LAN side, I have DHCP configured to set Pi-Hole as DNS for clients.

Hi @troy I’m new to HA and installed the VM within TrueNAS Scale with little issue given the instructions. However, I notice that I am dropping connection when getting to the HA web interface.

After the VM is loaded up, I maybe have a minute or so where I can get to the web interface via the url or the IP address and then it just dies. No more web interface access, but I can still ping to and from the VM with no issues. If I restart the VM, I can access the web interface again, but it dies shortly after. Rinse and repeat.

I have no other services running. Does anyone know what could be going on?

1 Like

I am currently stuck at step 1 of this haha. I’ve rather green behind the ears in Linux and home server stuff (only been running my TrueNAS for less than a year now).

I keep getting a 404 Error with the wget command and even when I copy/paste the link into a url bar I get the 404. Here’s a screenshot:

It looks to me like there is a typographical error in the line; are you sure it’s correct?

1 Like

Hi @NAMoulton - My fault; there was a typo in the link. It’s fixed now, please try again.

Thanks for all of your work @troy ! I’ve tried to get this process to work multiple times. I’m successful in getting through all the steps. Once I have the VM created, I start it and go to “Display” and get this screen. I can’t log in via the URL either.

Hi @Alanblackburn

This usually happens if we use the incorrect path when writing the HAOS image to our zvol. Notice in the following command, that the path starts with /dev/zvol

qemu-img convert -O raw haos_ova-11.5.qcow2 /dev/zvol/tank/vm/haos

If you’re still having trouble, please share the exact command you used for this step.

That was it! Thanks. It was a case sensitive thing. Thanks for showing me where to look!

1 Like

Here, i got a new picture for you with “Trust Guest Filters” checked!

1 Like

If i wanna use the Skyconnect Zigbee USB-Stick via ‘USB Passthrough Device’, which Controller type should i use?
Same question for the HmIP-RFUSB.

I always use nec-xhci for USB passthrough.

I remember seeing it mentioned in some general kvm documentation, but I don’t remember the explanation as to why I thought that was the best choice.

1 Like

Here is a screenshot of my device configuration for the Skyconnnect:

2 Likes

So… any wizzards here that are trying to get this running in TrueNAS Scale JAILS? Official in 24.04 now. Should reduce the ressource overhead from VMs by a lot.

This should be possible via Supervised installer. But that looks like a lot of chances for mistakes…

right-to-jail-jail

I don’t think a HAOS VM has enough overhead to justify the hassle of running a supervised installation.

That being said, I think running docker-compose in one of these jails is a far better option for a container install versus using the SCALE apps for Home Assistant.