Bug 692394
| Summary: | inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Jinxin Zheng <jzheng> | ||||||
| Component: | libguestfs | Assignee: | Richard W.M. Jones <rjones> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 6.1 | CC: | mshao | ||||||
| Target Milestone: | rc | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | libguestfs-1.7.17-24.el6 | Doc Type: | Bug Fix | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | |||||||||
| : | 692545 (view as bug list) | Environment: | |||||||
| Last Closed: | 2011-12-06 10:31:36 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: | 692545 | ||||||||
| Bug Blocks: | |||||||||
| Attachments: |
|
||||||||
OH, I think the xenpv driver is a 32-bit program that run in WOW64 mode. It should be found in HKEY_LOCAL_MACHINE\Software\WOW6432node. I did not try the native 64-bit program case, which I'll later have a test. Could you attach the HKLM\SOFTWARE hive from this windows guest to the bug? Do: $ guestfish --ro -a windows-64bit.img -i \ download win:/windows/system32/config/software software $ file software software: MS Windows registry file, NT/2000 or above Those commands should produce a binary file called 'software' in the current directory which you can just attach. Created attachment 489012 [details] Compressed hive file of the Windows image I compressed the hive file. It's from a Windows 7 x64 image. Well, I tried the 7zip 64bit version, and it was correct. ><fs> inspect-list-applications /dev/vda1 [0] = { app_name: {23170F69-40C1-2702-0920-000001000000} app_display_name: 7-Zip 9.20 (x64 edition) app_epoch: 0 app_version: 9.20.00.0 app_release: app_install_path: app_trans_path: app_publisher: Igor Pavlov app_url: http://www.7-zip.org/ app_source_package: app_summary: app_description: } Then it's a 32bit-on-64bit issue. Created attachment 489013 [details]
Second version of hive file that contains 64bit 7-zip installed
The hive file on which I performed the test with 64 bit 7-zip.
Upstream fix: http://git.annexia.org/?p=libguestfs.git;a=commitdiff;h=64bc4495031a1942472038db7aee0bf3b746949d Reproduced on libguestfs-1.7.17-19 using:
$ guestfish -a windows-64.img <<EOF
inspect-os
mount /dev/vda1 /
inspect-list-applications /dev/vda1
EOF
The windows-64.img has xenpv-win driver installed.
There's no output running the script.
Verified with libguestfs-1.7.17-26. We get:
[0] = {
app_name: Red Hat Paravirtualized Xen Drivers for Windows(R)
app_display_name: Red Hat Paravirtualized Xen Drivers for Windows(R) 1.3.4
app_epoch: 0
app_version: 1.3.4
app_release:
app_install_path:
app_trans_path:
app_publisher: Red Hat, Inc.
app_url: http://www.redhat.com
app_source_package:
app_summary:
app_description:
}
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2011-1512.html |
Description of problem: inspect-list-applications cannot detect applications installed in x64-based Windows image, whereas it works for 32 bit Win. Taking the xenpv driver as an example, I installed xenpv on a 32 bit Windows 2003 image from inside the guest, and guestfish successfully could detect it: ... [2] = { app_name: Red Hat Paravirtualized Xen Drivers for Windows(R) app_display_name: Red Hat Paravirtualized Xen Drivers for Windows(R) 1.3.4-1 app_epoch: 0 app_version: 1.3.4-1 app_release: app_install_path: app_trans_path: app_publisher: Red Hat, Inc. app_url: http://www.redhat.com app_source_package: app_summary: app_description: } But when we come to the 64 bit Windows, we get nothing from the output. Version-Release number of selected component (if applicable): libguestfs-1.7.17-16.el6 How reproducible: Always Steps to Reproduce: 1. Setup a x64-based Windows image. Boot into the guest using KVM or Xen, and install some applications like xenpv driver. 2. Quit the guest and use guestfish to detect the installed application. guestfish -a windows-64bit.img ... ><fs> inspect-os /dev/vda1 ><fs> inspect-get-mountpoints /dev/vda1 /: /dev/vda1 ><fs> mount /dev/vda1 / ><fs> inspect-list-applications /dev/vda1 ><fs> Actual results: No output. Expected results: Descriptions of installed applications. Additional info: I think you need to look for some registry key other than HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall for the 64 bit Windows. This page might help: http://support.microsoft.com/kb/896459