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.

Unable to start Windows VM

Featured Replies

I changed domain share settings a few weeks ago and shut down one of my VM's a few days ago.  When I tried to start it back up today I couldn't remote into it and I notice VNC Remote shows UEFI Interactive Shell.  I then noticed it couldn't find the vdisk under cache folder so I pointed it to user and it still wouldn't start.  I've now changed the domain share back to prefer, ran mover, pointed the VM back to cache, but it still will not start. 

 

I'm not sure what happened and how to resolve ... please find the XML, Diagnostics, and Log below and advise if you can see something I've missed...

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='2'>
  <name>001 - Windows 10</name>
  <uuid>a4d2d9a2-1cee-54fa-b3fd-79efaaf2c263</uuid>
  <description>Windows 10</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='5'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='6'/>
    <vcpupin vcpu='4' cpuset='3'/>
    <vcpupin vcpu='5' cpuset='7'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-3.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/a4d2d9a2-1cee-54fa-b3fd-79efaaf2c263_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='3' threads='2'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <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/cache/domains/001 - Windows 10/vdisk1.img' index='2'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/windows/virtio-win-0.1.160-1.iso' index='1'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <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'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:d5:f9:b7'/>
      <source bridge='br0.2'/>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='52:54:00:d8:e8:2d'/>
      <source bridge='br3'/>
      <target dev='vnet3'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/1'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-2-001 - Windows 10/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <graphics type='vnc' port='5901' autoport='yes' websocket='5701' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

 

-overcommit mem-lock=off \
-smp 6,sockets=1,cores=3,threads=2 \
-uuid a4d2d9a2-1cee-54fa-b3fd-79efaaf2c263 \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=35,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=0x5 \
-blockdev '{"driver":"file","filename":"/mnt/cache/domains/001 - Windows 10/vdisk1.img","node-name":"libvirt-2-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-2-storage"}' \
-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=libvirt-2-format,id=virtio-disk2,bootindex=1,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/isos/windows/virtio-win-0.1.160-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=37,id=hostnet0,vhost=on,vhostfd=38 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:d5:f9:b7,bus=pci.0,addr=0x3 \
-netdev tap,fd=39,id=hostnet1,vhost=on,vhostfd=40 \
-device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:d8:e8:2d,bus=pci.0,addr=0x4 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=41,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 0.0.0.0:1,websocket=5701 \
-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 virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2020-03-05 00:19:59.420+0000: Domain id=2 is tainted: high-privileges
2020-03-05 00:19:59.420+0000: Domain id=2 is tainted: host-cpu
char device redirected to /dev/pts/1 (label charserial0)

unraid-diagnostics-20200304-1825.zip

What is your vdisk type? qcow2? raw? Are you sure you haven't changed vdisk type in the process when you changed the path?

That is the most often issue with new user when changing vdisk on the VM template i.e. they don't know / check what vdisk type they are using.

  • Author

I'm not sure.  It's always confused me when setting up a new VM since I cannot see what my other VM's are set to in the basic config page so I suspect I stick with default which if I'm correct is raw.  With regards to your comment, are you saying when the vdisk was moved and the VM was started the config would have changed from one to the other?  FWIW - I've not changed any settings in the VM config and only changed the path of where the vdisk is located since it was moved from cache to user.

11 minutes ago, bugsysiegals said:

I'm not sure.  It's always confused me when setting up a new VM since I cannot see what my other VM's are set to in the basic config page so I suspect I stick with default which if I'm correct is raw.  With regards to your comment, are you saying when the vdisk was moved and the VM was started the config would have changed from one to the other?  FWIW - I've not changed any settings in the VM config and only changed the path of where the vdisk is located since it was moved from cache to user.

First check to make sure your vdisk file only exists under ONE of these possible paths:

  • /mnt/cache/domains/001 - Windows 10/

  • /mnt/disk1/domains/001 - Windows 10/

  • /mnt/disk2/domains/001 - Windows 10/

  • ... and so on to the last disk

Just ls each of the path. Does the vdisk exists under more than one path?

 

 

 

  • Author

I've the vdisk under both /mnt/cache/domains and /mnt/user/domains.  Should this be in both paths? 

 

What's the difference between user and cache paths?  If I set the share to ONLY, the file exists only on the cache drive ... would user be a shortcut to (cache) or is user only for the array?  If I set the share to Prefer and the cache fills up thus moving the file to the array, I believe cache path will fail whereas user will know its on the array but then will redirect to the cache when it's moved back?

1 minute ago, bugsysiegals said:

I've the vdisk under both /mnt/cache/domains and /mnt/user/domains.  Should this be in both paths? 

I didn't ask anything about /mnt/user

Have you checked if there's any dup under /mnt/diskx?

  • Author

I meant to say there's no domain folder under any of the /mnt/diskx folders but there is one under /mnt/user.

Edited by bugsysiegals

5 minutes ago, bugsysiegals said:

I meant to say there's no domain folder under any of the /mnt/diskx folders but there is one under /mnt/user.

Ok, so you don't have dup.

  • Try creating a template from scratch with the same parameters to see if it boots. (note: you might also want to pick 4.2 instead of 3.0, which is very old). This is to eliminate a corrupt bios.
  • Remove the virtio driver iso (i.e. leaving just the vdisk behind). This is to eliminate any interference by the boot sequence.
  • Try changing the type from raw to qcow2. qcow2 and raw are the 2 most frequently used vdisk types.

/mnt/user is the same as /mnt/cache if the vdisk is on cache.

  • Author

FWIW - I have 2 other Windows 10 VM's which were not impacted.  One has been running the entire time and the other has been offline for weeks but started up no issues.  Should I still create some new VM's?

Edited by bugsysiegals

1 hour ago, bugsysiegals said:

FWIW - I have 2 other Windows 10 VM's which were not impacted.  One has been running the entire time and the other has been offline for weeks but started up no issues.  Should I still create some new VM's?

You only need to fix what is broken.

  • Author

Ok, I assume you mean to create a new VM from template and point it to the existing vdisk to see if I can get it to boot?

  • Author

I've created 2 new VM's (qcow/raw) both as Machine: i440fx-4.2, no OS Install ISO, no VirtIO Drivers ISO, both with 2 network adapters for the 2 bridges I have setup and am using in my other VM's as well as the original.  I then edit the configs and set Primary vDisk Location to Manual and select /mnt/user/domains/001 - Windows 10/vdisk1.img.  Both times the VM boots to UEFI screen.

 

FWIW - I noticed my other VM was using Machine 4.2 and I was considering to change this VM from 3.0 to 4.2 before restarting the other day.  I don't recall if I actually tried it or not. but wanted to point this out in case it matters.

Archived

This topic is now archived and is closed to further replies.

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.