Need help creating a windows XP virtual machine


Recommended Posts

Hello

 

I'm looking to create a windows xp virtual machine i've had success with other versions such as windows 7 and have been able to install the hard drive drivers, unfortunately for xp it won't recognise the virtio iso that has the drivers. i've checked the bios settings and everything is in order... please help

 

Kind Regards

 

Ryan

Link to comment

I haven't tried this, but if I was going to take a guess, its because (as I recall) that XP insists on having any/extra drivers either installed on either a floppy disk or on its install disk.  I would think the easiest work around would be to add the virtio drivers to another folder within the xp iso.

Link to comment

I too wanted a WinXP machine but instead went with a Win7 Lite iso after encountering the lack of a floppy. However, I've figured out how to get WinXP installed in KVM.

 

Grab this image below

http://www.linux-kvm.com/sites/default/files/viostor-31-03-2010-floppy.img

 

Add this to your WinXP XML file, changing the source file path to where you've saved the above image.

<disk type='file' device='floppy'>
<source file='/path/to/your/viostor-31-03-2010-floppy.img'/>
<target dev='fda'/>
</disk>

 

You don't have to press any keys when booting the WinXP installer. Just go through as normal and the installer will automatically detect the floppy image. When you get to the formatting portion, you should see the disk!

 

Sources:

https://aababilov.wordpress.com/2013/07/10/setup-windows-xp-virtio/

https://www.centos.org/docs/5/html/5.2/Virtualization/sect-Virtualization-Virtualized_block_devices-Installing_a_virtualized_floppy_disk_controller.html

  • Like 2
  • Thanks 1
Link to comment

Sorry to hijack the thread but I'm having a related issue.  I've followed your steps, got the floppy.img and Windows setup can now see/format the vHDD.  The problem is the next step where Windows tries to copy the setup files to the HDD, I'm getting an error stating that it can't copy the viostor.sys file (Enter to retry, ESC to skip etc).

 

I've tried 2 different floppy images with the same results.  I've also tried the file in different locations on my server (cache drive, user share) but just keep getting the same error.

 

[edit]

I slipstreamed the drivers into an XP.iso image and managed to get through the first part of the XP install, however, upon reboot I just get a BSOD followed by a restart.  If I shut down the VM and edit the XML changing the HDD type to ide it boots fine, but now I'm unable to install the proper virtio drivers (it says it's installed, but upon reboot there's an issue and my 2nd vHDD isn't detected).  I'm also missing other misc drivers (network, VGA etc).  I know there's a wiki/guide for installing Win7 as a VM, but does one exist for XP?  I don't need the bells and whistles of Win7 and prefer the (by comparison) light nature of Windows XP.

Link to comment
  • 7 months later...

+1 this should be a sticky or added to the vm setup guide.

 

Adding a note as per my experience with this. I attempted to boot the vm and found this issue, so I stopped it and added the details within the XML file. However it would never boot after. Make sure you add the xml details before you boot the vm for the first time, or it won't boot the iso.

 

1. Create the VM for windows XM under "VMs"

2. In the setup of the VM make sure you remove the check next to "Start VM after creation"

3. Save the changes and edit the XML file to add the above snip.

4. Start the vm for the first time.

Link to comment
  • 5 months later...

I too wanted a WinXP machine but instead went with a Win7 Lite iso after encountering the lack of a floppy. However, I've figured out how to get WinXP installed in KVM.

 

Grab this image below

http://www.linux-kvm.com/sites/default/files/viostor-31-03-2010-floppy.img

 

Add this to your WinXP XML file, changing the source file path to where you've saved the above image.

<disk type='file' device='floppy'>
<source file='/path/to/your/viostor-31-03-2010-floppy.img'/>
<target dev='fda'/>
</disk>

 

You don't have to press any keys when booting the WinXP installer. Just go through as normal and the installer will automatically detect the floppy image. When you get to the formatting portion, you should see the disk!

 

Sources:

https://aababilov.wordpress.com/2013/07/10/setup-windows-xp-virtio/

https://www.centos.org/docs/5/html/5.2/Virtualization/sect-Virtualization-Virtualized_block_devices-Installing_a_virtualized_floppy_disk_controller.html

 

 

Helped me too.

Thank you so much!

 

As was also said, almost certain that if you include the virtio drivers in a new win xp iso file it will work directly, without the need for this trick.

Link to comment
  • 7 months later...
  • 2 weeks later...
  • 2 months later...

Hello, I'd like to install a windows xp VM, but it doesn't work.

could you please help me to make the hard drive recognized ? (dl link does not work anymore)

 

Thanks

 

<domain type='kvm'>
  <name>Windows XP</name>
  <uuid>86e4b42c-8836-294b-45d8-19030481fec1</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows XP" icon="windowsxp.png" os="windowsxp"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='4'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.7'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='1' threads='2'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/Samsung_SSD_840_PRO_Series_S1ATNSAD774980B/Windows XP/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/system/libvirt/isos/fr_windows_7_ultimate_with_sp1_x64_dvd_u_677299.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/system/libvirt/isos/virtio-win-0.1.126-2.iso'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f3:15:da'/>
      <source bridge='virbr0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </memballoon>
  </devices>
</domain>

 

Link to comment
9 minutes ago, neuk34 said:

@squid : it ask for a floppy drive that contains drivers..

@gridrunner : works ! it copy files from iso, but installation stop at the beginning..

There have been a lot of reports that you need to run with just 1 cpu while doing the installation or any major updates.    Additional CPU’s can be added later when setup completes successfully.

Link to comment

@neuk34 Ok, a few things to do here.

Probably the graphics type is causing the install to fail. Change the VNC graphics type to Cirrus. 

Change HyperV to no.

Primary vdisk to IDE

One vCPU for install

Use no more than 2 gigs for memory

 

Also for network to function, you will need to change the network adapter to rtl8139 as xp won't have drivers for virtio 

You can't do this through the VM manager so edit the XML to be this

   <interface type='bridge'>
      <mac address='52:54:00:f3:15:da'/>
      <source bridge='virbr0'/>
      <model type='rtl8139'/>
    </interface>

 

Edited by gridrunner
  • Like 1
Link to comment
  • 1 year later...

@SpaceInvaderOne Followed your XML and it works, but...

from xp (192.168.122.36) I can see the whole network and the internet

from Unraid server (192.168.1.43) I can see xp and everything else

BUT from a Windows 10 VM (192.168.1.80) I CANNOT see xp.

 

I check the routing table, but it looks ok, any thoughts?

 

Routing Table

Protocol                 Route                 Gateway                     Metric

IPv4                       default               192.168.1.254 via br0   213

IPv4                       172.17.0.0/16       docker                        01

IPv4                       192.168.1.0/24     br0                            213

IPv4                       192.168.122.0/24 virbr0                        1

Link to comment
On 10/12/2018 at 4:56 PM, SpeedyVV said:

@SpaceInvaderOne Followed your XML and it works, but...

from xp (192.168.122.36) I can see the whole network and the internet

from Unraid server (192.168.1.43) I can see xp and everything else

BUT from a Windows 10 VM (192.168.1.80) I CANNOT see xp.

 

I check the routing table, but it looks ok, any thoughts?

 

Routing Table

Protocol                 Route                 Gateway                     Metric

IPv4                       default               192.168.1.254 via br0   213

IPv4                       172.17.0.0/16       docker                        01

IPv4                       192.168.1.0/24     br0                            213

IPv4                       192.168.122.0/24 virbr0                        1

Hi @SpeedyVV

Yes, its because the vm is on a different subnet. (using virbr0, not br0)

If you change the XML for Xp's network adapter to the below it will be fine.

 

 <interface type='bridge'>
      <mac address='52:54:00:f3:15:da'/>
      <source bridge='br0'/>
      <model type='rtl8139'/>
    </interface>

Hope this helps :)

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.