Re: [Libguestfs] Help with Win10
On Mon, Feb 08, 2016 at 04:50:09PM -0800, Joshua Pincus wrote:
Mr Jones,
I recently came across your excellent 2010 blog entry, https://rwmj.wordpress.com/2010/04/30/tip-install-a-device-driver-in-a-windo.... The blog entry was incredibly useful for Win7. I was wondering if you have any similar insights for Win10? The CDDB is gone, and it's replacement, or partial replacement, the DeviceDriver database, doesn't seem to serve a similar purpose.
My problem is this: I have a Win10 installation that was installed natively onto physical media using the standard Intel storage drivers. In short, I want to do precisely that you detailed in your 2010 entry under Win10; I want to boot that native installation using the current RedHat viostor driver. Win10 keeps hitting me with an 0x7B error, and it's rather difficult to get into debugger mode. If I install Win7 and then try booting Win7 using viostor as you detailed, it works perfectly. Win10 does not. Any insights?
See: https://github.com/libguestfs/libguestfs/blob/master/v2v/windows_virtio.ml Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
Hi Rich, Thanks for the pointer. It looks like add_viostor_to_driver_database() is the routine that I need to mimic. I'll try that out in the morning. I've been staring at this problem for so long that my eyes are crossing. Thank you very much for the quick reply! JP On Tue, Feb 9, 2016 at 12:11 AM, Richard W.M. Jones <rjones@redhat.com> wrote:
On Mon, Feb 08, 2016 at 04:50:09PM -0800, Joshua Pincus wrote:
Mr Jones,
I recently came across your excellent 2010 blog entry,
https://rwmj.wordpress.com/2010/04/30/tip-install-a-device-driver-in-a-windo... .
The blog entry was incredibly useful for Win7. I was wondering if you have any similar insights for Win10? The CDDB is gone, and it's replacement, or partial replacement, the DeviceDriver database, doesn't seem to serve a similar purpose.
My problem is this: I have a Win10 installation that was installed natively onto physical media using the standard Intel storage drivers. In short, I want to do precisely that you detailed in your 2010 entry under Win10; I want to boot that native installation using the current RedHat viostor driver. Win10 keeps hitting me with an 0x7B error, and it's rather difficult to get into debugger mode. If I install Win7 and then try booting Win7 using viostor as you detailed, it works perfectly. Win10 does not. Any insights?
See:
https://github.com/libguestfs/libguestfs/blob/master/v2v/windows_virtio.ml
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
On Tue, Feb 09, 2016 at 12:20:35AM -0800, Joshua Pincus wrote:
Hi Rich,
Thanks for the pointer. It looks like add_viostor_to_driver_database() is the routine that I need to mimic. I'll try that out in the morning. I've been staring at this problem for so long that my eyes are crossing.
I should note that any doubled \\ that appear in the strings are really single \, they are just escaped OCaml strings. It might help to fire up the OCaml interpreter: $ rlwrap ocaml OCaml version 4.02.3 # open Printf;; # printf "PCI\\VEN_1AF4&DEV_1001&REV_00\n";; PCI\VEN_1AF4&DEV_1001&REV_00 - : unit = () # let oem_inf = "oem1.inf";; val oem_inf : string = "oem1.inf" # printf "@%s,%%rhelscsi.devicedesc%%;Red Hat VirtIO SCSI controller\n" oem_inf;; @oem1.inf,%rhelscsi.devicedesc%;Red Hat VirtIO SCSI controller - : unit = () Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
Hi Rich, Thanks, again, for the pointer. I'm still slowly going through the registry making my changes. I noticed what may be a small bug in your code. Please look at https://github.com/libguestfs/libguestfs/blob/master/v2v/windows_virtio.ml#L.... I think you meant to have those two compat ids be: "PCI\\CC_010000"; "PCI\\CC_0100"; The current IDs in your code try to associate the viostor driver with devices from vendor http://pcidatabase.com/vendor_details.php?id=406, which I don't believe was your intent. JP On Tue, Feb 9, 2016 at 12:35 AM, Richard W.M. Jones <rjones@redhat.com> wrote:
On Tue, Feb 09, 2016 at 12:20:35AM -0800, Joshua Pincus wrote:
Hi Rich,
Thanks for the pointer. It looks like add_viostor_to_driver_database() is the routine that I need to mimic. I'll try that out in the morning. I've been staring at this problem for so long that my eyes are crossing.
I should note that any doubled \\ that appear in the strings are really single \, they are just escaped OCaml strings. It might help to fire up the OCaml interpreter:
$ rlwrap ocaml OCaml version 4.02.3
# open Printf;; # printf "PCI\\VEN_1AF4&DEV_1001&REV_00\n";; PCI\VEN_1AF4&DEV_1001&REV_00 - : unit = () # let oem_inf = "oem1.inf";; val oem_inf : string = "oem1.inf" # printf "@%s,%%rhelscsi.devicedesc%%;Red Hat VirtIO SCSI controller\n" oem_inf;; @oem1.inf,%rhelscsi.devicedesc%;Red Hat VirtIO SCSI controller - : unit = ()
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
On Tue, Feb 09, 2016 at 01:50:37PM -0800, Joshua Pincus wrote:
Hi Rich,
Thanks, again, for the pointer. I'm still slowly going through the registry making my changes.
I noticed what may be a small bug in your code. Please look at https://github.com/libguestfs/libguestfs/blob/master/v2v/windows_virtio.ml#L.... I think you meant to have those two compat ids be:
"PCI\\CC_010000"; "PCI\\CC_0100";
Yes - you are quite correct. I went back to the original Windows guest that I used for getting the registry changes, and found that I had transcribed these two strings incorrectly. Here is the fix: https://github.com/libguestfs/libguestfs/commit/938f48f08a37791e8ebd6245d19b... Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
Hi Richard, Thanks for all your help. Turns out that I needed to get a handle on the StartOverride rubbish that MSFT pushed into Win8 and Win10. It was preventing my viostor service from starting at boot, much like what many poor souls found when they tried to enable/disable AHCI in the BIOS of their machines. Do you know which entity is responsible for modifying the registry at boot to disable/enable these boot services with StartOverride registry updates? Thanks, JP On Mon, Feb 15, 2016 at 2:44 AM, Richard W.M. Jones <rjones@redhat.com> wrote:
On Tue, Feb 09, 2016 at 01:50:37PM -0800, Joshua Pincus wrote:
Hi Rich,
Thanks, again, for the pointer. I'm still slowly going through the registry making my changes.
I noticed what may be a small bug in your code. Please look at
https://github.com/libguestfs/libguestfs/blob/master/v2v/windows_virtio.ml#L... .
I think you meant to have those two compat ids be:
"PCI\\CC_010000"; "PCI\\CC_0100";
Yes - you are quite correct. I went back to the original Windows guest that I used for getting the registry changes, and found that I had transcribed these two strings incorrectly.
Here is the fix:
https://github.com/libguestfs/libguestfs/commit/938f48f08a37791e8ebd6245d19b...
Thanks,
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/
On Mon, Feb 15, 2016 at 09:59:47AM -0800, Joshua Pincus wrote:
Hi Richard,
Thanks for all your help. Turns out that I needed to get a handle on the StartOverride rubbish that MSFT pushed into Win8 and Win10. It was preventing my viostor service from starting at boot, much like what many poor souls found when they tried to enable/disable AHCI in the BIOS of their machines. Do you know which entity is responsible for modifying the registry at boot to disable/enable these boot services with StartOverride registry updates?
virt-v2v doesn't touch StartOverride. The only thing we have found which prevents viostor from being installed is Group Policy. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
participants (2)
-
Joshua Pincus -
Richard W.M. Jones