VM woes


Recommended Posts

Hello all, 

 

I have exhausted all my efforts in creating a Windows VM and kindly ask if anyone could stear me in the right direction. 

 

The VM was working on my previous motherboard (MSI Godlike) however due to separate issues, I replaced it with a Gigabyte Motherboard which has worked right out of the box. 

 

My issue however is that when I tried to launch my VM, it threw up a "USB error". After several attempts to get it working, I gave up, deleted the VM and started again. The VM now appears to start (as it says "running"), however I get a blank screen and the following in the log;

 

Screenshot_20210309-124301_Brave.thumb.jpg.4af2cc295ffa8490c9f9382634347af3.jpg

 

My VM XML is as follows;

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>Windows 10</name>
  <uuid>REDACTED</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>33554432</memory>
  <currentMemory unit='KiB'>33554432</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>10</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='5'/>
    <vcpupin vcpu='1' cpuset='15'/>
    <vcpupin vcpu='2' cpuset='6'/>
    <vcpupin vcpu='3' cpuset='16'/>
    <vcpupin vcpu='4' cpuset='7'/>
    <vcpupin vcpu='5' cpuset='17'/>
    <vcpupin vcpu='6' cpuset='8'/>
    <vcpupin vcpu='7' cpuset='18'/>
    <vcpupin vcpu='8' cpuset='9'/>
    <vcpupin vcpu='9' cpuset='19'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-5.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/9e5a1c81-571d-c306-6b2f-eceb5c62e8aa_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' migratable='on'>
    <topology sockets='1' dies='1' cores='5' threads='2'/>
    <cache mode='passthrough'/>
  </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='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/disk/by-id/nvme-Sabrent_Rocket_Q_7FD407090DDA92030729'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/Win10_20H2_v2_English_x64.iso'/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.190-1.iso'/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <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='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xa'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0xb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0xc'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0xd'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='usb' index='0' model='qemu-xhci' ports='15'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:c6:a9:b6'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
      <address type='pci' domain='0x0000' bus='0x02' 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>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='3'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/vbios/rtx3090.rom'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x1f' function='0x5'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x01' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x045e'/>
        <product id='0x00cb'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x045e'/>
        <product id='0x0750'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x048d'/>
        <product id='0x5702'/>
      </source>
      <address type='usb' bus='0' port='4'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
</domain>

 

Lastly, this is my device page;

 

Screenshot_20210309-125104_Brave.thumb.jpg.f46ef58215d24d47e454b94dc573665c.jpg

Screenshot_20210309-125112_Brave.thumb.jpg.59a2a02db88723c41f472cbe5e6ee99f.jpg

Screenshot_20210309-125116_Brave.thumb.jpg.f7c11b645bad19d3d51e6637c399d17c.jpg

Link to comment
On 3/9/2021 at 6:54 AM, LoneTraveler said:

<type arch='x86_64' machine='pc-q35-5.0'>hvm</type>

 

Full disclaimer, I'm not an expert, however I did notice you're using q35-5.0 machine type in your VM's-XML; my w10-vm uses pc-i440fx and it was just last week I upgraded from 6.8.3 to 6.9.1 without issue.  Perhaps this is part of your boot issue? Why it would have been working while Unraid was 6.8.3 versus 6.9.x I do not know, but (on my system) starting a new "Windows 10" template the machine type defaults to the i440fx type.  Are there specifics why you're using q35 machine type (I'm just curious)?

 

... Never mind, I just made a VM with q35 machine type and it booted up no issue, so ignore my ignorance about machine types - but perhaps that's playing into things?  (again IDK just grasping at "plausables"  ideas to test and troubleshoot)  Last line of your log screen shot showed it couldn't reset 0000:lf.5 which I think is the controller you stubbed out? (last screen shot, still learning new 6.9.x features - haven't played enough) Perhaps trying to uncheck that controller, reboot and give the VM another try? 

 

Probably not that useful info, but if it was me I would investigate/troubleshoot that device next.

GL

Edited by Jcloud
  • Thanks 1
Link to comment
16 hours ago, Jcloud said:

 

Full disclaimer, I'm not an expert, however I did notice you're using q35-5.0 machine type in your VM's-XML; my w10-vm uses pc-i440fx and it was just last week I upgraded from 6.8.3 to 6.9.1 without issue.  Perhaps this is part of your boot issue? Why it would have been working while Unraid was 6.8.3 versus 6.9.x I do not know, but (on my system) starting a new "Windows 10" template the machine type defaults to the i440fx type.  Are there specifics why you're using q35 machine type (I'm just curious)?

 

... Never mind, I just made a VM with q35 machine type and it booted up no issue, so ignore my ignorance about machine types - but perhaps that's playing into things?  (again IDK just grasping at "plausables"  ideas to test and troubleshoot)  Last line of your log screen shot showed it couldn't reset 0000:lf.5 which I think is the controller you stubbed out? (last screen shot, still learning new 6.9.x features - haven't played enough) Perhaps trying to uncheck that controller, reboot and give the VM another try? 

 

Probably not that useful info, but if it was me I would investigate/troubleshoot that device next.

GL

 

Hi, 

 

Many thanks for taking the time to reply. 

 

To be honest, the only reason I used the q35-5.0 was because of the online guide I used recommended it, I'll have to dig it out. I really don't know the difference between them. I've deleted and recreated the VM several times and all of a sudden its started up with no errors displayed. I can only assume that the motherboard replacement left some gremlins in the system that needed to be flushed out. 

 

Its unfortunate that I haven't been able to learn from incident, however I'm just happy that it's all working now. 

 

Thanks again for your assistance. 

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.

Guest
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.