Conversion failing at the "Configuring Operating System" step with a NTLDR, NTOSKRNL or HAL.dll error

  • 7920326
  • 28-Jul-2005
  • 27-Apr-2012

Environment

PlateSpin Protect, Migrate, or Forge converting a Windows workload.


Situation

This article outlines a potential problem at the "Configuring Virtual Machine" stage during the "Configuring Operating System" step of the conversion (Virtual Machine or Physical Target).  The workaround steps in this article refer to Virtual Machine target but these steps also apply to Physical Target Servers (e.g. Any-to-Physical migrations).

 
After the "Target Machine" stage is completed during this step, the conversion fails at "Configuring Virtual Machine" When attempting to boot the newly created target physical machine or target VM manually through the VMware Remote Console or through Microsoft Virtual Server 2005, the following error is displayed:

Windows could not start because the following file is missing or corrupt:
<Windows Root>\System32\<hal.dll/NTLDR/NTOSKRNL.exe>

This error will usually occur if the entry in the boot.ini file of the target VM is pointing to the incorrect partition\directory or if the source server was used in a previous failed conversion attempt and has an incorrect boot.ini entry.

 

Resolution

1. Boot the target VM into the Windows Recovery Console
2. Copy the boot.ini file onto a floppy disk (as you will not be able to edit the boot.ini from the Recovery Console)
3.Place the floppy in another machine and open the boot.ini so that it can be edited
4. Ensure that the boot.ini is pointing to the correct partition or directory (see example below)
5.Save the changes
6.Copy the edited boot.ini file from the floppy back to the target VM.
7.Reboot the target VM
8.  Leave the VM running for approximately 1 hour to allow the remaining conversion configuration to complete
9.Install VMware Tools or VM Additions manually if needed.

 

Example:

Source machine's volume configuration

Vendor Partition - \disk(0)\partition(0)
C:                    - \disk(0)\partition(1)
D:                    - \disk(0)\partition(2)

Boot.ini before edit:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\winnt="Microsoft Windows 2000 Server" /fastdetect
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\winnt="Microsoft Windows 2000 Server" /fastdetect


Boot.ini after edit:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\winnt="Microsoft Windows 2000 Server" /fastdetect
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\winnt="Microsoft Windows 2000 Server" /fastdetect