Bug 518599
Summary: | Win2008/Vista domU IDE controller not disabled after installation | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Paolo Bonzini <pbonzini> | ||||||
Component: | xenpv-win | Assignee: | Paolo Bonzini <pbonzini> | ||||||
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | 5.3 | CC: | bkahn, james.brown, jskrabal, kxiong, llim, plyons, saul.mendoza | ||||||
Target Milestone: | rc | Keywords: | Reopened | ||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | 516277 | Environment: | |||||||
Last Closed: | 2009-11-16 13:45:02 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 515354, 516277, 523090 | ||||||||
Attachments: |
|
*** Bug 519532 has been marked as a duplicate of this bug. *** The "ATA Channel" value is actually present in both W2K3 and W2K8 as key HardwareID under HKLM\SYSTEM\CurrentControlSet\Enum\PCIIDE\IDEChannel\<identifier> and in both cases, the Driver key under the same path points to {4d36e96a-e325-11ce-bfc1-08002be10318}. The difference is indeed that the MasterDeviceType and SlaveDeviceType have disappeared in W2K8 under HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e96a-e325-11ce-bfc1-08002be10318}\0001 and \0002. There is a new key HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e96a-e325-11ce-bfc1-08002be10318}\0001\Migrated that does not sound very helpful. There are also slighly more promising new keys HKLM\SYSTEM\CurrentControlSet\Control\Class\{4d36e96a-e325-11ce-bfc1-08002be10318}\0000\Channel0 and \Channel1 in W2K8, on the other hand. I don't know yet what can be placed in there, I'll look at the DDK documentation. Finally we have a winner: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCIIDE\IDEChannel\4&17497d5e&0&0\Device Parameters\Target0] DeviceType=3 Where the second "&0" controls the primary/secondary ("&1"), and the "Target0" controls master/slave ("Target1"). Now I have to find out how to use the Di API to get this registry key, but that seems relatively easy. The code for the fix is now in the "bz523090" branch of git://git.engineering.redhat.com/users/pbonzini/xenpv-win.git Created attachment 361267 [details]
patch set overhauling set-ide
Fixed in 1.0.90-1. RPMs available from http://people.redhat.com/pbonzini/xenpv-win-1.0.91-1 1.Install win2008 guest and Vista guest 2.Install xenpv-win driver 3.Restart the system 4.Go to device manager,and in system devices we can see RHEL Removed FV Device Verification passed. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHEA-2009-1583.html |
Created attachment 358204 [details] patch searching the right registry keys for 2k8 Description of problem: 1. Boot drive corruption when booting from "phy:" device (like a loopback). 2. After PV install, Boot drive duplicated in Device/Disk Manager as both the QEMU drive and RHEL SCSI drive (see notes below). How reproducible: Always Steps to Reproduce: 1. Install O/S 2. Install PV drivers 3. Reboot 4. If booting from phy: device, reboot 1 more time to witness hard drive corruption. Additional info: Dom0\arch: RHEL 5.2 x86 32-bit DomU\arch: Windows 2008 Ent x86 32-bit There is a known workaround: After installing the drivers: 1. Go into registry and set the Atapi service to disabled. 2. Reboot 3. THEN go disable the primary ATA channel using DevCon (or similar utility) 2/3 are needed because Windows would not let you disable the ATA Channel while it though the boot device was the QEMU disk (which is modestly different that the 2003 IDE driver). Looking at set-ide utilities code, looks like the search/set algorithm is looking for "primary_ide_channel" (and "Secondary...") and then setting a registry key to disable the given device. The 2008 "ATA Channel" driver does not operate in the same fasion. "primary_ide_channel" doesn't appear in any of its Id or name fields, and it doesn't respond to the same registry keys (namely "UserMasterDeviceType" and "UserSlaveDeviceType"). The attached prototype fixes the search issue, but setting the same value on the registry key results in nothing.