Install Windows 8 in VirtualBox

When I try to install Windows 8 on my VirtualBox in OpenSuSE, it stops the booting and hows error message:

Your PC needs to restart.
 Please hold down the power button.
 Error code: 0x000000C4

It is because of VirtualBox default disable to simulate  the CPU instruction CMPXCHG16B which is necessary to Windows 8 and Windows Server 2012 R2.

To solve this issue, first get the name list list of your VirtualBox VM, my windows 8 VM is “Windows 8” :

vboxmanage list vms

Then use the use the following command in Linux to enable the feature in Windows 8 VM by replacing [vmname] with “Windows 8” (include the quotes):

vboxmanage setextradata [vmname] VBoxInternal/CPUM/CMPXCHG16B 1

The syntax for setextradata is: setextradata global|<uuid|vmname> <key> [<value>] (no value deletes key). Set the key to 1 means to enable it.

The wiki explain CMPXCHG16B as below:

Early AMD64 processors lacked the CMPXCHG16B instruction, which is an extension of the CMPXCHG8Binstruction present on most post-80486 processors. Similar to CMPXCHG8BCMPXCHG16B allows for atomic operations on octal words. This is useful for parallel algorithms that use compare and swap on data larger than the size of a pointer, common in lock-free and wait-free algorithms. Without CMPXCHG16B one must use workarounds, such as a critical section or alternative lock-free approaches.[1] This also prevents 64-bitWindows from having a user-mode address space larger than 8 terabytes.[37] The 64-bit version of Windows 8.1 requires this feature.


  1. Windows Server 2012 R2 on VirtualBox – Error 0x000000C4
  2. Wiki: x86-64

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s