I'm trying to virtualize (P2V) a very old Win2K server (an IBM x345) with related storage:
a main C: drive, running on top of a RAID 5 logical-array served by an internal ServeRAID HW controller and related internal HDD);
two distinct additional LUNs (disks S: and F:) served through a QLA2XXX FC-HBA connected to a SAN (whose main array is an IBM DS-4300).
My goal is to migrate the all of this on a VM served by a new Xen Server 6.2 platform.
To avoid any risks from the source side (BTW: the system is more or less "critical" and... reinstalling it could easily became a nightmare, due to the very old/legacy/proprietary/orphan software running on it), I've deliberately choosed to not alter the original OS in any way (no sysprep; no preliminary xen-tools installation; no new sw and/or configuration at all).
So, I simply went through the following steps:
- Define a new VM on XS with proper CPU and memory;
- Add three different disks, properly sized, to such a VM;
- (re)booted the server and the VM with a sysrescuecd;
- run a "dd" over LAN for each of the three source disks.
Once the "dd" finished:
- I snapshotted the VM;
- I (tried to) start the VM.
Result was (...not surprisingly) this:
(BTW: while the VM was in such a context, the CPU of the VM was constantly 100%!)
So, I went through some sanity checks and fix made by starting the VM with a live-CD (sysrescuecd) or the original Win2K. In detail:
- I can succesfully access all of the data on each of the three disks, particularly the C: ones;
- I'm able to start the VM with the Win2K "iso", and launch, from it, usual fixmbr and fixboot commands, from recovery-console;
- I'm able to launch a new install of Win2K, asking to "repair" the current (and correctly found/recognized by the installer) Win2K installation
- I went through the run of the xenserver-linux-fixup-disk.iso (that, if I understood correctly, should help in solving exactly the problems I'm facing with...).
Any of the above tests (repeated multiple times, actually), ended with the very same results: the VM is unable to start even the very early stage of the boot process.
In the best cases, I've been succesfull in obtaining this:
so the operating system (the boot loader, I guess) seems to have been found but... again, unable to start the boot process. Also in this case, CPU of the VM is stuck at 100%.
As the boot-process seems to broke at a very early stage (you see that even the common text-based initial progress-bar, during which F8 can be pressed to select advanced startup parameters/settings, is never shown!) I'm mostly sure that the solution should be quite simple: probably a new "boot-loader" and/or a new "kernel" being able to access the Win2K installation on the first HD of the VM.
A final note: while investigating, I discovered a mismatch in the disk geometry. Note the rows 7-10 below:
root@sysresccd /root % sfdisk /dev/xvda
sfdisk: Checking that no-one is using this disk right now ...
sfdisk: OK
Disk /dev/xvda: 13054 cylinders, 255 heads, 63 sectors/track
Old situation:
sfdisk: Warning: The partition table looks like it was made
for C/H/S=*/254/63 (instead of 13054/255/63).
For this listing I'll assume that geometry.
Units: cylinders of 8193024 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End #cyls #blocks Id System
/dev/xvda1 0+ 6 7- 55975+ fe LANstep
/dev/xvda2 * 7 8876 8870 70968870 7 HPFS/NTFS/exFAT
/dev/xvda3 0 - 0 0 0 Empty
/dev/xvda4 0 - 0 0 0 Empty
sfdisk: Input in the following format; absent fields get a default value.
<start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
Usually you only need to specify <start> and <size> (and perhaps <type>).
sfdisk: /dev/xvda1 :
such a mismatch is also confirmed by testdisks:
TestDisk 6.14, Data Recovery Utility, July 2013
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
Disk /dev/xvda - 107 GB / 100 GiB - CHS 13054 255 63
Current partition structure:
Partition Start End Size in sectors
1 P LANstep 0 1 1 6 247 63 111951
Bad sector count.
Warning: number of heads/cylinder mismatches 254 (NTFS) != 255 (HD)
2 * HPFS - NTFS 6 248 1 8842 47 63 141937740
Bad relative sector.
After the all of that, here's the (easily expected) question: can someone shed some light, helping me in booting my VM?
Update 1: details of the VM
[root@xs-cust1 ~]# xe vm-param-list uuid=48b4c627-c06e-5bd9-23e1-28b141c6f948
uuid ( RO) : 48b4c627-c06e-5bd9-23e1-28b141c6f948
name-label ( RW): SRV-Win2K-Cust1
name-description ( RW): Ex Server Windows 2000 - Cust1
user-version ( RW): 1
is-a-template ( RW): false
is-a-snapshot ( RO): false
snapshot-of ( RO): <not in database>
snapshots ( RO): 32489008-869c-c2f4-904c-c90219adc44d
snapshot-time ( RO): 19700101T00:00:00Z
snapshot-info ( RO):
parent ( RO): 32489008-869c-c2f4-904c-c90219adc44d
children ( RO):
is-control-domain ( RO): false
power-state ( RO): halted
memory-actual ( RO): 8325660672
memory-target ( RO): 0
memory-overhead ( RO): 71303168
memory-static-max ( RW): 8589934592
memory-dynamic-max ( RW): 8589934592
memory-dynamic-min ( RW): 8589934592
memory-static-min ( RW): 134217728
suspend-VDI-uuid ( RW): <not in database>
suspend-SR-uuid ( RW): 75f87360-62ac-a9f4-01e7-7ade3d5ab943
VCPUs-params (MRW):
VCPUs-max ( RW): 2
VCPUs-at-startup ( RW): 2
actions-after-shutdown ( RW): Destroy
actions-after-reboot ( RW): Restart
actions-after-crash ( RW): Restart
console-uuids (SRO):
platform (MRW): timeoffset: 0; nx: true; acpi: 1; apic: true; pae: true; viridian: true
allowed-operations (SRO): changing_dynamic_range; changing_shadow_memory; changing_static_range; make_into_template; destroy; export; start_on; start; clone; copy; snapshot
current-operations (SRO):
blocked-operations (MRW):
allowed-VBD-devices (SRO):
allowed-VIF-devices (SRO): 1; 2; 3
possible-hosts ( RO): 371a8bf7-cdcd-4e65-9d68-8d381295b266
HVM-boot-policy ( RW): BIOS order
HVM-boot-params (MRW): order: dc
HVM-shadow-multiplier ( RW): 1.000
PV-kernel ( RW):
PV-ramdisk ( RW):
PV-args ( RW):
PV-legacy-args ( RW):
PV-bootloader ( RW):
PV-bootloader-args ( RW):
last-boot-CPU-flags ( RO): vendor: GenuineIntel; features: 77bee3ff-bfebfbff-00000001-2c100800
last-boot-record ( RO): '('struct' ('uuid' '48b4c627-c06e-5bd9-23e1-28b141c6f948') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:f7852954-eeae-7c76-ebe8-af3997a75776' 'start'))) ('power_state' 'Halted') ('name_label' 'SRV-Win2K-Curatela') ('name_description' 'Ex Server Windows 2000 - Curatela') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:35d77c6a-5a39-3cd4-7dc5-d697974d8c7c') ('memory_overhead' '71303168') ('memory_target' '0') ('memory_static_max' '8589934592') ('memory_dynamic_max' '8589934592') ('memory_dynamic_min' '8589934592') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '2') ('VCPUs_at_startup' '2') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:09e03a34-7f46-8412-6f21-518458b628f0')) ('VBDs' ('array' 'OpaqueRef:14105d9b-11cc-f0fd-91b2-ddf782f68d5a' 'OpaqueRef:cbfa8007-1f74-9bff-f040-e17731b296a5' 'OpaqueRef:e4aab04e-7556-e267-89bd-745ab52ff9d3' 'OpaqueRef:20c42ac7-db5d-7fc0-2c7d-d23cc5b25e23')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' 'f55b69ea-6990-782b-0ca5-875137642603') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bee3ff-bfebfbff-00000001-2c100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:74fb058c-7c16-35d9-9f2f-9196e9427230') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '<restrictions><restriction field=\"memory-static-max\" max=\"137438953472\" /><restriction field=\"vcpus-max\" max=\"16\" /><restriction property=\"number-of-vbds\" max=\"16\" /><restriction property=\"number-of-vifs\" max=\"7\" /></restrictions>') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array' 'OpaqueRef:807cb650-f9c6-5f31-8419-d7b60cd20fc9')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:807cb650-f9c6-5f31-8419-d7b60cd20fc9') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:34a5267c-75cb-b7e6-d7ba-318b26a540fe') ('version' '0') ('generation_id' ''))'
resident-on ( RO): <not in database>
affinity ( RW): 371a8bf7-cdcd-4e65-9d68-8d381295b266
other-config (MRW): vgpu_pci: ; base_template_name: Other install media; mac_seed: f55b69ea-6990-782b-0ca5-875137642603; install-methods: cdrom
dom-id ( RO): -1
recommendations ( RO): <restrictions><restriction field="memory-static-max" max="137438953472" /><restriction field="vcpus-max" max="16" /><restriction property="number-of-vbds" max="16" /><restriction property="number-of-vifs" max="7" /></restrictions>
xenstore-data (MRW): vm-data:
ha-always-run ( RW) [DEPRECATED]: false
ha-restart-priority ( RW):
blobs ( RO):
start-time ( RO): 19700101T00:00:00Z
install-time ( RO): 20141213T10:05:48Z
VCPUs-number ( RO): 0
VCPUs-utilisation (MRO):
os-version (MRO): <not in database>
PV-drivers-version (MRO): <not in database>
PV-drivers-up-to-date ( RO): <not in database>
memory (MRO): <not in database>
disks (MRO): <not in database>
networks (MRO): <not in database>
other (MRO): <not in database>
live ( RO): <not in database>
guest-metrics-last-updated ( RO): <not in database>
cooperative ( RO) [DEPRECATED]: true
tags (SRW):
appliance ( RW): <not in database>
start-delay ( RW): 0
shutdown-delay ( RW): 0
order ( RW): 0
version ( RO): 0
generation-id ( RO):