Blog Code Forum

Virtual Windows XP

From Wiki.cyring.fr

(Difference between revisions)
Jump to: navigation, search
(Start the VM)
 
(39 intermediate revisions not shown)
Line 1: Line 1:
-
==== Convert VM ====
+
=== Prerequisite ===
 +
This HowTo has been written using ArchLinux x86_64 Kernel 3.6.5<br />
 +
The following packages are mandatory<br />
 +
<syntaxhighlight lang="bash" line start="1">
 +
pacman -S fuse qemu-kvm libvirt chntpw
 +
pacman -S base-devel
 +
pacman -S yaourt
 +
yaourt hivex
 +
</syntaxhighlight>
 +
* [https://wiki.archlinux.org/index.php/Yaourt Yaourt ArchWiki]<br />
 +
You may also installed the following ones
 +
<syntaxhighlight lang="bash" line start="5">
 +
pacman -S sudo wget libcdio
 +
</syntaxhighlight><br />
 +
 
 +
=== Convert VHD To KVM ===
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
qemu-img convert -f vpc -O raw "Virtual Windows XP.vhd" v2WinXP.img
qemu-img convert -f vpc -O raw "Virtual Windows XP.vhd" v2WinXP.img
 +
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-30.iso
 +
iso-read -i virtio-win-0.1-30.iso -e WXP/X86/VIOSTOR.SYS -o VIOSTOR.SYS
 +
iso-read -i virtio-win-0.1-30.iso -e WXP/X86/VIOSTOR.INF -o VIOSTOR.INF
sudo mount -o loop,offset=32256 v2WinXP.img /mnt
sudo mount -o loop,offset=32256 v2WinXP.img /mnt
-
cp -R ~/tmp/WXP /mnt/
+
cp VIOSTOR.SYS /mnt/WINDOWS/system32/drivers/
-
cp ~/tmp/WXP/X86/VIOSER.SYS /mnt/WINDOWS/system32/drivers/
+
cp VIOSTOR.INF /mnt/WINDOWS/inf/
-
cp ~/tmp/WXP/X86/VIOSER.INF /mnt/WINDOWS/inf/
+
mkdir ~/tmp/config
mkdir ~/tmp/config
cp /mnt/WINDOWS/system32/config/* ~/tmp/config/
cp /mnt/WINDOWS/system32/config/* ~/tmp/config/
-
reged -I ~/tmp/config/system HKEY_LOCAL_MACHINE ~/tmp/devicedb.reg
+
wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys1.reg
 +
wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys2.reg
 +
wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys3.reg
 +
wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys4.reg
 +
hivexregedit --merge ~/tmp/config/system virtio_keys1.reg
 +
hivexregedit --merge ~/tmp/config/system virtio_keys2.reg
 +
hivexregedit --merge ~/tmp/config/system virtio_keys3.reg
 +
hivexregedit --merge ~/tmp/config/system virtio_keys4.reg
 +
chntpw -e ~/tmp/config/system << EOF
 +
> cd ControlSet001
 +
> cd Services
 +
> cd Processor
 +
> ed Start
 +
> 4
 +
> q
 +
> y
 +
> EOF
cp ~/tmp/config/system /mnt/WINDOWS/system32/config/
cp ~/tmp/config/system /mnt/WINDOWS/system32/config/
sudo umount /mnt
sudo umount /mnt
</syntaxhighlight><br />
</syntaxhighlight><br />
-
==== Import Registry ====
 
-
devicedb.reg
 
-
<syntaxhighlight lang="reg">
 
-
Windows Registry Editor Version 5.00
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet]
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Control]
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Control\CriticalDeviceDatabase]
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00000000]
 
-
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
 
-
"Service"="viostor"
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00020000]
 
-
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
 
-
"Service"="viostor"
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00021af4]
 
-
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
 
-
"Service"="viostor"
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services]
 
-
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services\viostor]
 
-
"Type"=dword:00000001
 
-
"Start"=dword:00000000
 
-
"Group"="SCSI miniport"
 
-
"ErrorControl"=dword:00000001
 
-
"ImagePath"="system32\\drivers\\viostor.sys"
 
-
"Tag"=dword:00000040
 
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services\viostor\Enum]
+
=== Import into the registry ===
-
"0"="PCI\\VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00\\3&13c0b0c5&0&20"
+
Download registry files @ [http://code.cyring.fr/FTS code.cyring.fr/FTS]
-
"Count"=dword:00000000
+
=== Editing Registry ===
-
"NextInstance"=dword:00000001
+
-
 
+
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services\viostor\Parameters]
+
-
"BusType"=dword:00000001
+
-
 
+
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services\viostor\Parameters\MaxTransferSize]
+
-
"ParamDesc"="Maximum Transfer Size"
+
-
"type"="enum"
+
-
"default"="0"
+
-
 
+
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services\viostor\Parameters\MaxTransferSize\enum]
+
-
"0"="64 KB"
+
-
"1"="128 KB"
+
-
"2"="256 KB"
+
-
 
+
-
[HKEY_LOCAL_MACHINE\CurrentControlSet\Services\viostor\Parameters\PnpInterface]
+
-
"5"=dword:00000001
+
-
 
+
-
</syntaxhighlight><br />
+
-
==== Edit Registry ====
+
<syntaxhighlight lang="bash" line start="1">
<syntaxhighlight lang="bash" line start="1">
chntpw -e ~/tmp/config/system
chntpw -e ~/tmp/config/system
</syntaxhighlight><br />
</syntaxhighlight><br />
-
===== Our functional settings =====
+
===== Commands =====
<syntaxhighlight lang="reg">
<syntaxhighlight lang="reg">
cd ControlSet001
cd ControlSet001
Line 130: Line 111:
cd ..
cd ..
cd ..
cd ..
-
/*
+
 
nk Security
nk Security
cd Security
cd Security
-
 
nv 3 Security
nv 3 Security
-
ed Security
 
-
:00000  01 00 14 80 90 00 00 00 9C 00 00 00 14 00 00 00 ................
 
-
:00010  30 00 00 00 02 00 1C 00 01 00 00 00 02 80 14 00 0...............
 
-
:00020  FF 01 0F 00 01 01 00 00 00 00 00 01 00 00 00 00 ................
 
-
:00030  02 00 60 00 04 00 00 00 00 00 14 00 FD 01 02 00 ..`.............
 
-
:00040  01 01 00 00 00 00 00 05 12 00 00 00 00 00 18 00 ................
 
-
:00050  FF 01 0F 00 01 02 00 00 00 00 00 05 20 00 00 00 ............ ...
 
-
:00060  20 02 00 00 00 00 14 00 8D 01 02 00 01 01 00 00  ...............
 
-
:00070  00 00 00 05 0B 00 00 00 00 00 18 00 FD 01 02 00 ................
 
-
:00080  01 02 00 00 00 00 00 05 20 00 00 00 23 02 00 00 ........ ...#...
 
-
:00090  01 01 00 00 00 00 00 05 12 00 00 00 01 01 00 00 ................
 
-
:000A0  00 00 00 05 12 00 00 00                        ........
 
cd ..
cd ..
-
*/
+
 
cd Enum
cd Enum
nk SCSI
nk SCSI
Line 189: Line 157:
SCSI\RAW
SCSI\RAW
--q
--q
 +
 +
nv 1 ClassGUID
 +
ed ClassGUID
 +
{4D36E967-E325-11CE-BFC1-08002BE10318}
 +
 +
nv 1 Service
 +
ed Service
 +
disk
 +
 +
nv 1 Driver
 +
ed Driver
 +
{4D36E967-E325-11CE-BFC1-08002BE10318}\0002
 +
 +
nv 1 Class
 +
ed Class
 +
DiskDrive
 +
 +
nv 1 Mfg
 +
ed Mfg
 +
(Lecteurs de disque standard)
 +
 +
nv 1 FriendlyName
 +
ed FriendlyName
 +
Red Hat VirtIO SCSI Disk Device
 +
 +
nk Device Parameters
 +
nk LogConf
 +
 +
cd ..
 +
cd ..
 +
cd ..
 +
cd PCI
 +
nk VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00
 +
cd VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00
 +
nk 3&13c0b0c5&0&30
 +
cd 3&13c0b0c5&0&30
q
q
y
y
</syntaxhighlight><br />
</syntaxhighlight><br />
 +
 +
=== Define a new VM ===
 +
* Arch : i686
 +
* Processor : 1 core
 +
* Memory : 1024 MB
 +
* HDD : VirtIO, raw, "v2WinXP.img"
 +
* CDROM : IDE, raw, "virtio-win-0.1-30.iso"
 +
* NIC : Bridge, virbr0
 +
http://blog.cyring.fr/wp-content/uploads/2012/11/VWINXP.png
 +
 +
=== Start the VM ===
 +
http://blog.cyring.fr/wp-content/uploads/2012/11/Win006.png<br />
 +
Tips: remove the previous driver to get the mouse back in work.

Latest revision as of 09:21, 5 November 2012

Contents

Prerequisite

This HowTo has been written using ArchLinux x86_64 Kernel 3.6.5
The following packages are mandatory

  1. pacman -S fuse qemu-kvm libvirt chntpw
  2. pacman -S base-devel
  3. pacman -S yaourt
  4. yaourt hivex

You may also installed the following ones

  1. pacman -S sudo wget libcdio

Convert VHD To KVM

  1. qemu-img convert -f vpc -O raw "Virtual Windows XP.vhd" v2WinXP.img
  2. wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-30.iso
  3. iso-read -i virtio-win-0.1-30.iso -e WXP/X86/VIOSTOR.SYS -o VIOSTOR.SYS
  4. iso-read -i virtio-win-0.1-30.iso -e WXP/X86/VIOSTOR.INF -o VIOSTOR.INF
  5. sudo mount -o loop,offset=32256 v2WinXP.img /mnt
  6. cp VIOSTOR.SYS /mnt/WINDOWS/system32/drivers/
  7. cp VIOSTOR.INF /mnt/WINDOWS/inf/
  8. mkdir ~/tmp/config
  9. cp /mnt/WINDOWS/system32/config/* ~/tmp/config/
  10. wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys1.reg
  11. wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys2.reg
  12. wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys3.reg
  13. wget http://code.cyring.fr/FTS/Source/VM/WinXP/virtio_keys4.reg
  14. hivexregedit --merge ~/tmp/config/system virtio_keys1.reg
  15. hivexregedit --merge ~/tmp/config/system virtio_keys2.reg
  16. hivexregedit --merge ~/tmp/config/system virtio_keys3.reg
  17. hivexregedit --merge ~/tmp/config/system virtio_keys4.reg
  18. chntpw -e ~/tmp/config/system << EOF
  19. > cd ControlSet001
  20. > cd Services
  21. > cd Processor
  22. > ed Start
  23. > 4
  24. > q
  25. > y
  26. > EOF
  27. cp ~/tmp/config/system /mnt/WINDOWS/system32/config/
  28. sudo umount /mnt

Import into the registry

Download registry files @ code.cyring.fr/FTS

Editing Registry

  1. chntpw -e ~/tmp/config/system

Commands
cd ControlSet001
cd Control
cd CriticalDeviceDatabase
nk pci#ven_1af4&dev_1001&subsys_00021af4
cd pci#ven_1af4&dev_1001&subsys_00021af4
nv 1 Service
ed Service
viostor
nv 1 ClassGUID
ed ClassGUID
{4D36E97B-E325-11CE-BFC1-08002BE10318}
 
cd ..
cd ..
cd ..
cd Services
nk viostor
cd viostor
 
nv 4 Type
ed Type
00000001
 
nv 4 Start
ed Start
00000000
 
nv 4 ErrorControl
ed ErrorControl
00000001
 
nv 4 Tag
ed Tag
00000033
 
nv 2 ImagePath
ed ImagePath
System32\DRIVERS\viostor.sys
 
nv 1 Group
ed Group
SCSI miniport
 
nk Parameters
cd Parameters
nv 4 BusType
ed BusType
00000001
 
nk PnpInterface
cd PnpInterface
nv 4 5
ed 5
00000001
 
cd ..
cd ..
 
nk Security
cd Security
nv 3 Security
 
cd ..
 
cd Enum
nk SCSI
cd SCSI
nk Disk&Ven_Red_Hat&Prod_VirtIO&Rev_0001
cd Disk&Ven_Red_Hat&Prod_VirtIO&Rev_0001
nk 4&1618751f&0&000
cd 4&1618751f&0&000
 
nv 1 DeviceDesc
ed DeviceDesc
Lecteur de disque
 
nv 1 LocationInformation
ed LocationInformation
Bus Number 0, Target ID 0, LUN 0
 
nv 4 Capabilities
ed Capabilities
96
 
nv 4 ConfigFlags
ed ConfigFlags
0
 
nv 7 HardwareID
ed HardwareID
SCSI\DiskRed_Hat_VirtIO__________0001
SCSI\DiskRed_Hat_VirtIO__________
SCSI\DiskRed_Hat_
SCSI\Red_Hat_VirtIO__________0
Red_Hat_VirtIO__________0
GenDisk
--q
 
nv 7 CompatibleIDs
ed CompatibleIDs
SCSI\Disk
SCSI\RAW
--q
 
nv 1 ClassGUID
ed ClassGUID
{4D36E967-E325-11CE-BFC1-08002BE10318}
 
nv 1 Service
ed Service
disk
 
nv 1 Driver
ed Driver
{4D36E967-E325-11CE-BFC1-08002BE10318}\0002
 
nv 1 Class
ed Class
DiskDrive
 
nv 1 Mfg
ed Mfg
(Lecteurs de disque standard)
 
nv 1 FriendlyName
ed FriendlyName
Red Hat VirtIO SCSI Disk Device
 
nk Device Parameters
nk LogConf
 
cd ..
cd ..
cd ..
cd PCI
nk VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00
cd VEN_1AF4&DEV_1001&SUBSYS_00021AF4&REV_00
nk 3&13c0b0c5&0&30
cd 3&13c0b0c5&0&30
 
q
y

Define a new VM

  • Arch : i686
  • Processor : 1 core
  • Memory : 1024 MB
  • HDD : VirtIO, raw, "v2WinXP.img"
  • CDROM : IDE, raw, "virtio-win-0.1-30.iso"
  • NIC : Bridge, virbr0

VWINXP.png

Start the VM

Win006.png
Tips: remove the previous driver to get the mouse back in work.

Personal tools