Заметки о Windows и других программных продуктах Microsoft...

Установка Windows 8.1 и Server 2012 R2 Preview на Oracle VirtualBox

Установка Windows 8.1 и Server 2012 R2 Preview на Oracle VirtualBox

На днях стали доступны для загрузки ознакомительные версии Windows 8.1 и Windows Server 2012 R2. Однако при попытке установить их на Oracle VirtualBox возможны некоторые проблемы.

Так при загрузке с образа диска (как c ISO, так и с VHD) выдается одна и та же ошибка с кодом 0x000000C4.

ошибка при установке Server 2012 R2 на Virtual Box

 

Для решения данной проблемы необходимо открыть командную консоль и выполнить команду, которая активирует инструкцию процессора CMPXCHG16B:

″С:\Program Files\Oracle\VirtualBox\VBoxManage.exe″ setextradata [vmname] VBoxInternal/CPUM/CMPXCHG16B 1

Вместо vmname вставляем имя виртуальной машины, отображаемое в VirtualBox Manager, в моем случае это R2. Если имя машины содержит пробелы, не забудьте заключить его в кавычки.

исправление ошибки при установке

 

После выполнения команды ошибка пропадает и дальнейшая установка проходит нормально. Данная проблема актуальна для Windows 8.1 и Windows Server 2012 R2 Preview.

 
 
Комментарии
Тимур

Добрый день.
Как посмотреть имя виртуальной машины?. Если можно пошагово (буду очень благодарен). Например: С: \Program files\ и т.д.
Заранее спасибо.

Имя виртуальной машины — это ее название, которое отображается в консоли VirtualBox Manager.

А если установка происходит на реальное железо(никакой не VirtualBox) с реального DVD (не с образа ISO)? и выпадает такая же ошибка, что тогда делать посоветуете? а я пока пошел гуглить

Это значит, что процессор не поддерживает инструкцию CMPXCHG16B. В Windows 8 еще была поддержка процессоров без этой инструкции, а в 8.1 (x64) ее убрали. Выход — либо ставить 32-битную Windows 8.1, там совместимость вроде как осталась, либо менять процессор.

во первых благодарю за чёткий и лаконичный ответ, но давайте разбираться

утилита Coreinfo.exe (http://technet.microsoft.com/en-us/sysinternals/cc835722.aspx)
дает следующую инфу

Intel(R) Pentium(R) 4 CPU 3.00GHz
Intel64 Family 15 Model 4 Stepping 3, GenuineIntel

И так, если вы напротив каждой инструкции обнаружили *, поздравляю, у вашего CPU есть поддержка
строчка 52: CX16 * Supports CMPXCHG16B instruction

а вот тут минусы
строчка 67: LAHF-SAHF — Supports LAHF/SAHF instructions in 64-bit mode
строчка 99: PREFETCHW — Supports PREFETCHW instruction

а вроде как на эти три параметра нужно обратить внимание в первую очередь
при установке 8.1/2012R2
(поправляйте, если не прав)

короче сами спрашиваем сами отвечаем, спасибо еще раз за придание мысли нужного направления

Вот здесь описаны требования для Windows 8.1. А так все верно, добавить нечего 🙂

да я бы на месте Microsoft и не начинал бы установку, а то через пару часов установки ОС оппа, а оказывается процессор то не подходит … ну как так?

C:\Windows\system32>»С:\Program Files\Oracle\VirtualBox\VBoxManage.exe» setextra
data 2012R2 VBoxInternal/CPUM/CMPXCHG16B 1
«»С:\Program Files\Oracle\VirtualBox\VBoxManage.exe»» не является внутренней или
внешней
командой, исполняемой программой или пакетным файлом.

Без кавычек:
C:\Windows\system32>С:\Program Files\Oracle\VirtualBox\VBoxManage.exe setextrada
ta 2012R2 VBoxInternal/CPUM/CMPXCHG16B 1
Системе не удается найти указанный диск.

Виртуализация в биосе включена. Проц i5 4460

Так же пробовал копировать текст из статьи. Вместо кавычек появляются вопросики
C:\Windows\system32>?С:\Program Files\Oracle\VirtualBox\VBoxManage.exe? setextra
data 2012R2 VBoxInternal/CPUM/CMPXCHG16B 1
Синтаксическая ошибка в имени файла, имени папки или метке тома.

И пробовал с измененной раскладкой ставить кавычки
C:\Windows\system32>»С:\Program Files\Oracle\VirtualBox\VBoxManage.exe» setextra
data 2012R2 VBoxInternal/CPUM/CMPXCHG16B 1
Синтаксическая ошибка в имени файла, имени папки или метке тома.

Пробовал вот так:

C:\Windows\system32>cd C:\Program Files\Oracle\VirtualBox

C:\Program Files\Oracle\VirtualBox>VBoxManage setextradata 2012R12 VBoxInternal/
CPUM/CMPXCHG16B 1
VBoxManage.exe: error: Could not find a registered machine named ‘2012R12’
VBoxManage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), compo
nent VirtualBox, interface IVirtualBox, callee IUnknown
VBoxManage.exe: error: Context: «FindMachine(Bstr(a->argv[0]).raw(), machine.asO
utParam())» at line 804 of file VBoxManageMisc.cpp

В чем беда то?????

Вопрос закрыт!!! Во втором варианте просто ошибка с именем Виртуалки.
Второй способ работает в отличии от первого. Правда пришлось перезгрузиться и с незапущенным VB сделать процедуру, потом запустил VB и все заработало!

C:\Windows\system32> cd C:\Program Files\Oracle\VirtualBox
C:\Program Files\Oracle\VirtualBox> VBoxManage setextradata 2012R2 VBoxInternal/CPUM/CMPXCHG16B 1

Пробелом (пробел перед > при вводе не нужен, сделал для наглядности) разделил то, что я вводил в командную строку.