Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Home Assistant in VM Stuck in UEFI Shell

Featured Replies

Hi, i have recently installed Unraid on my old Lenovo pc. Unraid is up and running, but i have a problem when i try to install Home Assistant using a VM.

Not sure if this is the correct place to post this, but hopefully someone smarter than me has allready been trough this.

I have allready checked that i use the correct info, when i make the VM.
Using Xcow2 vm file
Using 2 Cores CPU
RAM: 2048-4096
And have tried using SATA as well as VirtIO as Primary vDisk Bus.

Attached are a picture of my Unraid VM info.
5ed08a7a39c173ff7c07a965dbe9d6fb58aa6de4

 

This is where the OS wont boot, it’s stuck in this BIOS shell. I can type Exit and can enter a menu. I have seen someone with a simular problem and they fixed it with disabling Secure Boot. I can’t see a Secure boot option in this menu.( Checked everywhere )

d59b795cf341ac4b9f6247b65c5a0a0201c07aff

 

Posted on Home Assistant Community Forums aswell, as i am not sure where this fits best. 
Link to Home Assistant Forums thread:  https://community.home-assistant.io/t/home-assistant-stuck-in-uefi-shell-unraid/538268

Solved by Hellesylt

  • Author

VM log if that is helpful: 

text  error  warn  system  array  login  

2023-02-21 11:19:28.563+0000: starting up libvirt version: 8.7.0, qemu version: 7.1.0, kernel: 5.19.17-Unraid, hostname: Poseidon
LC_ALL=C \
PATH=/bin:/sbin:/usr/bin:/usr/sbin \
HOME='/var/lib/libvirt/qemu/domain-1-Home Assistant' \
XDG_DATA_HOME='/var/lib/libvirt/qemu/domain-1-Home Assistant/.local/share' \
XDG_CACHE_HOME='/var/lib/libvirt/qemu/domain-1-Home Assistant/.cache' \
XDG_CONFIG_HOME='/var/lib/libvirt/qemu/domain-1-Home Assistant/.config' \
/usr/local/sbin/qemu \
-name 'guest=Home Assistant,debug-threads=on' \
-S \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-1-Home Assistant/master-key.aes"}' \
-blockdev '{"driver":"file","filename":"/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
-blockdev '{"driver":"file","filename":"/etc/libvirt/qemu/nvram/8e54c8a9-03e2-4730-d5ba-f5588684bb59_VARS-pure-efi.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}' \
-machine pc-q35-7.1,usb=off,dump-guest-core=off,mem-merge=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format \
-accel kvm \
-cpu host,migratable=on,host-cache-info=on,l3-cache=off \
-m 4096 \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":4294967296}' \
-overcommit mem-lock=off \
-smp 2,sockets=1,dies=1,cores=2,threads=1 \
-uuid 8e54c8a9-03e2-4730-d5ba-f5588684bb59 \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=36,server=on,wait=off \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc,driftfix=slew \
-global kvm-pit.lost_tick_policy=delay \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device '{"driver":"pcie-root-port","port":16,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x2"}' \
-device '{"driver":"pcie-root-port","port":17,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x2.0x1"}' \
-device '{"driver":"pcie-root-port","port":18,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x2.0x2"}' \
-device '{"driver":"pcie-root-port","port":19,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x2.0x3"}' \
-device '{"driver":"pcie-root-port","port":20,"chassis":5,"id":"pci.5","bus":"pcie.0","addr":"0x2.0x4"}' \
-device '{"driver":"ich9-usb-ehci1","id":"usb","bus":"pcie.0","addr":"0x7.0x7"}' \
-device '{"driver":"ich9-usb-uhci1","masterbus":"usb.0","firstport":0,"bus":"pcie.0","multifunction":true,"addr":"0x7"}' \
-device '{"driver":"ich9-usb-uhci2","masterbus":"usb.0","firstport":2,"bus":"pcie.0","addr":"0x7.0x1"}' \
-device '{"driver":"ich9-usb-uhci3","masterbus":"usb.0","firstport":4,"bus":"pcie.0","addr":"0x7.0x2"}' \
-device '{"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.2","addr":"0x0"}' \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/home_assistant/haos_generic-aarch64-9.5.qcow2","node-name":"libvirt-1-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"qcow2","file":"libvirt-1-storage","backing":null}' \
-device '{"driver":"virtio-blk-pci","bus":"pci.3","addr":"0x0","drive":"libvirt-1-format","id":"virtio-disk2","bootindex":1,"write-cache":"on"}' \
-netdev tap,fd=37,id=hostnet0 \
-device '{"driver":"virtio-net","netdev":"hostnet0","id":"net0","mac":"52:54:00:ff:4e:c6","bus":"pci.1","addr":"0x0"}' \
-chardev pty,id=charserial0 \
-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
-chardev socket,id=charchannel0,fd=35,server=on,wait=off \
-device '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' \
-device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \
-audiodev '{"id":"audio1","driver":"none"}' \
-vnc 0.0.0.0:0,websocket=5700,audiodev=audio1 \
-k en-us \
-device '{"driver":"qxl-vga","id":"video0","max_outputs":1,"ram_size":67108864,"vram_size":67108864,"vram64_size_mb":0,"vgamem_mb":16,"bus":"pcie.0","addr":"0x1"}' \
-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.4","addr":"0x0"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
char device redirected to /dev/pts/0 (label charserial0)
qxl_send_events: spice-server bug: guest stopped, ignoring
  


 

change disk type to sata instead of virtio?

  • Author
6 minutes ago, ghost82 said:

change disk type to sata instead of virtio?

Hi, as stated above i have tried to change the disk type to SATA before making the vm and after using the UI edit. Still same issue

try to boot from the uefi shell:

type:

FS0:

and press enter

 

Then list directories and files with dir command (the uefi shell is like a command prompt) and navigate (with the cd command) somewhere since you will find an .efi file to boot.

No idea what is the file in your case, as an example for microsfot it's in: FS0:\EFI\Microsoft\Boot\bootmgfw.efi

To manually boot, just type name.efi and the boot should proceed.

Edited by ghost82

  • Author
20 hours ago, ghost82 said:

try to boot from the uefi shell:

type:

FS0:

and press enter

 

Then list directories and files with dir command (the uefi shell is like a command prompt) and navigate (with the cd command) somewhere since you will find an .efi file to boot.

No idea what is the file in your case, as an example for microsfot it's in: FS0:\EFI\Microsoft\Boot\bootmgfw.efi

To manually boot, just type name.efi and the boot should proceed.

I tried this and still no luck. Attached are the commands i used and the error message.

image.thumb.png.6f4ced9c232a2034653fac7646d92063.png

Edited by Hellesylt
Attatchment

ooooh I see now...you downloaded the arch64 architecture which is unsupported, you need to download the x86_x64 version!

  • Author
  • Solution
19 minutes ago, ghost82 said:

ooooh I see now...you downloaded the arch64 architecture which is unsupported, you need to download the x86_x64 version!

Thank you so much! 

For future dummies like me:

Use the haos_ova-9.5.qcow2 Virtual Disk file from Home Assistant Github.

Just to add an additional info, if you download from the home assistant website:

https://www.home-assistant.io/installation/alternative

 

to download the qcow2 file (KVM/Proxmox) you will download a compressed .xz file.

Remember to all to extract the qcow2 image from this archive before using it as a disk in a kvm vm.

  • 5 months later...

Thank you @ghost82 it's nice to see others leave a bread crumb trail like I do.  I'm still struggling on this though unfortunately. When I try to mount the generic KVM image, I'm getting "no bootable device" can someone let me know if my settings look correct, I'd really appreciate it! I'm assuming it's one of the KVM settings not figuring this out but I'm not 100% on it. 

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>HomeAssistant</name>
  <uuid>62bf0a39-a5b4-07a7-2213-9e5aaa554cab</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-5.2'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='1' threads='2'/>
    <cache mode='passthrough'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/HomeAssistant/haos_ova-10.3.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <serial>vdisk1</serial>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f1:66:0c'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <channel type='qemu-vdagent'>
      <source>
        <clipboard copypaste='yes'/>
        <mouse mode='client'/>
      </source>
      <target type='virtio' name='com.redhat.spice.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='2'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
</domain>


 

KVM1.png

KVM2.png

change from this:

<driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/HomeAssistant/haos_ova-10.3.qcow2'/>

to this:

<driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/HomeAssistant/haos_ova-10.3.qcow2'/>

 

3 minutes ago, ghost82 said:

change from this:

<driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/HomeAssistant/haos_ova-10.3.qcow2'/>

to this:

<driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/HomeAssistant/haos_ova-10.3.qcow2'/>

 

Thank you! 

Ended up going the VMDK route and got it to go through instead. I appreciate the help! 

  • 3 weeks later...
On 2/22/2023 at 1:20 PM, ghost82 said:

Just to add an additional info, if you download from the home assistant website:

https://www.home-assistant.io/installation/alternative

 

to download the qcow2 file (KVM/Proxmox) you will download a compressed .xz file.

Remember to all to extract the qcow2 image from this archive before using it as a disk in a kvm vm.

omg I was fighting with this for a long time ))

  • 4 months later...
On 7/30/2023 at 11:47 AM, dysfunktionalsd said:

Thank you! 

Ended up going the VMDK route and got it to go through instead. I appreciate the help! 

I know this is an older post now, but don't forget to go back and reset the vDisk bus from SATA to VirtIO! This significantly increases read/write speeds on disks in VMs managed by KVM.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.