Few days ago I followed a two step procedure:
- first (on Windows) I created a VMWare image of WinXp partition using "VMWare
converter"
- then (on Linux) I converted the VMWare image into a qemu image with the
following commands:
vmware-vdiskmanager -r win_xp.vmdk -t 0 win-xp-flattened.vmdk
qemu-img convert win_xp-flattened.vmdk win_xp.img
Then I transferred the image on /dev/sda4:
dd if=win_xp.img of=/dev/sda4
It works and I can boot properly.
But now I must face other problems:
- I know I must reactivate WinXP; to reactivate I need it recognize a NIC but
it doesn't.
In win_xp.vhm I set:
vif = [ 'type=ioemu, mac=00:XX:XX:XX:XX:XX, bridge=xenbr0, model=rtl8139' ]
This because (in Safe Mode I discovered that a RTL8139 NIC driver is already
installed even if the actual installed NIC is a RTL8111/8168B.
I discovered some warnings in xend.log. I don't know if they are related with
NIC problem but googling around I found no posted solution. My xend.log is the
following:
[2008-06-25 09:25:09 4472] INFO (SrvDaemon:338) Xend Daemon started
[2008-06-25 09:25:09 4472] INFO (SrvDaemon:342) Xend changeset: unavailable.
[2008-06-25 09:25:09 4472] INFO (SrvDaemon:349) Xend version: Unknown.
[2008-06-25 09:25:09 4472] DEBUG (XendDomainInfo:132)
XendDomainInfo.recreate({'max_vcpu_id': 3, 'cpu_time': 237303954195L,
'ssidref': 0, 'hvm': 0, 'shutdown_reason': 0, 'dying': 0, 'online_vcpus': 4,
'domid': 0, 'paused': 0, 'crashed': 0, 'running': 1, 'maxmem_kb': 4294967292L,
'shutdown': 0, 'mem_kb': 1940044L, 'handle': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0], 'blocked': 0, 'name': 'Domain-0'})
[2008-06-25 09:25:09 4472] INFO (XendDomainInfo:149) Recreating domain 0, UUID
00000000-0000-0000-0000-000000000000. at /local/domain/0
[2008-06-25 09:25:09 4472] DEBUG (XendDomain:443) Adding Domain: 0
[2008-06-25 09:25:09 4472] DEBUG (XendDomain:379) number of vcpus to use is 0
[2008-06-25 09:25:09 4472] INFO (SrvServer:180) unix
path=/var/lib/xend/xend-socket
[2008-06-25 09:25:09 4472] DEBUG (XendDomainInfo:1040)
XendDomainInfo.handleShutdownWatch
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VBD.set_device not
found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VBD.set_type not
found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VM.get_auto_power_on
not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VM.set_auto_power_on
not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: debug.get_all not
found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call:
console.get_other_config not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call:
console.set_other_config not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VIF.get_network not
found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VIF.set_device not
found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VIF.set_MAC not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: VIF.set_MTU not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call:
session.get_all_records not found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: event.get_record not
found
[2008-06-25 09:25:09 4472] WARNING (XendAPI:672) API call: event.get_all not
found
[2008-06-25 09:25:09 4472] INFO (XMLRPCServer:149) Opening Unix domain socket
XML-RPC server on /var/run/xend/xen-api.sock; authentication has been disabled
for this server.
[2008-06-25 09:25:09 4472] INFO (XMLRPCServer:149) Opening Unix domain socket
XML-RPC server on /var/run/xend/xmlrpc.sock.
I don't understand why xend executable doesn't find VBD.xxx, VIF.xxx and some
other functions. I would also remark that this log is printed after
"/etc/init.d/xend start" but BEFORE starting any guest domain.
I would like, if possible, to achieve a set up which avoids these warnings.
For the record I'm using all original Fedora 8 stuff (xen-3.1.2 with kernel
2.6.21.7) with no change to any config script.
Other problem:
I get last stable WindowsXenPV driver from http://www.meadowcourt.org
I booted HVM win_xp and I installed them in Safe Mode. Then XP recognized some
new hw but it also shows two SCSI "Xen Block Device Driver" with yellow
exclamation marks. I thing there's some misconfiguration in the storage
emulation section of win_xp.hvm:
disk = [ 'phy:/dev/sda4, ioemu:hda,w','phy:/dev/sr0,ioemu:hdc:cdrom,r' ]
Thanks to all the people who gave me some help and to all of them which will
help me in the future!
Lorenzo
> I think there is also a fixmbr command from the recovery console.
> That might be necessary in your virtual machine as well. However, I think
> your problem may be that there is no partitioning on the virtual disk you
> are trying to boot Windows from. In that case, "CHKDSK C:" will probably
> fail (does not check RAW drives or something), and fixmbr won't do you any
> good (beyond possibly getting you a new error about cannot find ntldr).
> In PV, whatever you attach (/dev/VG_Guests/win_xp_sp3 in this case)
> is passed on to Windows as a drive, so your dd command would in real life be
> the equivalent of doing this: (dd if=/dev/sda1 of=/dev/sdb) and then moving
> the drive identified as sdb to another computer to boot it. I don't think
> fixmbr and fixboot will make such a drive bootable since it isn't
partitioned.
> What you should probably do is create /dev/sda4 and the fdisk
> /dev/sda4 to create a partition table on it where there is a new partition
> identical in size to sda1 (if you need to use LVM for this particular setup,
> and I don't believe you do, you would fdisk /dev/VG_Guests/win_xp_sp3, and I
> don't know if that is directly possible or not).
> Once that is done (and this is an assumption based on several
> messages I have seen from the past week), I guess you can use kpartx or
> something to make the partitions on the /dev/sda4 partition show up in
> /dev/mapper, then you can use your dd command to copy your windows partition
> onto the partition you created on your new Windows virtual drive (dd
> if=/dev/sda1 of=/dev/mapper/????). You would then use kpartx again to
> remove the partition(s) on /dev/sda4 from /dev/mapper. Assuming you pulled
> this paragraph off, you would then have Windows in an NTFS partition on your
> virtual drive, but it still wouldn't be bootable.
> At this point, fixmbr and fixboot in the virtual machine might work,
> but I would skip that and try this (assuming you are NOT using LVM):
> dd if=/dev/sda of=/dev/sda4 bs=446 count=1
> That will copy the boot sector of your real machine to the boot sector of
> your virtual drive without overwriting the partition table you created on
> said virtual drive. In this case, that probably means booting with
> grub/lilo and loading the Windows boot information from wherever it is
> stored on the new virtual sda1 (that is identical to your existing sda1, so
> wherever installing linux moved it to on the original sda1), but regardless,
> it would (hopefully) be identical to what your system is currently doing,
> and I assume your system currently boots to Windows when you tell it to.
> All of this is probably an exercise in futility, though, because you
> are probably still going to have to reactivate, and that is assuming that
> you can even get Windows to boot and get all of the necessary drivers to
> install. You may be able to take care of the driver business with some
> Physical to Virtual conversion tool (or all of the drivers may even
> automatically install if the i386 folder is stored on the partition, and
> since they didn't send you a cd, it might be), and you may not be concerned
> about activation, but know you aren't out of the water just because you see
> the WindowsXP splash screen. Good luck to you,
> Dustin
>
>
> -----Original Message-----
> From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of flinco@xxxxxxxxx
> Sent: Thursday, June 19, 2008 03:48
> To: tical.net
> Cc: xen-users
> Subject: Re: [Xen-users] Importing Windows XP installation
>
> I wrote "same size of sda1" for brevity but that's not exactly true:
> sda1 37.19 GiB
> sda4 40.94 GiB
> I think that more than 3 GiB are enough to cover the LVM overhead.
> Anyway waiting for further hints I will try to pass "CHKDSK C:" on the
> Recovery Console (booting from CD).
>
> Thanks
>
> Lorenzo
>
>> If /dev/sda1 and /dev/sda4 are exactly the same size, surely the overhead
of
>> LVM makes the logical volume a little smaller than /dev/sda1. Can you
>> remake /dev/sda4 as something slightly bigger than /dev/sda1 and retry the
>> whole operation? Without knowing any more than I do about the underlying
>> tech used to boot HVM, I'm imagining that something (windows bootloader,
>> qemu?) thinks your partition is invalid because it can't see the end of it
>> (because the partition is truncated).
>>
>> -Ray
>>
>>
>>
>> On Thu, Jun 19, 2008 at 3:08 AM, flinco@xxxxxxxxx <flinco@xxxxxxxxx>
wrote:
>>
>> > Hi,
>> >
>> > I'm using a little workstation with the following configuration:
>> > - CPU Intel Q6600
>> > - 2 GB DDR3 SDRAM
>> > - 250GB SATA2 HD
>> >
>> > - Win XP SP3 32bit on /dev/sda1 (NTFS)
>> > - Fedora 8 32bit on /dev/sda2 (ETX3)
>> > - Extended /dev/sda3 with:
>> > + a shared /dev/sda5 (NTFS)
>> > + 2 GB linux swap /dev/sda6
>> >
>> > I would like to know if it is possible to take the pre-installed WinXP
>> > installation (sda1) and to run "as it is" on a xen paravirtual domain. I
>> > would like to do this way because I cannot make a new installation of
>> > Windows (I'm doing this on my office machine that runs a XP downgraded
from
>> > Vista, and there's no XP recover/install CD).
>> >
>> > It's my first time with xen and (para)virtualization.
>> > I followed Xen User Manual and "How to Install Windows on Xen 3.0".
>> > To be able to experiment without damaging the original XP installation I
>> > made a primary unformatted /dev/sda4 (same size of sda1) where I created
a
>> > Volume Group called VG_Guests. Then I filled VG_Guests with a Logical
Volume
>> > I called win_xp_sp3.
>> > I tried to copy the physical partition sda1 into the logical volume
>> > win_xp_sp3 (dd if=/dev/sda1 of=/dev/VG_Guests/win_xp_sp3).
>> >
>> > I use the following win_xp_sp3.hvm:
>> >
>> > #====================================================
>> > import os, re
>> > arch = os.uname()[4]
>> > if re.search('64', arch):
>> > arch_libdir = 'lib64'
>> > else:
>> > arch_libdir = 'lib'
>> >
>> > kernel = "/usr/lib/xen/boot/hvmloader"
>> > builder='hvm'
>> > memory = 768
>> > name = "win_xp_sp3"
>> > #vcpus=1
>> > #acpi=1
>> > #apic=1
>> > pae=1
>> > cpus = "2,3"
>> > vif = [ 'type=ioemu, mac=00:1A:4D:5C:69:7B, bridge=xenbr0' ]
>> > disk = [
>> >
'phy:/dev/VG_Guests/win_xp_sp3,ioemu:hda,w','phy:/dev/sr0,ioemu:hdc:cdrom,r'
>> > ]
>> > device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'
>> > cdrom="/dev/sr0"
>> > boot="dc"
>> > #snapshot=1
>> > #sdl=1
>> > vnc=1
>> > vncviewer=1
>> > #vncviewer=0
>> > #nographic=0
>> > #serial='pty'
>> > ne2000=0
>> > #usb=1
>> > #usbdevice='tablet'
>> > audio=1
>> > #localtime=1
>> > #full-screen=1
>> > #stdvga=0
>> >
>> > I can boot from cdrom, but I cannot boot the copied XP, because
paravirtual
>> > system hangs after showing "Booting From Hard Disk".
>> > Then I tried booting a "non genuine" XP CD to access the Recovery
Console;
>> > i run FIXBOOT C: but the system still doesn't boot.
>> >
>> > There's something else I can try?
>> >
>> > Thanks
>> >
>> > L.B.
>> >
>> >
>> >
>> > _______________________________________________
>> > Xen-users mailing list
>> > Xen-users@xxxxxxxxxxxxxxxxxxx
>> > http://lists.xensource.com/xen-users
>> >
>>
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|