Bug 1010560 - Win8-Pro no longer run as VM under F19 when it did under F17
Summary: Win8-Pro no longer run as VM under F19 when it did under F17
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: qemu
Version: 19
Hardware: x86_64
OS: Windows
unspecified
unspecified
Target Milestone: ---
Assignee: Fedora Virtualization Maintainers
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-09-21 12:37 UTC by rainman3d2002
Modified: 2013-11-06 02:02 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-06 01:31:26 UTC
Type: Bug


Attachments (Terms of Use)

Description rainman3d2002 2013-09-21 12:37:40 UTC
Description of problem:


Version-Release number of selected component (if applicable): 0.10.0


How reproducible:


Steps to Reproduce:
1. Need installation of Win8-Pro as VM under Fedora 17 Qemu/KVM
2. Upgrade to Fedora 19
3. Try to run Win8-Pro VM

Actual results: It fails with "Your PC needs to reboot, error code 5D"


Expected results: Win8-Pro VM starts under Fedora 19


Additional info:
Several websites talk about this issue as it relates to several different virtualization environments, but I suspect it's also affecting QEMU/KVM. I cannot find this setting for the NX bit in my BIOS, but there is one called "SVM", Secure Virtual Machine, which might be the same thing. It is enabled. However, that said, I installed and ran Win8-Pro as VM under Fedora17 on the exact same hardware and it worked without any problems. It no longer worked as soon as I upgraded to F19.

Comment 1 Richard W.M. Jones 2013-09-21 12:58:43 UTC
Apparently the error means that Windows requires the NX bit
(whyohwhy can't Windows just say what it means ...?).

Anyway you could probably pass this bit up to the VM (assuming
the hardware supports it).  You have to 'virsh edit' the domain
XML and add the appropriate bit:

http://libvirt.org/formatdomain.html#elementsCPU

You might try changing the whole <cpu/> element to just say:

  <cpu mode='host-model'>

which means "use the same guest CPU model as the host".

Make sure you keep a backup of the original domain XML, and also post
the (original) domain XML here, and the working domain XML if
you can get it to work.

NX has nothing to do with SVM.

Comment 2 Richard W.M. Jones 2013-09-21 13:00:12 UTC
(In reply to Richard W.M. Jones from comment #1)
> Apparently the error means that Windows requires the NX bit
> (whyohwhy can't Windows just say what it means ...?).
> 
> Anyway you could probably pass this bit up to the VM (assuming
> the hardware supports it).  You have to 'virsh edit' the domain
> XML and add the appropriate bit:

To clarify ... CPUID feature "bit".  (NX bit is a bit in the
page table which is enabled by this feature).

> http://libvirt.org/formatdomain.html#elementsCPU
> 
> You might try changing the whole <cpu/> element to just say:
> 
>   <cpu mode='host-model'>

Should say:

<cpu mode='host-model'/>

Comment 3 rainman3d2002 2013-09-21 15:52:19 UTC
I've tried that, no luck. I usually use the gui for the VM, so the virsh command was new to me. Anyway, using the gui, when I do "Copy host CPU configuration" button, my CPU is identified as an Opteron3 whereas it's actually Ahthlon II X4. This was the same way under F17. The NX entry comes up as Model. If I change it to Required, it still won't boot Win8.

Comment 4 Cole Robinson 2013-10-31 20:55:10 UTC
(In reply to rainman3d2002 from comment #3)
> I've tried that, no luck. I usually use the gui for the VM, so the virsh
> command was new to me. Anyway, using the gui, when I do "Copy host CPU
> configuration" button, my CPU is identified as an Opteron3 whereas it's
> actually Ahthlon II X4. This was the same way under F17. The NX entry comes
> up as Model. If I change it to Required, it still won't boot Win8.

Can you try this libvirt XML instead?

<cpu mode='host-passthrough'/>

Sounds similar but there are subtle differences. You'll want to delete your whole <cpu> block and replace it with that

Comment 5 rainman3d2002 2013-11-04 13:53:03 UTC
[root@System45 ~]# virsh start Windows8
error: Failed to start domain Windows8
error: unsupported configuration: CPU mode 'host-passthrough' is only supported with kvm


It's currently configured with qemu.

Comment 6 Richard W.M. Jones 2013-11-04 15:46:55 UTC
I think the solution to that is, don't use qemu, use KVM.  Is
there some reason you want to use the very slow qemu instead
of KVM?

Comment 7 Cole Robinson 2013-11-05 16:12:57 UTC
Please give kvm a try:

sudo virsh edit $vmname
change <domain type='qemu'/> to <domain type='kvm'/>

If that doesn't work, please post the output of

sudo virt-host-validate

Comment 8 rainman3d2002 2013-11-06 01:16:44 UTC
Okay, so that worked. My Win8 VM booted and is currently performing 3 months worth of missed updates. I don't really know the difference between qemu and kvm. When I installed this vm under Fedora17 on the same hardware, it was the default, I believe, and that's what I continued using, the only problem being lack of video drivers for Win8. What is the benefit/disadvantage of using kvm vs qemu? Apart from qemu apparently being broken on F19?

Comment 9 Cole Robinson 2013-11-06 01:31:26 UTC
(In reply to rainman3d2002 from comment #8)
> Okay, so that worked. My Win8 VM booted and is currently performing 3 months
> worth of missed updates. I don't really know the difference between qemu and
> kvm. When I installed this vm under Fedora17 on the same hardware, it was
> the default, I believe, and that's what I continued using, the only problem
> being lack of video drivers for Win8. What is the benefit/disadvantage of
> using kvm vs qemu? Apart from qemu apparently being broken on F19?

kvm is probably 10 times faster, giving close to bare metal performance if properly configured.

I'm not sure why it 'just worked' on fedora 17, but it's not surprising that a default configured qemu guest didn't work with windows 8, since a very new CPU is likely for windows 8 (that's what cpu host-passthrough does).

Comment 10 rainman3d2002 2013-11-06 02:02:19 UTC
Okay. Thank you very much for your help.


Note You need to log in before you can comment on or make changes to this bug.