[an error occurred while processing this directive] [an error occurred while processing this directive]
VMware

VMware Workstation 3.2

Features | Documentation | Knowledge Base | Discussion Forums

previous Prev   Contents   Last   Next next

Running a Windows 2000, Windows XP or Windows .NET Server Virtual Machine from an Existing Multiple-Boot Installation on Computers with ACPI

Running a Windows 2000, Windows XP or Windows .NET Server Virtual Machine from an Existing Multiple-Boot Installation on Computers with ACPI

The Windows 2000, Windows XP and Windows .NET Server kernels support Advanced Configuration and Power Management (ACPI), a power management interface that replaces the earlier APM.

If you have installed Windows 2000, Windows XP or Windows .NET Server on a computer with ACPI features and then try to set up a VMware Workstation virtual machine running from a raw disk, this can cause VMware Workstation to crash with an error message that says "Error CPL0 Stack, Shutdown" or "INACCESSIBLE BOOT DEVICE."

Source of the Problem

Source of the Problem

This problem is most likely to affect laptop computers but may also affect some ACPI-capable desktop computers.

The physical computer hardware supports ACPI, while the virtual machine environment does not. The ACPI hardware abstraction layer (HAL) that was installed automatically when Windows 2000, Windows XP or Windows .NET Server was installed on the computer does not run in the virtual environment within VMware Workstation. (The hardware abstraction layer is the low-level part of the operating system that is specific to the hardware it is running on.)

Determining Whether This Affects You

Determining Whether This Affects You

To find out whether you have an ACPI HAL installed on your computer, check the properties of the hal.dll file.

  1. Locate the folder that contains the hal.dll file. By default it is C:\WINNT\system32, where C: is the drive letter where your WINNT folder resides. Use a different drive letter to match your configuration, if necessary.

  2. Locate the hal.dll file. Right-click the filename and choose Properties from the pop-up menu.

  3. Click the Version tab, then click Internal Name.

  4. If the internal name is halacpi.dll, this problem affects you.

What You Can Do

What You Can Do

If you have the ACPI HAL installed, VMware recommends that you install your Windows 2000, Windows XP or Windows .NET Server guest operating system in a virtual disk, rather than running it from a raw disk. If you install Windows 2000, Windows XP or Windows .NET Server from scratch into a virtual machine, then the correct HAL is automatically installed.

If you do want to run a Windows 2000 guest operating system from a raw disk, you can resolve the HAL issue by installing two HALs on the computer. One is the ACPI HAL that is already there; the other is the standard, non-ACPI HAL. You can then choose which HAL to run at boot time.

Caution: These configuration changes should be undertaken only by advanced users of Windows 2000, Windows XP or Windows .NET Server. It is possible to cause your computer to fail to boot or otherwise misbehave if the changes are done improperly.

To make these configuration changes, you need an installation CD-ROM for your Windows 2000, Windows XP or Windows .NET Server operating system.

  1. Shut down your host operating system and boot Windows 2000, Windows XP or Windows .NET Server natively.

  2. Open a command prompt.

  3. Insert your Windows 2000, Windows XP or Windows .NET Server installation CD in the CD-ROM drive.

  4. Extract the uniprocessor hal.dll along with NTOSKRNL.EXE and rename the extracted files as follows:

    expand D:\I386\HAL.DL_ C:\WINNT\SYSTEM32\VMHAL.DLL

    expand D:\I386\NTOSKRNL.EX_ C:\WINNT\SYSTEM32\VMOSKRNL.EXE

    where D: is the drive letter used by your CD-ROM drive and C: is where your WINNT folder resides.

    Change the drive letters to match your configuration, if necessary.

    Note: Be sure to expand the files to the filenames starting with VM to avoid overwriting any existing system files.

  5. Change the file attributes of your boot.ini file to make it writable.

    attrib c:\boot.ini -s -h -r

  6. Open the boot.ini file in a text editor such as Notepad. In the next several steps, you will add a new option to the configuration selection screen that appears as the operating system boots. At the end of this document are samples of a boot.ini file before and after these modifications.

  7. Copy the line that begins with multi(0) and paste it at the end of the file.

  8. Modify the line that you copied, so the text in quotation marks after WINNT= indicates you use this configuration with VMware Workstation. For example, describe it as Windows 2000 Professional Virtual Machine (or whatever matches the Windows version you are using).

  9. Add the following to the end of the new line:

    /KERNEL=VMOSKRNL.EXE /HAL=VMHAL.DLL

  10. Save the boot.ini file.

  11. Restore its attributes to those it originally had.

    attrib boot.ini +s +h +r

  12. Shut down and boot into your host operating system.

  13. Start VMware Workstation and boot the virtual machine using the new selection you added to the boot.ini file.

Sample boot.ini Files

Sample boot.ini Files

Note: The lines in boot.ini should not wrap. Each line in the [operating systems] section of these samples begins with multi(0).

Sample boot.ini before modifications:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft
Windows 2000 Advanced Server" /fastdetect

Sample boot.ini file after modifications:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft
Windows 2000 Advanced Server" /fastdetect

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft
Windows 2000 Advanced Server Virtual Machine" /fastdetect
/KERNEL=VMOSKRNL.EXE /HAL=VMHAL.DLL

previous Prev   Contents   Last   Next next