… или как создать себе проблему, а затем героически её преодолеть.

Хочу поделиться полученным опытом, чтобы вы избежали моих ошибок и сэкономили себе время, силы, и самое главное — нервы. Массу нервов. Принесли мне вчера для обслуживания ультрабук свежих серий, двухбуквенной компании, с описанием «ужасно тормозит, не работают браузеры». Первичный осмотр показал заражение парой троянцев, неработоспособность ни одного из четырех браузеров, установленных пользователями в системе, общую замусоренность системы утилитами из разряда «поставь меня — увеличь себе ускорь компьютер» и некоторый урон, нанесенный утилитами для «очистки» реестра, поставленных пользователями в надежде победить проблемы. После осмотра я решил (святая наивность), что проще будет переустановить систему по-чистой, чем лечить и восстанавливать это всё, благо, как я думал, за счет хранящегося на жестком диске раздела восстановления с родным программным обеспечением это будет минутным делом. Дальнейший рассказ покажет, как жестоко я ошибался в этом.

Итого, имеем ультрабук с Windows 8, рабочим разделом восстановления и отсутствием каких-либо дисков в комплекте поставки (этот момент важен). Бук в качестве стартового ПО имеет UEFI, что в принципе для использования с Windows 8 логично, и даже было бы удобно, если бы не одно но — ключ для установки системы зашит в таблицу данных ACPI, в поддтаблицу MSDM. На тот момент я ещё этого не знал, да и не думал, что мне это понадобится.

В общем, перезагружаю его, влезаю в настройки запуска (если кто-то не в курсе как это сделать на буках с UEFI свежих серий — жмите ESC прямо с самого начала запуска) и выключив Secure Boot (это необходимо для запуска системы восстановления), запускаю родную систему System Recovery. Как выяснилось, выключал Secure Boot и переключал систему в режим Legacy Mode я зря — именно эти действия вызвали столь странное поведение родной системы восстановления, о чем далее. Указываю восстановить систему в исходное состояние с удалением всех данных пользователей (данные были заблаговременно скопированы). И вот тут начинаются приключения. Процесс восстановления, запустившись, отображает первую стадию исполнения — форматирование раздела для Windows. Стадия доходит до конца, после чего процесс восстановления останавливается, выдав невразумительную ошибку с цифровым кодом, и ультрабук перезагружается, только для того, чтобы выдать мне сообщение о том, что системы на диске не найдено. Логично, думаю я, мы же только что зачистили её раздел, и снова жму клавишу System Recovery чтобы попробовать продолжить процесс восстановления. И вот тут меня ждал первый сюрприз: я получаю то же самое сообщение об отсутствии системы. Как оказалось, система System Recovery самоуничтожилась вместе с зачищенной системой. Теперь на руках у меня был ультрабук без системы, без образа восстановления на жестком диске и без дисков восстановления.

Оставался только один вариант — переустанавливать систему с ноля. Казалось бы в чем проблема? Переустанавливаем и всё. Однако не спешите, не все так просто, как кажется. Чтобы не тратить потом лишнее время на апгрейд системы до 8.1 я решил сразу установить чистую 8.1. Сказано-сделано, скачиваю свежий образ Windows 8.1 из MSDN, делаю загрузочную флешку с помощью Windows 7 USB — DVD tool, запускаю установку. Проблема первая — я пока ещё не знаю ключ, а он, как назло, требуется для продолжения установки. Зачем было так делать, мне не ясно, Windows 7 позволяла этап ввода ключа пропустить. Недолгий поиск в интернете дает ответ — нужно использовать generic ключи, открытые самой корпорацией Microsoft — они позволяют установить систему, но не активировать её, для активации нужно этот ключ после установки заменить работоспособным полноценным. Ввожу generic ключ, продолжаю установку. Мне бы на этом моменте (з��просе ключа) остановиться и подумать, но я этот момент упустил. Дело в том, что если ключ системы, зашитый в UEFI, походит для установки данной версии Windows, тогда система его при установке спрашивать не должна. Вообще. Она в этом случае его использует автоматически. Если спросила ключ — это признак того, что либо ключ из UEFI считать невозможно, либо вы используете неподходящую для данного ключа версию дистрибутива. Однако я на тот момент ещё об этом не знал, поэтому это не вызвало у меня никаких вопросов. Итак, система установилась и запустилась. Теперь нужно было её активировать, а для этого — вынуть каким-то образом ключ из UEFI. Как выяснилось, это совсем не сложная задача. Для этого можно использовать утилиту PKeyUI — необходимо просто зап��стить её и поставить галочку в поле «MSDM» — утилита отобразит ключ, сохраненный в UEFI. Если поле «MSDM» не появляется при запуске утилиты, то либо в прошивке ключа нет, либо он не читаем. Итак, ключ я получил. Далее я попытался активировать с ним систему, и тут меня тоже ждала проблема — система активации заявила, что ключ не рабочий. Припомнив методики OEM-распространения Windows я решил, что видимо нужен образ системы, предназначенный для OEM-сборщиков. Что же, не проблема. После некоторых поисков раздача оригинального образа системы для ОЕМ-поставщиков версии 8.1 нашлась на торрент-трекерах. Скачал, снова создал установочную флешку, снова попробовал установить и активировать. Однако вновь получил ту же самую ошибку. Поиски информации по теме дали метод (как позже выяснилось, не рабочий) — необходимо было используя скрипт slmgr удалить старый ключ, установить новый и затем нормально активировать систему. Я попробовал его, однако при попытке установить родной ключ системы неизменно получал ошибку:

0xC004F069

Которая, в норме, связана с рассинхронизацией времени между целевым ПК и сервером ключей. Помаявшись немного и потратив ещё с полчаса на поиск методов исправления данной проблемы, я пришел к выводу, что стоит, пожалуй, обратиться к первоисточнику, т. е. к корпорации Microsoft. Звонок в техподдержку с описанием проблемы все прояснил: оказывается, главную ошибку я сделал, когда попытался использовать образ Windows 8.1! Как выяснилось, образ Windows 8.1 категорически не пригоден для чистой установки на ПК, которые поставлялись с предустановленной Windows 8, и даже обход проблемы с использованием generic-ключа ничего не даст, потому, что ОЕМ-ключи от Windows 8 не подходят для активации чистой установленной Windows 8.1 ОЕМ, хотя являются валидными. Единственным способом установить на ПК с предустановленной Windows 8 версию 8.1 является апгрейд системы через Microsoft Store — только так и никак иначе. Поблагодарив саппорт я отправился скачивать чистую ОЕМ-версию Windows 8.

Но на этом мои мытарства не закончились, все оказалось не так просто. Чистая ОЕМ-версия ставиться отказывалась категорически — сразу же после нажатия кнопки «Установить» она сообщала что указанный (в UEFI) ключ не подходит ни к одному из обнаруженных образов системы. После непродолжительного гугления, выяснилось что требуется кроме всего прочего создать на установочной флешке маркерные файлы, с правильно указанной редакцией системы и ключом. Хорошо, лезем в папку sources на установочной флешке и создаем там два файла: ei.cfg и pid.txt

Содержимое ei.cfg:

[EditionID]
Core
[Channel]
OEM
[VL]
0

тут
EditionID — это редакция системы, бывает Core или Professional,
Channel — это канал распространения, бывает OEM или Retail,
VL — это признак корп. версии, бывает 0 или 1.

Вышеприведенный пример это норма для ноутов, базовая ОЕМ винда, не корпоратив.

Содержимое pid.txt:

[PID]
Value=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Вместо XXXXX вписываем ключ который получили через pkeyui. В итоге этих действий получаем загрузочную флешку, с которой Windows 8 все-таки установится. Но радость моя была преждевременной — установиться-то она установилась, однако неким загадочным образом записала себе какой-то совершенно возмутительный ключ, не имеющий никакого отношения к тому, что я забил в pid.txt (оригинальному из UEFI). Попытка сменить этот левый ключ на адекватный удалась, но при попытке активации система выдала всё ту же пресловутую ошибку о том, что ключ не соответствует редакции системы! Оказалось, что есть ещё один нюанс — дистрибутивы, помимо редакций и метода лицензирования ещё делятся по SKU, и сборщики лэптопов обычно выставляют на CoreSingleLanguage или CoreCountrySpecific. И мне был нужен образ CoreSingleLanguage, потому что для всех типов SKU — установочные ключи разные. Почему в этом случае система позволяет продолжить установку, мне решительно не ясно — это не имеет никакого смысла, так как ключ все равно не подойдет а способа сменить SKU уже установленной системы я лично не нашел. Тихо выматерившись, я отправился искать OEM-дистрибутив с SKU «CoreSingleLanguage». И таки нашел в итоге, он лежит на многих трекерах, чтобы не давать ссылок на потенциально опасные ресурсы, приведу просто MD5 необходимого дистрибутива:

2F3EC4EA9F604DF608AC0B1EE4C53CF1

Я обработал найденный дистрибутив, создал маркерные файлы и надеялся, что всё — мои проблемы решены и после уже 4-й по счету переустановки, Windows 8 наконец не только установится, но и позволит себя активировать. Не тут то было! Обработанный дистрибутив после нажатия кнопки «Установить» выдал мне ошибку, которую я уже видел ранее: что указанный (в UEFI) ключ не подходит ни к одному из обнаруженных образов системы! Ругнувшись, я попробовал просто удалить с флешки созданные файлы ei.cfg и pid.txt. Запускаюсь с неё и… система принимает ключ и устанавливается! После установки статус системы — активирована!

Bingo! Далее осталась рутина — апгрейд до 8.1 через Microsoft Store, установка базового набора бесплатного ПО и т.д.

Плюс по всему процессу я вывел алгоритм, которого, как мне кажется, следует придерживаться при данной процедуре:

  • Если на ноуте стояла просто Windows 8, то берем просто Windows 8 а не Windows 8.1 — даже если поставим 8.1 то не сможем активировать!
  • Выясняем ключ винды с помощью утилиты pkeyui — запускаем на живой системе, ставим галку MSDM и записываем ключ.
  • Звоним в техподдержку Microsoft, кратко поясняем ситуацию и просим проверить валидность и принадлежность извлеченного ключа. Ребята из техсаппорта без проблем проверят ключ, и сообщат вам, к какому типу дистрибутива он подходит — базовой или проф, ОЕМ или ритейл и каков его SKU — CoreSingleLanguage или CoreCountrySpecific или же вообще другой.
  • Ищем и качаем строго соответствующий ключу образ системы. Если это ноутбук, то скорее всего вам понадобится ОЕМ и при этом в большинстве случаев CoreSingleLanguage
  • Качаем образ диска и делаем загрузочную флешку используя Windows 7 USB / DVD download tool (либо вручную вот так — с некоторыми образами Windows 7 USB / DVD download tool работать не хочет). Пока что после этого ничего дополнительного с флешкой не делаем. Как вариант можно (и это даже лучше будет) сделать загрузочную UEFI-флешку с помощью Rufus.
  • Перезагружаемся, сразу после старта быстро жмем Esc. Если флешку делали через Windows 7 USB / DVD download tool, то выбираем BIOS Setup, в настройках загрузки в BIOS надо выключить Secure Boot и включить Legacy Boot — иначе не загрузимся с флешки. Если же делали UEFI-флешку с помощью Rufus — делать этого не следует. Теперь вставляем флешку.
  • Перезагружаемся, сразу после старта быстро жмем Esc. Выбираем выбор загрузочных устройств, выбираем свою флешку и начинаем ставить систему. Если всё сделали как надо — система будет ставиться не спрашивая никаких ключей вообще.
  • Если не получается и система либо не принимает ключ вообще либо ставится но потом не хочет активироваться, лезем в папку sources на установочной флешке и создаем там два файла: ei.cfg и pid.txt, настроив их содержимое так, как указано выше. Пробуем поставить систему уже с флешки с созданными маркерными файлами.
  • После установки активируем систему — если активируется, то все хорошо, если нет — вы подобрали не тот дистрибутив.


Итогом всего вышесказанного являются несколько риторических вопросов к производителю ноутбука и к Microsoft. К производителю главный вопрос — почему система восстановления сработала как система самоуничтожения? Хабровчане, кто-нибудь ещё на такое наталкивался? А к Microsoft — ну зачем же такие параноидальные меры защиты ПО? К чему они такие? Ведь в данном случае имел место совершенно законный процесс банальнейшей переустановки разрушенной ОС. Фактически мы имеем ситуацию, когда пользователь, у которого разрушилась ОС никак, совершенно никак, не сможет её самостоятельно переустановить — на это нужны недюжинные навыки. В общем и целом, чтобы разобраться в этой запутанной системе установки, мне пришлось переустанавливать систему четырежды. Для чего создавать такие трудности? Ведь в итоге если посчитать все возможные модификации дистрибутивов с разными видами лицензий получается что их едва ли не 30 штук. Это что, такая специфическая дополнительная защита от пиратства? Остальным же — наука: будьте внимательны и не верьте голословно статьям в интернете. Тот самый широко раскопированный везде «рабочий» способ установки чистой Windows 8.1 с последующей активацией родным ключем оказался совершенно неработоспособным и отнял у меня около пяти часов времени, которое можно было потратить с куда большей пользой. Ладно, по крайней мере я теперь знаю практически все особенности лицензирования и активации Win 8. Надеюсь эта история окажется полезной и для вас.