Универсальный способ переноса ОС Windows 7 на новую платформу

Задача


Описать быстрый и максимально универсальный способ переноса установленной Windows на произвольную аппаратную платформу.

Границы применимости


ОС Windows 7. Теоретически, Windows 8, Server 2008, 2008 R2. 64-битные ОС можно перенести только на 64-битные платформы.

Описание задачи


Большее число пользователей предпочитают переносить диск/образ ОС, а не переустанавливать с потерей всех настроек. Процесс не является тривиальным. Если обновление незначительно, то проблем не возникает. Если обновляется материнская плата, то все зависит от параметров: различие платформ, актуальность релиза ОС, дата выпуска оборудования. Наихудшим вариантом является переход с amd на intel (или с intel на amd), где целевая платформа выпущена позже дистрибутива ОС (и не имеет записей о соответствующих драйверах в установочных настройках). В этом случае, практически при любом способе переноса, гарантирована ошибка 0x0000007B при запуске ОС на новой машине. Данный способ позволяет избежать этой ошибки.

Плохие советы

Интернет полнится вопросами и бесполезными рецептами. Вот они:
  • Воспользоваться утилитой sysprep — это бесполезно и сильно затягивает процесс.
  • Воспользоваться сторонними утилитами (Acronis True Image, etc...) — это долго и не гарантирует результат.
  • Воспользоваться утилитами botrec и bootsect — в общем случае, проблема не в поиске загрузочных секторов.

Хорошие советы

  • Убедиться, что на исходной и целевой системе в настройках BIOS установлены одинаковые режимы AHCI
    Controller Mode : Compatible, AHCI Mode: Disabled, SATA Native Mode: Disable
    или
    Controller Mode : Enhanced, AHCI Mode: Enabled, SATA Native Mode: Enabled
  • Убедиться, что в настройках системы установлен Standard AHCI controller
    Пуск - Панель Управления - Система - Диспетчер устройств - Контроллеры IDE/ATAPI

Правильная реализация переноса


Требования:
  1. Дистрибутив Windows, аналогичный установленному
  2. Носитель информации, подходящий для временной установки на него Windows
Процесс
  1. Подключить временный носитель информации к новой платформе и произвести начальную установку Windows на него.
  2. Экспортировать в файл куст реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase
  3. Импортировать файл с кустом реестра на старой машине
  4. Переустановить жесткий диск с Windows со старой на новую машину


Пояснение:

Основной проблемой при запуске Windows на новой платформе становится неспособность Windows идентифицировать правильные драйверы к аппаратным компонентам новой платформы. В нормальном случае, ОС затем смотрит идентификаторы аппаратуры и устанавливает соответствующий стандартный драйвер. Если, в силу многих причин, ОС не имеет информации по драйверам, соответствующим текущим идентификаторам оборудования, то продолжает использовать старые драйверы. Импортируя ключ реестра с соответствующими идентификаторами мы заставляем систему «опознать» наше оборудование и подключить соответствующий драйвер (или стандартный, если драйвер не найден)

Дополнительно:

  • Можно установить новый Windows на тот же самый жесткий диск (только в другую директорию, нежели переносимый дистрибутив), экспортировать куст реестра в файл, загрузить диск на предыдущей машине и импортировать данные в реестр из файла
  • Можно провести всю операцию непосредственно на новой платформе, если использовать ERD Commander (Он же Microsoft DART)
  • Для каждой версии Windows есть соответствующий DART. Вот хорошая статья. Ссылку на дистрибутив DART можно спокойно нагуглить
  • Если, по какой-то причине, невозможно перенести файл с данными из реестра на жесткий диск, то существует способ встроить его непосредственно в boot.wim DART'а. Для этого следует использовать GImageX


Справочная информация


Работоспособность способа проверена при переносе Windows 7 Ultimate SP1, при переносе c nForce+AMD Athlon64x2 на Intel B75 + Celeron G1610. Ниже приведены ссылки на материалы, использованные при подготовке статьи:

forum.ixbt.com/topic.cgi?id=22:72169
support.microsoft.com/kb/953356/en-us
ab57.ru/stop7b.html
Метки:
Windows 7, переустановка ОС, миграция ОС, 0x0000007B