[libvirt-users] Migrate Win2k3 to KVM

Pierre Schweitzer pierre at reactos.org
Sat Jul 11 20:21:32 UTC 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/07/2015 20:01, Ruzsinszky Attila wrote:
> The error line is: *** STOP: 0x0000007B (0xF789AA94, 0xC0000034,
> 0x00000000, 0x00000000)

Perfect, this is what was expected. This should be easy to fix.

>>> I don't want Virtio. I want to boot my image first. As I
>>> mentioned I can't use the mergeide.req on the physical machine
>>> but I can do anything with the image (if I don't het error
>>> messages from the virt-win-reg).
>> 
>> Well, then, you can mount the image in a Linux machine and use
>> the chntpw tool to edit manually the registry and add the missing
>> driver information?
>> 
> Yes, I think.

Great, then, it opens possibilities. Let's try the following:
- - Install chntpw
- - Mount your disk on Linux
- - Move to Windows/System32/config (beware the case!)
- - Now, start registry editor: chntpw -e sam system security software
(beware the case, again!)
The following commands are to type in chntpw prompt:
- - hive 1 (to move to system)
- - cd ControlSet001
- - cd Control
- - cd CriticalDeviceDatabase
- - Check you have the following keys: primary_ide_channel,
secondary_ide_channel, pci#ven_8086&dev_7010, pci#ven_8086&dev_7111
keys. Some will be missing (otherwise, you'd boot ;-)).
- - Add the missing ones. For example: 'nk pci#ven_8086&dev_7111'
followed by: 'cd pci#ven_8086&dev_7111' followed by 'nv 1 Service' (1
for REG_SZ) followed by 'ed Service' and type intelide. Proceed like
that will all the missing keys & values[1], 'cd ..' when you're done
with all the values of a key, to proceed for the others
- - cd .. (you're now in Control)
- - cd .. (you're now in ControlSet001)
- - cd Services
- - Check you have the following keys: atapi and intelide
- - Add the missing ones[2]. REG_DWORD type is 4 when doing nv. (like nv
4 ErrorControl)
- - You're done, so: q to quit chntpw (of course, reply 'y' to write hives)
Back to your linux term:
- - cd ../drivers/
- - Check you have atapi.sys and intelide.sys. In case you don't,
extract them from the cab file you can find in Windows\Driver Cache\i386
- - Umount
- - Try to boot again, and report.

What did you do? You just added the missing hardware ClassGUID for
Intel IDE (which is what Qemu uses) to Windows registry. When
installing, Windows just sets the strictly minimalistic ones to match
your hardware. And then, you defined the associated drivers with these
ClassGUID. These are defined as service to allow defining how they
boot. When Start is set to 00000000, it means that you want them to be
started at boot: when Windows needs to find its boot device.

I hope this helped!

[1]:
key {value(type): data}
primary_ide_channel
{
    ClassGUID(REG_SZ): {4D36E96A-E325-11CE-BFC1-08002BE10318}
    Service(REG_SZ): atapi
}

secondary_ide_channel
{
    ClassGUID(REG_SZ): {4D36E96A-E325-11CE-BFC1-08002BE10318}
    Service(REG_SZ): atapi
}

pci#ven_8086&dev_7010
{
    ClassGUID(REG_SZ): {4D36E96A-E325-11CE-BFC1-08002BE10318}
    Service(REG_SZ): intelide
}
pci#ven_8086&dev_7111
{
    ClassGUID(REG_SZ): {4D36E96A-E325-11CE-BFC1-08002BE10318}
    Service(REG_SZ): intelide
}

[2]:
atapi
{
    ErrorControl(REG_DWORD): 00000001
    Group(REG_SZ): SCSI miniport
    Start(REG_DWORD): 00000000
    Tag(REG_DWORD): 00000019
    Type(REG_DWORD): 00000001
    DisplayName(REG_SZ): Standard IDE/ESDI Hard Disk Controller
    ImagePath(REG_SZ): system32\drivers\atapi.sys
}

intelide
{
    ErrorControl(REG_DWORD): 00000001
    Group(REG_SZ): System Bus Extender
    Start(REG_DWORD): 00000000
    Tag(REG_DWORD): 00000004
    Type(REG_DWORD): 00000001
    ImagePath(REG_SZ): system32\drivers\intelide.sys
}

- -- 
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQIcBAEBAgAGBQJVoXrMAAoJEHVFVWw9WFsLnqoQAJlqZtukxBpQvsLF5H5Us0SN
MmzH2szJbwz3G+i5jHl2lq+Gg0pP1dD3WBTxuzNZy91XT99hIUlyxW59KVvCk9XK
KQmghUUGW3zHqxH/mQoS9NV9t1jZhtHmFOy7RC5dbIoF3WaMPIWxEhTP9SFuSRUs
Ec/hcrfYKZ7yr1GSermvV7DdoaHbMc+ris+zCRL6xKydfWODzMhS+VuDiWTqA9Jn
s6FFpJnTRWR+nmTOEcBThTy5PhbjIVd/RS762vHKlx9hizkMVBGfoT+KmZQ8oI2+
5xnYwIkloBR1WFC2/OIlymbWmusTWuXLrYcYiEB0pOweW13Mt6EH13PXG/cZpyGb
ByS+ymtkDCHRZWMMnzbsnM2lkIMf7VvIisNDy1Ap0jW8siMLPcvBEcGWtlq607Rm
E1YTBA/2nRbD9SxQGp+K42WgnigKMGqAG+mbaG4HEE96unPN3ia0opc/JzCPLhE7
UvMd8LNtb8I6lKYFe9NvaSdVKDi38rnfpH3xO03dIKqL0ZA0iuO90G9buAN7hnBC
g6XsWQ0EEqoTLZeoNBFV7tk7jHirEGkEkZiZRsB8/LcB9sQZ4b+6gWiguxkeTkcm
EtUDpWFmLYDDFz+IuxV/T+Brgu2SFAYs6vu6knrhO+mjdgHyBmfoua+3G3d6736X
ySk7BjS1lfpB9OVqX2hM
=0+5z
-----END PGP SIGNATURE-----




More information about the libvirt-users mailing list