Восстановление Windows после замены материнской платы


Причины неработоспособности Windows после замены системной платы.

        Нередко после замены материнской платы или изменения режима работы контроллера жесткого диска в настройках BIOS (Raid, Compatible, AHCI, Native SATA) загрузка системы начинается как обычно, появляется начальная заставка, затем - сброс, информация о прохождении POST BIOS, и опять, начало загрузки с тем же продолжением. Обычно это происходит по причине того, что система не смогла загрузить драйвер устройства загрузки и возникла критическая ошибка STOP: 0x0000007B Inaccessible Boot Device (Недоступно устройство загрузки)

Чтобы вместо перезагрузки получить точную информацию о возникшей критической ошибке необходимо отключить режим выполнения автоматической перезагрузки при ее возникновении. Для ОС Windows XP и старше это можно сделать через меню загрузчика Windows, если в самом начале загрузки нажать F8 и выбрать вариант загрузки - Отключить автоматическую перезагрузку при отказе системы

Меню выбора вариантов 
загрузки Windows

При загрузке в данном режиме, по возникновению критической ошибки на экран монитора будет выдан "синий экран смерти" 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 выполняется обычным образом и завершается окном выбора операционной системы, с которой будем работать.

Меню выбора  
Windows в ERDC


После выбора системы, выполняется вход в оболочку пользователя ERDC и становятся доступными инструменты для работы с ней через меню кнопки Start

Основное меню ERDC


Запускаем Advanced PCI Info Utility (исполняемый модуль apciinfo.exe) через "Start" - "Run". Утилита выдаст список устройств PCI


Advanced PCI Info Utility


VID - это идентификатор производителя (Vendor ID), колонка DID - идентификатор устройства (Device ID). Колонка Device name - это имя устройства, присвоенное операционной системой, в данном случае, ERD Commander'oм.

    Двойным щелчком можно вызвать свойства выбранного устройства.

PnP - ID


Контроллер жесткого диска в данном примере имеет Vendor/Device ID - 8086/7111.

Использование DevManView даже проще, чем Advanced PCI Info Utility и также позволяет определить PnP идентификатор контроллера жестких дисков:

Определение PnP - ID с помощью DevManView


Контроллер жесткого диска в данном примере имеет Vendor ID / Device ID - 8086/24D1.

Зная значения PnP-идентификатора устройства, можно внести запись в раздел CriticalDeviceDatabase реестра проблемной системы, указав, что данное устройство относится к классу контроллеров жесткого диска. Это действие проще всего выполнить создав 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 - глобальным уникальным идентификатором. Перечень классов стандартных устройств Windows приведен здесь
Имя ключа реестра pci#ven_8086&dev_7111 соответствует PnP-идентификатору нашего контроллера жестких дисков, а значение ClassGUID указывает на то, что устройство с данным PnP идентификатором принадлежит к классу контроллеров HDD. Идентификатор класса записывается в виде 32-х шестнадцатеричных цифр, заключенных с фигурные скобки. После добавления такой записи в реестр, загрузчик системы сможет определить, что устройство с Vendor/Device ID, равным 8086/7111 является контроллером HDD, и загрузит для него стандартный драйвер intelide. Ошибки Stop7B не будет.

    Чтобы не набирать эти данные вручную, можете воспользоваться содержимым файла pnpid.reg , который я поместил в архив утилиты Advanced PCI Info Utility. Редактировать его содержимое можно с помощью блокнота ERDC ("Start" - "Notepad" )
Нужно исправить только PNP-идентификатор на тот, который будет получен с помощью утилиты Advanced PCI Info или утилиты DevManView. Строка "Service" определяет драйвер, который будет обслуживать устройство. Файл драйвера должен существовать в каталоге \WINDOWS\SYSTEM32\DRIVERS и быть работоспособным. Строка "ClassGUID" должна указывать на принадлежность устройства с данным PnP-ID к классу контроллеров жестких дисков.

В начало файла pnpid.reg добавлены записи, обеспечивающие использование стандартных или наиболее распространенных драйверов. Если записи для нужного PnP-Id не имеется - придется ее добавить, или подправить уже существующую.
Для устройств с кодом Vendor ID не равным 8086, вместо intelide нужно использовать atapi.

Для проверки наличия драйверов в системе, можно воспользоваться имеющимся в составе ERD Commander менеджером служб и драйверов. Запускается через меню "Start" - "Administrative Tools" - "Service and Drivers Manager"

Для импорта данных в реестр проблемной системы запускаем редактор реестра ERDC через
Start - Administrative Tools - Regedit
В среде ERD Commander, редактор реестра будет работать не с реестром самого ERDC, а с реестром системы, которую мы подключали в окне входа при загрузке ERD Commander. Импорт будет выполнен в реестр незагружающейся системы и, при перезагрузке, новый контроллер жесткого диска будет правильно опознан, как контроллер жесткого диска.

В упоминаемом выше файле pnpid.reg имеются записи для добавления стандартных драйверов pciide.sys, intelide.sys, atapi.sys. Эти файлы и файл pciidex.sys должны присутствовать в каталоге драйверов \WINDOWS\SYSTEM32\DRIVERS. Обычно, при стандартной установке, они там присутствуют. Если нет - можно взять из дистрибутива или из каталога аналогичной ОС.

Для операционной системы Windows 7, в подавляющем большинстве случаев, проблема критической ошибки STOP 7B при замене материнской платы, решается довольно просто, поскольку в составе установленной ОС уже имеется драйвер msahci.sys для контроллера жесткого диска, работающего в режиме AHCI. Но, обычно, этот драйвер либо отключен, либо загружается в режиме " Вручную" . Пример записи в реестре для драйвера msahci с параметрами, которые создаются в процессе установки Windows7 (раздел реестра 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
Процесс загрузки драйверов в Windows определяется значением параметра Start . Как видим, параметр Start равен 4 - что означает, что драйвер отключен. Чтобы драйвер msahci.sys использовался для поддержки устройства загрузки, этот параметр должен иметь значение 0 . Изменить параметр запуска Start для незагружающейся системы можно с помощью того же ERD Commander версии 6.5, 7.0 ( MS DaRT 7.0) или старше, установив тип запуска Загрузочный (Bootable) для драйвера msahci через меню "Управление компьютером ", и раздел "Управление службами и драйверами" (Service and Driver Manager). Можно такэе использовать правку реестра в среде ERD Commander ( MS DaRT ), установив значение параметра Start, равное 0.

Для включения режима загрузки драйвера msahci можно обойтись и без ERD Commander, для чего достаточно загрузиться в любой ОС с возможностью редактирования реестра, например в Windows PE с компакт-диска или флешки.

Стандартный редактор реестра Windows позволяет открывать файлы не только "своего" реестра, но и файлы, являющиеся реестром другой операционной системы. Для этого

- Загрузитесь в другой операционной системе c возможностью запуска редактора реестра .
- Запустите редактор реестра.
- В левой части окна, где отображается дерево реестра, щелкните мышкой на разделе HKEY_LOCAL_MACHINE.
- В меню Реестр (Registry) (В других версиях редактора реестра этот пункт меню может называться "Файл") выберите команду "Загрузить куст(Load Hive)".
- выберите куст system на диске с незагружающейся Windows ( файл с именем system без расширения, который находится в папке \windows\system32\config ).
- Нажмите кнопку Открыть.
- В поле Раздел введите временное имя, которое будет присвоено загружаемому кусту в дереве редактора реестра. Например 123.
После нажатия OK , ввыберите раздел с присвоенным именем 123 и найдите подраздел \SYSTEM\ControlSet00х\services\msahci. В качестве ControlSet00х нужно выбрать раздел с максимальным значением x, т.е. если в подключенном к редактору разделе реестра есть ControlSet001 и ControlSet002, то нужно редактировать парметры драйвера в разделе \SYSTEM\ControlSet002\services\msahci

Устранение ошибки Stop 7B загрузкой куста в regedit и исправлением параметра Start


После изменения параметра Start, в левой части окна редактора реестра выберите подключенный куст ( 123 ) и выполните пункт меню "Выгрузить куст". Измененное значение параметра Start, равное 0 и обеспечивающее загрузку стандартного драйвера msahci будет сохранено в реестре незагружавшейся Windows и проблема с ошибкой Stop 7B должна устраниться.

    Если у вас нет достаточной квалификации для работы с ERD Commander, либо возникли трудности в определении нужного драйвера, можно воспользоваться совсем простой методикой:

- загрузка на новой материнской плате в любой системе, где она возможна. В крайнем случае, можно даже временно установить Windows в другой раздел или на другой диск. После чего нужно выполнить экспорт в файл содержимого раздела

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase

- загрузка в ERDC и импорт данных, из созданного в предыдущем пункте, файла в реестр проблемной системы. В случае использования драйвера msahci.sys для Windows 7, необходимо проверить или изменить параметр Start

После того, как ошибка STOP7B будет устранена, дополнительно установленную систему можно будет удалить, предварительно настроив загрузчик системы на загрузку по умолчанию исправленной Windows.

И, уж совсем просто решается проблема, если у вас есть возможность получить экспортированные данные CriticalDeviceDatabase из операционной системы другого компьютера с такой же материнской платой, вернее даже с таким же PnP-идентификатором контроллера жесткого диска. Достаточно просто выполнить импорт этих данных в реестр проблемной Windows и ошибка Stop7B будет устранена.




Если вы желаете поделиться ссылкой на эту страничку в своей социальной сети, можете воспользоваться кнопкой "Поделиться"



Или рекомендовать сайт пользователям Google+