Серверная (www.it-simple.ru)

Ошибка при установке Windows 8


При установке Windows 8 на компьютер или на виртуальную машину (проверено на VirtualBox, VMware и qemu) вылезает следующая ошибка:

Your PC needs to restart.
Please hold down the power button.
Error Code: 0x0000005D
Parameters:
0x########
...

Типа: "Чо, не грузится? Нажми кнопку питания и не отпускай!". Предельная степень информативности.

Остаётся только сидеть в ступоре и думать, почему оно вылетело.

Почему оно вылетело

У всех современных процессоров есть расширение SSE2 (http://ru.wikipedia.org/wiki/SSE2), поддержка режима PAE (http://ru.wikipedia.org/wiki/PAE) и возможность использования атрибута страниц памяти NX (http://ru.wikipedia.org/wiki/NX_bit). Последний — ключевой в данной ситуации.

NX (No eXecute bit, в AMD) или XD (eXecute Disable bit, в Intel) — атрибут страницы памяти, который определяет: запрещено ли исполнение данных из этой страницы. Типа, принадлежит ли данный байт ворду (исполняемый) или документу (неисполняемый).

С NX вообще интересная история. На нём была основана аппаратно-программная антивирусная технология DEP (http://ru.wikipedia.org/wiki/DEP), реализованная в Windows XP. Однако, очень быстро выяснилось, что при включенном NX масса драйверов и приложений в XP перестают работать (см. «быдлокодеры»). Ситуация была неприемлимой для микрософта, поэтому производители материнских плат не только добавили в BIOS опцию по отключению NX, но и сделали её отключенной по умолчанию.

То есть, в большинстве современных материнских плат есть переключатель NX, но по умолчанию он выключен, потому что так надо было для Windows XP. А для Windows 8 он внезапно стал критически необходим.

Как исправить

Разрешить использование No Execute Bit'а, в биосе.
В разных биосах опция может называться по-разному и находиться в разных местах (подсказка: искать надо где-то в районе настроек процессора). В некоторых биосах её может вообще не быть, и тогда вам не повезло. Или наоборот, как посмотреть.
Кстати, в таком случае иногда помогает прошивка биоса до последней версии.

Список возможных названий опции:

Находим, ставим в Enabled, сохраняем настройки и перезагружаемся.
Ошибка исчезнет.