KillerKelvUK
August 2nd, 2015, 02:44 PM
Starting a thread on the successes or otherwise with Windows 10 qemu/kvm guests, please share your results/recommendations....
I current run Windows 7 Ultimate in a qemu/kvm guest using legacy Seabios...this is primarily my corp desktop. I qualified for the free upgrade to Windows 10 so I've been playing around with various solutions pre and post official release.
Windows 10 Pre-Release (Insider Previews / Technical Previews)
Very early Tech Prev seemed to work fine using the available virtio drivers from redhat.
However the later Insider Preview releases caused me some headaches
Various forum searches showed others having similar issues with solutions ranging from setting CPU types to 'kvm64' to using 'Virtio SCSI' controllers.
I personally had success after changing disk controllers (https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/)
Windows 10 Official-Release (clean installation from .iso file)
Used the media creation tool MS released to download the installation media (.iso)
Used the latest OVMF build from here https://www.kraxel.org/repos/jenkins/edk2/
Configured the guest to copy my host CPU specs and set the topology for 1x socket, 2x cores, 2x threads. (lshw: Intel(R) Core(TM) i7-4790S CPU @ 3.20GHz)
Used the IDE bus for the windows .iso installation media and the virtio drivers (grabbed the latest from https://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download)
NOTE: I used the win8.1 amd64 virtio drivers, no complaints or issues noticed thus far
This pretty much gives me a functional Windows 10 qemu/kvm guest which seems as per-formant as my Windows 7 legacy.
The problem is you can't just activate the Windows 10 clean installation using the Windows 7 Product Key...Microsoft want you to upgrade your earlier version to qualify for the free Windows 10 copy (see http://www.howtogeek.com/224342/how-to-clean-install-windows-10/)
Windows 10 Official-Release (upgrade from Windows 7)
Firstly, the Windows 10 upgrade tool in the taskbar of my Windows 7 guest said my hardware wasn't compatible because of the 'Redhat Display Adapter'
You have to force the issue here by using the media creation tool and creating either an .iso (as per above) or a USB installer, either is fine just execute the setup program from the media to bypass the upgrade tool
So this is where I start getting issues
EDIT (2nd Aug @ 19:43)
[*=1]So I attempted a clean install of Windows 7 first, turns out that Win7 boot is buggy when using OVMF as it consistently powers off shortly after the windows boot logo appears. I can't find the trigger for the bug but by altering the CPU config for the guest you can get a successful boot i.e. switch the processor type after each failed boot...however rebooting after a successful boot seems to causes the issue again...I just keep switching guest processor settings to workaround this.
[*=1]Anyways for this test I persisted, completed the install and got to Win7 desktop...applied the virtio drivers etc but didn't do any windows updates.
[*=1]I used the .iso install media I created from the prior tests and ran the executable
[*=1]The installer does its stuff, completes its first pass to 100% (copying files I think)...then it reboots...
[*=1]The (re)boot up looks like windows 10 but then I get a black screen and all activity ceases i.e. no io, cpu cycles etc.
[*=1]I force a restart which (re)boots into Windows 7 and the Windows 10 Upgrade dialogue appears saying "The installation failed in the SAFE_OS phase with an error during BOOT operation."
EDIT (3rd Aug @ 20:18)
[*=1]Okay so now I'm completely battered...
[*=1]I've tried pretty much every variation/combination of OVMF, SeaBIOS, Q35, i440FX, no virtio drivers, virtio drivers...the same error message presents mid Windows 10 installation which points back to a driver issue.
[*=1]I have a Macbook Pro which I run Parallels on for a Win desktop too, I'd previously upgrade my Windows 8.1 installation to Windows 10 without issue so I moved my Windows 7 vm onto that and upgraded it...without issue.
[*=1]*Work around* found
[*=1]To be fare the setuperr.log on the Windows 10 install contained a lot of detail that I'm sure the right forum could have appraised but I haven't explored that and likely wont.
[*=1]SIDE NOTE: In all my testing with Win7 i could never get Windows Update to work...just kept checking for updates. This was a new problem which I never experienced when using Win7 for my daily tasks, I'm speculating here but I think that MS must check as part of the Windows Update process whether the Product Key as been through an update to Windows 10 previous or not. The reason being is that to test the whole process prior to using kvm/qemu I revived an old physical machine I had spare, put a clean Windows 7 on it, activated and then upgraded it.
CONCLUSION: For me I'm writing off an upgrade of Windows 7 using kvm/qemu. I've successfully done this using Parallels on my Mac so will move this installation on their, which means I can move my Windows 8.1 installation off my Mac and onto kvm/qemu...which will be my next test.
EDIT (8th Aug @ 16:44)
[*=1]Maybe someone could try the solution okky found for Windows 8.1 below for upgrading their Windows 7 guest, please post back results if you do.
Windows 10 Official-Release (upgrade from Windows 8.1)
EDIT (8th Aug @ 16:31)
[*=1]So a kind forum member (okky-htf) posted their solution for upgrading Windows 8.1 to Windows 10 and its worked for me. See post #2 in this thread for the full details (http://ubuntuforums.org/showthread.php?t=2289210&p=13334367#post13334367)
[*=1]Summary is to change the CPU type to (core2duo), add a feature flag (nx) and to hide KVM from the guest, then complete the upgrade...once finished you can revert the changes.
[*=1]QEMU: -cpu core2duo,+nx,kvm=off
[*=1]Libvirt:
<features>
<acpi/>
<kvm>
<hidden state='on'/>
</kvm>
</features>
<cpu mode='custom' match='exact'>
<model fallback='allow'>core2duo</model>
<feature policy='require' name='nx'/>
</cpu>
[*=1]Its possible the 'kvm=off' is superfluous as I'd guess okky is using this as he has an Nvidia VGA passthrough solution. If someone else attempts without this please post a reply with the results.
CONCLUSION: So the forum has done it again, proves the power of community if you ask me.
I current run Windows 7 Ultimate in a qemu/kvm guest using legacy Seabios...this is primarily my corp desktop. I qualified for the free upgrade to Windows 10 so I've been playing around with various solutions pre and post official release.
Windows 10 Pre-Release (Insider Previews / Technical Previews)
Very early Tech Prev seemed to work fine using the available virtio drivers from redhat.
However the later Insider Preview releases caused me some headaches
Various forum searches showed others having similar issues with solutions ranging from setting CPU types to 'kvm64' to using 'Virtio SCSI' controllers.
I personally had success after changing disk controllers (https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/)
Windows 10 Official-Release (clean installation from .iso file)
Used the media creation tool MS released to download the installation media (.iso)
Used the latest OVMF build from here https://www.kraxel.org/repos/jenkins/edk2/
Configured the guest to copy my host CPU specs and set the topology for 1x socket, 2x cores, 2x threads. (lshw: Intel(R) Core(TM) i7-4790S CPU @ 3.20GHz)
Used the IDE bus for the windows .iso installation media and the virtio drivers (grabbed the latest from https://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download)
NOTE: I used the win8.1 amd64 virtio drivers, no complaints or issues noticed thus far
This pretty much gives me a functional Windows 10 qemu/kvm guest which seems as per-formant as my Windows 7 legacy.
The problem is you can't just activate the Windows 10 clean installation using the Windows 7 Product Key...Microsoft want you to upgrade your earlier version to qualify for the free Windows 10 copy (see http://www.howtogeek.com/224342/how-to-clean-install-windows-10/)
Windows 10 Official-Release (upgrade from Windows 7)
Firstly, the Windows 10 upgrade tool in the taskbar of my Windows 7 guest said my hardware wasn't compatible because of the 'Redhat Display Adapter'
You have to force the issue here by using the media creation tool and creating either an .iso (as per above) or a USB installer, either is fine just execute the setup program from the media to bypass the upgrade tool
So this is where I start getting issues
EDIT (2nd Aug @ 19:43)
[*=1]So I attempted a clean install of Windows 7 first, turns out that Win7 boot is buggy when using OVMF as it consistently powers off shortly after the windows boot logo appears. I can't find the trigger for the bug but by altering the CPU config for the guest you can get a successful boot i.e. switch the processor type after each failed boot...however rebooting after a successful boot seems to causes the issue again...I just keep switching guest processor settings to workaround this.
[*=1]Anyways for this test I persisted, completed the install and got to Win7 desktop...applied the virtio drivers etc but didn't do any windows updates.
[*=1]I used the .iso install media I created from the prior tests and ran the executable
[*=1]The installer does its stuff, completes its first pass to 100% (copying files I think)...then it reboots...
[*=1]The (re)boot up looks like windows 10 but then I get a black screen and all activity ceases i.e. no io, cpu cycles etc.
[*=1]I force a restart which (re)boots into Windows 7 and the Windows 10 Upgrade dialogue appears saying "The installation failed in the SAFE_OS phase with an error during BOOT operation."
EDIT (3rd Aug @ 20:18)
[*=1]Okay so now I'm completely battered...
[*=1]I've tried pretty much every variation/combination of OVMF, SeaBIOS, Q35, i440FX, no virtio drivers, virtio drivers...the same error message presents mid Windows 10 installation which points back to a driver issue.
[*=1]I have a Macbook Pro which I run Parallels on for a Win desktop too, I'd previously upgrade my Windows 8.1 installation to Windows 10 without issue so I moved my Windows 7 vm onto that and upgraded it...without issue.
[*=1]*Work around* found
[*=1]To be fare the setuperr.log on the Windows 10 install contained a lot of detail that I'm sure the right forum could have appraised but I haven't explored that and likely wont.
[*=1]SIDE NOTE: In all my testing with Win7 i could never get Windows Update to work...just kept checking for updates. This was a new problem which I never experienced when using Win7 for my daily tasks, I'm speculating here but I think that MS must check as part of the Windows Update process whether the Product Key as been through an update to Windows 10 previous or not. The reason being is that to test the whole process prior to using kvm/qemu I revived an old physical machine I had spare, put a clean Windows 7 on it, activated and then upgraded it.
CONCLUSION: For me I'm writing off an upgrade of Windows 7 using kvm/qemu. I've successfully done this using Parallels on my Mac so will move this installation on their, which means I can move my Windows 8.1 installation off my Mac and onto kvm/qemu...which will be my next test.
EDIT (8th Aug @ 16:44)
[*=1]Maybe someone could try the solution okky found for Windows 8.1 below for upgrading their Windows 7 guest, please post back results if you do.
Windows 10 Official-Release (upgrade from Windows 8.1)
EDIT (8th Aug @ 16:31)
[*=1]So a kind forum member (okky-htf) posted their solution for upgrading Windows 8.1 to Windows 10 and its worked for me. See post #2 in this thread for the full details (http://ubuntuforums.org/showthread.php?t=2289210&p=13334367#post13334367)
[*=1]Summary is to change the CPU type to (core2duo), add a feature flag (nx) and to hide KVM from the guest, then complete the upgrade...once finished you can revert the changes.
[*=1]QEMU: -cpu core2duo,+nx,kvm=off
[*=1]Libvirt:
<features>
<acpi/>
<kvm>
<hidden state='on'/>
</kvm>
</features>
<cpu mode='custom' match='exact'>
<model fallback='allow'>core2duo</model>
<feature policy='require' name='nx'/>
</cpu>
[*=1]Its possible the 'kvm=off' is superfluous as I'd guess okky is using this as he has an Nvidia VGA passthrough solution. If someone else attempts without this please post a reply with the results.
CONCLUSION: So the forum has done it again, proves the power of community if you ask me.