Восстановление Windows после замены материнской платы
Восстановление Windows после замены материнской платы
Причины неработоспособности Windows после замены системной платы.
Нередко после замены материнской платы или изменения режима работы контроллера жесткого диска в настройках BIOS (Raid, Compatible, AHCI, Native SATA) загрузка системы начинается как обычно, появляется начальная заставка, затем - сброс, информация о прохождении POST BIOS, и опять, начало загрузки с тем же продолжением. Обычно это происходит по причине того, что система не смогла загрузить драйвер устройства загрузки и возникла критическая ошибка STOP: 0x0000007B Inaccessible Boot Device (Недоступно устройство загрузки)
Чтобы вместо перезагрузки получить точную информацию о возникшей критической ошибке необходимо отключить режим выполнения автоматической перезагрузки при ее возникновении. Для ОС Windows XP и старше это можно сделать через меню загрузчика Windows, если в самом начале загрузки нажать F8 и выбрать вариант загрузки - Отключить автоматическую перезагрузку при отказе системы
При загрузке в данном режиме, по возникновению критической ошибки на экран монитора будет выдан "синий экран смерти" Windows или же BSOD - Blue Screen Of Death.
Критическая ошибка Stop 7B при замене материнской платы, или изменении режима работы контроллера жесткого диска, возникает потому, что новый контроллер не распознается системой как, именно, контроллер жесткого диска.
В самом начале работы загрузчика операционной системы, для выполнения операций с жестким диском используются специальные подпрограммы BIOS (функции прерывания INT 13H), и именно поэтому загрузка системы начинается и какое-то время выполняется нормально. Однако, на определенном этапе загрузки и инициализации ядра, поскольку Windows не использует функции прерывания BIOS, возникает необходимость загрузить драйверы, через которые будет осуществляться доступ к устройству загрузки (Boot Device). В первую очередь, система должна определить, какой контроллер жесткого диска будет использоваться и загрузить для него соответствующий драйвер. Если контроллер не найден, не найден драйвер или запрещен его запуск - система завершит процесс загрузки по критической ошибке недоступности устройства загрузки (stop 7B).
При замене материнской платы на плату другого типа, контроллер жесткого диска, с точки зрения операционной системы, станет другим, новым устройством. В процессе начальной загрузки, устройства Plug-n-Play (PnP) идентифицируются системой с помощью специального кода (PnP-ID), зависящего от набора микросхем, на которых собрано устройство или чипсета (chipset), и новый контроллер HDD, собранный на ином чипсете будет иметь другой идентификатор. Если системе "известен" новый PnP-ID контроллера HDD, и имеется драйвер для его обслуживания - то замена материнской платы пройдет без каких-либо проблем. В противном случае, неизвестный установленной системе идентификатор контроллера HDD, не позволит ей загрузить нужный для работы драйвер.
И здесь просматривается 2 варианта решения проблемы:
- заставить систему работать с новым контроллером жесткого диска с использованием стандартных драйверов от Microsoft.
- добавить новый драйвер контроллера жесткого диска от производителя оборудования в неработающую систему.
Первый вариант значительно проще, безопаснее и может быть легко выполнен с использованием обычного импорта нескольких ключей в реестр неработающей системы, например, с помощью ERD Commander Второй немного сложнее, нужно не только добавить идентификационную запись для контроллера HDD, но и связать с ней нужный драйвер, а также обеспечить его загрузку и инициализацию.
Одним из способов устранения стоп-ошибки 7B является последовательное выполнение следующих действий:
- перевод контроллера, при необходимости, в настройках BIOS материнской платы в режим совместимости (Compatible Mode) со стандартным IDE - контроллером
Обычно, это выполняется в разделе конфигурации контроллера жесткого диска и может иметь различные значения установок,
Controller Mode : Compatible
Configure SATA as: IDE
SATA Operation as ATA
AHCI Mode: Disabled
SATA Native Mode: Disable
- использование стандартных драйверов из дистрибутива Windows для загрузки системы.
Обычно для этого не требуется никаких особых усилий, разве что проверить несколько значений параметров реестра.
Устранение стоп-ошибки 7B с использованием стандартных драйверов от Microsoft.
В состав дистрибутива Windows входят стандартные драйверы для работы с IDE (ATA) контроллерами HDD (atapi.sys, pciide.sys, pciidex.sys, intelide.sys), которые можно было бы использовать для любого дискового IDE-совместимого контроллера, но проблема заключается в том, что системе нужно указать, что устройство с таким-то PnP-ID - это и есть контроллер жесткого диска.
Информация об известных системе устройствах создается на основе .inf-файлов при установке нового оборудования и хранится в разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\
Следовательно, решение проблемы заключается в следующем:
- определить идентификатор нового контроллера жесткого диска.
- сделать, на основе идентификатора, изменения в реестре завершающейся по ошибке "Stop 7B" системы запись, позволяющую использовать стандартные драйверы из дистрибутива для нового контроллера. Другими словами, указать системе, что устройство с таким-то PnP-ID - это стандартный ATA контроллер жесткого диска.
Для решения задачи нам потребуется любая программа, позволяющая получить PnP-идентификатор устройства, например - Advanced PCI Info Utility Скачать
Данная утилита разработана довольно давно, и до появления Windows 7 была, пожалуй одним из наиболее простых и удобных программных средств определения PnP - идентификаторов. Однако, на данный момент, утилита устарела, не работает в среде операционных систем Windows Vista и старше, а также в среде дисков аварийного восстановления на базе Windows PE2 и более поздних ( после ERDC 6х ). Поэтому, лучше пользоваться переносимыми утилитами от NirSoft DevManView, разработанными в качестве альтернативы стандартному диспетчеру устройств Windows:
Скачать devmanview.zip для 32-разрядных ОС Windows.
Скачать devmanview-x64.zip для 64-разрядных ОС Windows
А в качестве средства работы с незагружающейся системой - Winternals ERD Commander (ERDC).
ERDC представляет собой программную оболочку на базе Widows PE ( для Windows Vista и более поздних - на базе Windows PE2 или старше), позволяющую загрузиться с компакт-диска или другого съемного носителя, подключиться к незагружающейся системе, получить удобный доступ к ее ресурсам - файловой системе, системному журналу, реестру, драйверам и службам и т.д. Кроме того, в среде ERD Commander, возможно выполнение практически любой переносимой ( portable ) программы ( или программы, для которой не критично отсутствие некоторых записей в реестре Windows, выполняемых при инсталляции приложения ).
После приобретения компании Winternals Software ( разработчика пакета ERD Commander) Майкрософтом, ERDC стал частью пакета оптимизации под названием Microsoft Diagnostic and Recovery Toolset ( MSDaRT или DaRT ). Тем не менее, в среде специалистов, по-прежнему, используется старое и теперь уже неофициальное название - ERD Commander ( ERDC ):
DaRT 5.0 - ERDC 5.0 - для Windows XP
DaRT 6.0 - ERDC 6.0 - для Windows Vista
DaRT 6.5 7.0 - ERDC 6.5 7.0 - для Windows 7
DaRT 8.0 - ERDC 8.0 - для Windows 8
Подробное описание ERD Commander и практическая инструкция по работе с ним приведена на странице Использование ERD Commander .
Программы DevManView ( devmanview.exe ) и Advanced PCI Info Utility ( APciInfo.exe ) могут выполняться в среде ERD Commander без необходимости установки приложения. APCIinfo - только в среде 32-хразрядных версий для Windows XP или более ранних ОС. Архив APCIINFO содержит саму утилиту и драйверы, требующиеся для ее работы. После скачивания нужно разархивировать содержимое в какую-либо папку, имя которой не содержит символов русского алфавита и записать на какой-нибудь носитель, например, флешку, чтобы иметь возможность запустить утилиту после загрузки ERDC. На момент начала загрузки носитель должен быть подключен к компьютеру. Архивы DevManView содержат исполняемый модуль и справочную информацию и применяются аналогично без инсталляции.
Загрузка ERDC выполняется обычным образом и завершается окном выбора операционной системы, с которой будем работать.
После выбора системы, выполняется вход в оболочку пользователя ERDC и становятся доступными инструменты для работы с ней через меню кнопки Start
Запускаем Advanced PCI Info Utility (исполняемый модуль apciinfo.exe) через "Start" - "Run". Утилита выдаст список устройств PCI
VID - это идентификатор производителя (Vendor ID), колонка DID - идентификатор устройства (Device ID). Колонка Device name - это имя устройства, присвоенное операционной системой, в данном случае, ERD Commander'oм.
Двойным щелчком можно вызвать свойства выбранного устройства.
Контроллер жесткого диска в данном примере имеет Vendor/Device ID - 8086/7111.
Использование DevManView также позволяет определить PnP идентификатор контроллера жестких дисков:
Контроллер жесткого диска в данном примере имеет Vendor ID / Device ID - 8086/24D1.
Зная значения PnP-идентификатора устройства, можно внести запись в реестр проблемной системы, указав, что данное устройство относится к классу контроллеров жесткого диска. Для чего нужно создать reg-файл для импорта следующего содержания:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_7111]
"Service"="intelide"
"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"
Устройства в Windows подразделяются на классы, например - класс видеоустройств, принтеров, модемов, сетевых адаптеров и т.д. Любое устройство должно принадлежать какому-нибудь классу. Каждый класс идентифицируется своим уникальным идентификатором класса или GUID - глобальным уникальным идентификатором.
Чтобы не набирать эти данные вручную, можете воспользоваться содержимым файла pnpid.reg , который я поместил в архив утилиты Advanced PCI Info Utility. Редактировать его содержимое можно с помощью блокнота ERDC ("Start" - "Notepad" )
Нужно исправить только PNP-идентификатор на тот, который будет получен с помощью утилиты Advanced PCI Info. Строка "Service" определяет драйвер, который будет обслуживать устройство. Файл драйвера должен существовать в каталоге \WINDOWS\SYSTEM32\DRIVERS и быть работоспособным. Строка "ClassGUID" указывает принадлежность устройства с данным PnP-ID к классу контроллеров жестких дисков.
В начало файла pnpid.reg добавлены записи, обеспечивающие использование стандартных или наиболее распространенных драйверов. Если записи для нужного PnP-Id не имеется - придется ее добавить, или подправить уже существующую.
Для устройств с кодом Vendor ID не равным 8086, вместо intelide нужно использовать atapi.
Для проверки наличия драйверов в системе, можно воспользоваться имеющимся в ERDC менеджером служб и драйверов. Запускается через меню "Start" - "Administrative Tools" - "Service and Drivers Manager"
Для импорта данных в реестр проблемной системы запускаем редактор реестра ERDC через
Start - Administrative Tools - Regedit
В данном случае, редактор реестра будет работать не с реестром самой системы ERDC, а с реестром системы, которую мы подключали в окне входа при загрузке ERD Commander. Импорт будет выполнен в реестр незагружающейся системы и, при перезагрузке, новый контроллер жесткого диска будет правильно опознан, как контроллер жесткого диска.
В упоминаемом выше файле pnpid.reg имеются записи для добавления стандартных драйверов pciide.sys, intelide.sys, atapi.sys. Эти файлы и файл pciidex.sys должны присутствовать в каталоге драйверов \WINDOWS\SYSTEM32\DRIVERS. Обычно, при стандартной установке, они там присутствуют. Если нет - можно взять из дистрибутива или из каталога аналогичной ОС.
Для операционной системы Windows 7, в подавляющем большинстве случаев, проблема критической ошибки STOP 7B при замене материнской платы, решается довольно просто, поскольку в составе установленной ОС уже имеется драйвер msahci.sys для контроллера жесткого диска, работающего в режиме AHCI. Но, обычно, этот драйвер либо отключен, либо загружается в режиме " Вручную" . Пример записи в реестре для драйвера msahci (раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci ) :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\msahci] "Group"="SCSI Miniport" "ImagePath"=\SystemRoot\system32\drivers\msahci.sys "ErrorControl"=dword:00000003 "Start"=dword:00000004 "Type"=dword:00000001
Как видим, параметр Start равен 4 - драйвер отключен. Чтобы драйвер msahci.sys использовался для поддержки устройства загрузки, этот параметр должен иметь значение 0 . Изменить параметр запуска Start для незагружающейся системы можно с помощью того же ERD Commander версии 6.5, 7.0 ( MS DaRT 7.0) или старше, установив режим через меню "Управление компьютером ", либо правкой реестра ( "Редактор реестра ERD " ).
Если у вас нет достаточной квалификации для работы с ERD Commander, либо возникли трудности в определении нужного драйвера, можно воспользоваться совсем простой методикой:
- загрузка на новой материнской плате в любой системе, где она возможна. Экспорт в файл содержимого раздела
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase
- загрузка в ERDC и импорт данных, из созданного в предыдущем пункте, файла в реестр проблемной системы. В случае использования драйвера msahci.sys для Windows 7, необходимо проверить или изменить параметр Start
Для выполнения первого пункта можно просто на время установить систему в другой раздел или каталог, загрузиться в ней и выполнить экспорт
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase
После чего, вновь установленную ОС можно удалить.
И, уж совсем просто, проблема решается, если у вас есть возможность получить экспортированные данные CriticalDeviceDatabase из операционной системы другого компьютера с такой же материнской платой.