Универсальный способ переноса ОС Windows 7 на новую платформу
Invite pending
Задача
Описать быстрый и максимально универсальный способ переноса установленной 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
Правильная реализация переноса
Требования:
- Дистрибутив Windows, аналогичный установленному
- Носитель информации, подходящий для временной установки на него Windows
Процесс
- Подключить временный носитель информации к новой платформе и произвести начальную установку Windows на него.
- Экспортировать в файл куст реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase
- Импортировать файл с кустом реестра на старой машине
- Переустановить жесткий диск с 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