VM's Won't Start - Initial startup stuck at UEFI Shell

Recommended Posts

Hi all, I've created a Windows 10 VM using the SpaceInvaderOne guide on Youtube. This includes getting the iso file, selecting and installing a VirtIO driver and so on. In all of the videos that I've seen, the VM's go right into the installation of Windows when they start. Mine does not.


All I can do is click on the VM icon, and select 'VNC Remote'. When I do this, I get a UEFI Shell window, sticks there and doesn't proceed with the install of Windows.




I can interact with this screen, but can't get past it. I typed 'exit' and got to a screen where I was able to select a boot device, but none of them ever got to the point of starting the windows install. 


I've done lots of searching, and it doesn't seem like this is very common. Any help is appreciated..


Here's my system info:

M/B: ASRock B365M Pro4 Version

BIOS: American Megatrends Inc. Version P4.40. Dated: 05/29/2020

CPU: Intel® Core™ i7-9700K CPU @ 3.60GHz

HVM: Enabled

IOMMU: Enabled

Cache: 0 KiB, 0 KiB, 0 KiB

Memory: 16 GiB DDR4 (max. installable capacity 64 GiB)

Network: bond0: fault-tolerance (active-backup), mtu 1500
 eth0: 1000 Mbps, full duplex, mtu 1500

Kernel: Linux 5.10.28-Unraid x86_64

OpenSSL: 1.1.1j

Edited by SpaceballOne
Link to comment
19 minutes ago, SimonF said:

Try reset and you should see press any key to boot from cd.


Dont close the vnc session.


So I started the machine, and opened the VNC prompt, then tried a reset. The green 'play' icon briefly changes state, but I don't get any other response. The logs say "Cannot reset device.. no available reset mechanism."


I'm guessing that the 'press any key...' prompt should show up in the vnc session?


Here's the log for the VM, BTW...


-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=31,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x7.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x7 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x7.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x7.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/Windows 10/vdisk1.img","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-3-storage"}' \
-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,id=virtio-disk2,bootindex=1,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/isos/Windows 10/Windows.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw","file":"libvirt-2-storage"}' \
-device ide-cd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=2 \
-blockdev '{"driver":"file","filename":"/mnt/user/isos/virtio-win-0.1.190-1.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.0,unit=1,drive=libvirt-1-format,id=ide0-0-1 \
-netdev tap,fd=33,id=hostnet0 \
-device virtio-net,netdev=hostnet0,id=net0,mac=52:54:00:03:3b:3f,bus=pci.0,addr=0x3 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=34,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-vnc,websocket=5700 \
-k en-us \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 \
-device vfio-pci,host=0000:00:1f.3,id=hostdev0,bus=pci.0,addr=0x6 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2021-08-13 23:01:36.616+0000: Domain id=9 is tainted: high-privileges
2021-08-13 23:01:36.616+0000: Domain id=9 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2021-08-13T23:01:36.917533Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.
2021-08-13T23:01:36.917607Z qemu-system-x86_64: vfio: Cannot reset device 0000:00:1f.3, no available reset mechanism.


Edited by SpaceballOne
added info from logs
Link to comment
8 hours ago, SpaceballOne said:

-device vfio-pci,host=0000:00:1f.3,id=hostdev0,bus=pci.0,addr=0x6 \

I created a fresh vm just with disk, windows 10 iso and virtio cd. reset restarts mach and press any key to boot from CD shows in vnc window.


Have you bound a PCI device to your VM?

Link to comment
14 hours ago, ghost82 said:

I bet builtin audio

I think that I may indeed have bound the audio device. I'm guessing that i should try un-unbinding this for the initial boot/os install, so I'll give that a try a little later. In fact,, I may as well just start  from scratch with a new vm..

Edited by SpaceballOne
Link to comment

Well, I started from scratch again, and I still can't get the VM to get to the 'boot from cd/dvd..' prompt. The only thing i can do is get to the UEFI Shell by clicking 'VNC Remote' here:


Restarting the VM has no effect in my UI or in the UEFI Shell. The line referenced above that showed a PCI device (built-in audio) bound to the VM is no longer in my log file, so that has been corrected. As a side note, I do have a docker container with Plex running on my NAS. I did go through the process of setting up QuickSync to handle transcoding, but I have a hard time thinking that this would prevent UnRaid from booting a VM. 


I'm really stumped here as this behavior does not seem to be something that very many people have run into.


Here are my VM Settings:

CPU Mode: Host Passthrough (Intel® Core™ i7-9700K)
Logical CPUs: CPU7
Initial Memory:    4096 MB Max Memory:4096 MB
Machine: i440fx-5.1
Hyper-V:  Yes
USB Controller:    2.0 (EHCI)
OS Install ISO:    /mnt/user/isos/Windows 10/Windows.iso
OS Install CDRom Bus:    IDE
VirtIO Drivers ISO:    /mnt/user/isos/virtio-win-0.1.190-1.iso
VirtIO Drivers CDRom Bus: IDE
Primary vDisk Location:     Auto /mnt/user/domains/Windows 10/vdisk1.img
Primary vDisk Bus: VirtIO
Graphics Card:     VNC
VNC Video Driver:    QXL (best)
VNC Keyboard:    English-United States (en-us)
Sound Card:    None


Link to comment

Heya , id like to help so i did a test and here are the settings i created new VM with.

the only thing is i did NOT start VM after creation.

After it was created , i clicked start then VNC and there was the boot from CD promt , i proceeded to windows installation choose virtio driver because windows install did not recognize the disk to install windows to


hope it helps


Link to comment

Thanks for the suggestion.  I followed all of your settings and startup, and I'm still not seeing any boot prompt. I think my next step is to try a fresh download of the iso. 


The only other thing I can think of is that there is something in my BIOS that isn't set correctly. Would anyone happen to know the right settings to do on my Mobo? I have an ASRock B365M Pro4.

Link to comment

-blockdev '{"driver":"file","filename":"/mnt/user/domains/Windows 10/vdisk1.img","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-3-storage"}' \

-device virtio-blk-pci,bus=pci.0,addr=0x5,drive=libvirt-3-format,id=virtio-disk2,bootindex=1,write-cache=on \


-blockdev '{"driver":"file","filename":"/mnt/user/isos/Windows 10/Windows.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \

-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw","file":"libvirt-2-storage"}' \ -device ide-cd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=2 \


Try change the bootindex, seems you wrongly set the vdisk1.img boot first and it haven't install Windows10


Or make sure the install media was bootable and best download from official.


** Problem not relate on mobo BIOS setting **

Edited by Vr2Io
Link to comment
16 hours ago, SpaceballOne said:

but it just went to another command prompt and nothing happened

You may have a counterfeit or wrong windows image (32 bit), and you may not be able to install it at all.

To run bootia32 you need a 32bit uefi firmware; unless you compiled the ovmf firmware yourself and replaced the ovmf files for 32 bit support, and/or you want to emulate a 32 bit windows, your media is wrong.

Edited by ghost82
Link to comment
12 minutes ago, SpaceballOne said:


I got my iso file from Microsoft, but I did the 32-bit version because I wasn't sure if 64-bit would work,  or if I even needed it. 

Always use 64 unless you have a specific reason not to. 32 limits you in so many ways, not the least of which is RAM management. 32 hasn't been the norm since XP.

Link to comment

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.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.