Win10 VM will nicht booten... (unraid 6.11-rc5)


Recommended Posts

Hallo zusammen,

seit Tagen versuche ich nun eine Windows 10 Installation als VM einzurichten. Spaceinvader One hatte da (vor Jahren) eine schöne Möglichkeit eines 'dual boot' vorgestellt, die ich gerne nutzen möchte.

Wie dem auch sei... meine Bemühungen führen nicht zum Erfolg. Versuche ich die VM zu starten, dann kommt immer die grub Fehlermeldung, dass die Partition nicht vorhanden sein soll...

Hier der letzte Stand meiner Konfigurationsbemühungen:

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>Win10-2</name>
  <uuid>0000-0000-000000000000</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>20971520</memory>
  <currentMemory unit='KiB'>20971520</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>24</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='20'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='21'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='22'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <vcpupin vcpu='7' cpuset='23'/>
    <vcpupin vcpu='8' cpuset='8'/>
    <vcpupin vcpu='9' cpuset='24'/>
    <vcpupin vcpu='10' cpuset='9'/>
    <vcpupin vcpu='11' cpuset='25'/>
    <vcpupin vcpu='12' cpuset='10'/>
    <vcpupin vcpu='13' cpuset='26'/>
    <vcpupin vcpu='14' cpuset='11'/>
    <vcpupin vcpu='15' cpuset='27'/>
    <vcpupin vcpu='16' cpuset='12'/>
    <vcpupin vcpu='17' cpuset='28'/>
    <vcpupin vcpu='18' cpuset='13'/>
    <vcpupin vcpu='19' cpuset='29'/>
    <vcpupin vcpu='20' cpuset='14'/>
    <vcpupin vcpu='21' cpuset='30'/>
    <vcpupin vcpu='22' cpuset='15'/>
    <vcpupin vcpu='23' cpuset='31'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-6.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/a059a1a8-c344-0000-0000-000000000000_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <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='12' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.221-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='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <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'/>
    </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='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:fd:ab:0b'/>
      <source bridge='virbr0'/>
      <model type='virtio-net'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' 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='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <audio id='1' type='none'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x12' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/system/vbios/AMD.RX5700.8192.190616.rom'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x12' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0b' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x13' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x16' slot='0x00' function='0x3'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x8087'/>
        <product id='0x0029'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
</domain>

 

 

Es handelt sich um eine UEFI-Installation von Windows. Die SSD mit der Originalinstallation hängt an dem Controller, den ich durchreiche.

Egal ob i440 oder q35, die Fehlermeldung ist immer gleich.

Vielleicht ist jemand so nett und schaut die Konfiguration einmal durch, da ich hier so langsam den Wald vor lauter Bäumen nicht mehr sehe.

Vielen Dank!!

 

Link to comment

OK...

Wenn meine Erkenntnisse richtig sind, dass ist grub nicht richtig konfiguriert...

grub rescue>ls

zeigt die folgenden Einträge:
(hd0) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3) (hd0,gpt4) cd0 cd1

 

grub rescue>set

zeigt:

cmdpath=(hd0,gpt3)/EFI/BOOT

prefix=(hd0,gpt7)/boot/grub

root=hd0,gpt7

grub rescue>ls (hd0,gpt1) bis (hd0,pgt4)

zeigt

Filesystem unknown

 

und jetzt????

(hd0,gpt2) = efi-Partition

(hd0,gpt4) = Windows Installation

 

Wie kriege ich grub in einer VM dazu, dass er die richtige Partition bootet!?

Link to comment
On 9/21/2022 at 10:41 AM, DerTom said:

seit Tagen versuche ich nun eine Windows 10 Installation als VM einzurichten. Spaceinvader One hatte da (vor Jahren) eine schöne Möglichkeit eines 'dual boot' vorgestellt, die ich gerne nutzen möchte.

Darf ich fragen warum du das so verwenden willst, wären da nicht zwei unabhängige VMs einfacher?

 

39 minutes ago, DerTom said:

Wenn meine Erkenntnisse richtig sind, dass ist grub nicht richtig konfiguriert...

Welche Systeme hast du denn dort drauf?

 

39 minutes ago, DerTom said:

Wie kriege ich grub in einer VM dazu, dass er die richtige Partition bootet!?

Normalerweise hast du hier beim Installieren vermutlich einen kleinen Fehler gemacht, bei Debian musst du zB UEFI boot erzwingen auf manchen System damit es richtig funktioniert, ich würde dir auch hier für den Maschinentyp Q empfehlen nicht i440

Link to comment
2 hours ago, ich777 said:

Darf ich fragen warum du das so verwenden willst, wären da nicht zwei unabhängige VMs einfacher?

 

Welche Systeme hast du denn dort drauf?

 

Normalerweise hast du hier beim Installieren vermutlich einen kleinen Fehler gemacht, bei Debian musst du zB UEFI boot erzwingen auf manchen System damit es richtig funktioniert, ich würde dir auch hier für den Maschinentyp Q empfehlen nicht i440

Bei dem 'dual boot' beziehe ich mich auf die Win10-Installation. Diese liegt auf einer SSD und kann dort (originär) gebootet werden (falls notwendig). Die SSD wird unter unraid der VM zugewiesen und ist somit grundsätzlich neben dem Server verfügbar.

Eine Neuinstallation von Windows ist leider nicht möglich - ich muss diese Installation nutzen, da mir bei einem Controllerdefekt meine ganzen Sicherungen verlustig gegangen sind und ich die ganzen Lizenzen nicht nochmals kaufen möchte.

Bei dem Maschinentyp q35 oder i440 kommt es zu der gleichen Fehlermeldung.

Link to comment
43 minutes ago, DerTom said:

Bei dem 'dual boot' beziehe ich mich auf die Win10-Installation.

Also du willst Windows oder Unraid booten... jetzt hab ich es...

 

Dann ist meine Frage, warum ist GRUB als bootloader drauf und nicht der Windows boot manager?

 

Welche Anleitung von Spaceinvaderone hast du benutzt, Link?

Link to comment
2 hours ago, mgutt said:

Warum nimmt man nicht einfach den unRAID Stick beim Booten raus, wenn man Windows will und wieder rein, wenn es unRAID sein soll?!

Weil es keinen 'Hauptrechner' mehr gibt. Auch wenn unraid läuft, soll über die VM der 'daily driver' verfügbar sein.

In der Standardkonfiguration läuft unraid immer und Win10 in der VM mit durchgereichter Grafikkarte, Tastatur und Maus.

Link to comment
On 9/21/2022 at 10:41 AM, DerTom said:

Die SSD mit der Originalinstallation hängt an dem Controller, den ich durchreiche.

nur mal dazwischen gefragt, da du den controller per se durchreichen willst, da hängt aber sonst nichts dran was unraid nutzen könnte ... und das passthrough unterbindet ? sprich mehrere Platten an dem Controller ... und vfio bind (stubbed) ist auch erledigt ?

 

uuid etc ... lasse ich jetzt mal außen vor da ich davon ausgehe das erledigt.

Link to comment
52 minutes ago, alturismo said:

nur mal dazwischen gefragt, da du den controller per se durchreichen willst, da hängt aber sonst nichts dran was unraid nutzen könnte ... und das passthrough unterbindet ? sprich mehrere Platten an dem Controller ... und vfio bind (stubbed) ist auch erledigt ?

 

uuid etc ... lasse ich jetzt mal außen vor da ich davon ausgehe das erledigt.

An dem Controller hängt die SSD mit der Windows-Installation und ein BR-Laufwerk. Scheint auch zu funktionieren, da grub rescue>ls neben der hd0 und den Paritionen auch zwei CD-Laufwerke zeigt - 1 x BR-Laufwerk und 1 x eingebundenes Treiber-img zur Installation der benöitgten Treiber in der VM.

Des Weiteren wird ein USB-Controller durchgereicht, an dem Maus, Tastatur etc. hängen, die ich für die Bedienung benötige.

Die Controller kann ich im Rahmen der Konfiguration der VM auswählen. vfio bind ist somit auch erledigt.

uuid für das Mainboard(?) ist erledigt - würde aber auch wohl nur zum Hinweis der neuen Aktivierung der Windows-Installation führen.

Link to comment
6 hours ago, DerTom said:

Weil es keinen 'Hauptrechner' mehr gibt. Auch wenn unraid läuft, soll über die VM der 'daily driver' verfügbar sein.

Und was hat das mit Dual Boot zu tun? Dual Boot ist, wenn man beim Booten des Systems zwischen zwei OS auswählen kann. Du willst aber ausschließlich unRAID booten und darin eben eine VM.

 

Das Thema hatten wir schon, dass die VM dann nicht lief. Moment mal suchen...

 

... Gefunden:

https://forums.unraid.net/topic/123730-vm-mit-eigener-img-datei/?do=findComment&comment=1128398

Link to comment
24 minutes ago, mgutt said:

Und was hat das mit Dual Boot zu tun? Dual Boot ist, wenn man beim Booten des Systems zwischen zwei OS auswählen kann. Du willst aber ausschließlich unRAID booten und darin eben eine VM.

 

Das Thema hatten wir schon, dass die VM dann nicht lief. Moment mal suchen...

 

... Gefunden:

https://forums.unraid.net/topic/123730-vm-mit-eigener-img-datei/?do=findComment&comment=1128398

Windows ist auf einer SSD installiert, die

#1 direkt gebootet werden kann

und

#2 als VM eingebunden ist, wenn unraid läuft.

=> dual boot

 

Wie dem auch sei, es liegt keine img-Datei vor. Ich reiche den Controller mit der anhängenden SSD an die VM durch. Von dieser SSD soll dann Windows - in der VM - gebootet werden... was es leider nicht tut.

Link to comment
4 minutes ago, jj1987 said:

Ich habe so ein ähnliches Konstrukt, mehr aus Neugierde als aus echter "Notwendigkeit" kreiert. Aber ich reiche nur die SATA-SSD durch. Ich meine so zeigt spaceinvaderone das auch?!

Hast du das schonmal versucht?

Ich kann die SSD nicht alleine durchreichen. Nur der Controller mit der SSD lässt sich über vfio einbinden. Wenn ich jetzt nicht irre, dann wird auch durch Spaceinvader One der Controller in dem in diesem Thread verlinkten Video durchgereicht. Schaue mir das Video aber nochmals an... Es kann doch einfach nicht sein, dass das nicht will...

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.