No matching pci ids in driverpack ini file что это

Обновлено: 06.07.2024

В статье описывается способ проброса физических устройств из гипервизора KVM в гостевую ОС с помощью технологии VFIO, реализованной в linux kernel 3.9.*.
Материал не является руководством к действию (прим. туториалом). Все описанные инструкции вы производите на свой страх и риск.

Эксперимент выполняется под ОС Ubuntu 13.10:

  • kernel: 3.11.0-15-generic
  • qemu: 1.5.0
  • seabios: 1.7.3

Аппаратная часть стенда:

  • мат. плата: AMD990FX
  • процессор: AMD FX-8120
  • опер. память: DDR3 PC3-14900
  • видеокарта: ATI RADEON HD 7750
  • видеокарта (гость): NVIDIA GTX560-TI

Видеокарта для гостевой системы и хоста, может быть, предположительно, любая (NVIDIA, ATI RADEON).
Материнская плата должна иметь блок управления памятью ввода/вывода (IOMMU) — технология AMD-Vi или VT-d.
Если используется процессор Intel, то он также должен поддерживать VT-d.
Независимо от выбранной платформы в биосе материнской платы должны быть реализованы IVRS/DMAR таблицы.

Подготовка

Настоятельно рекомендуется обновить биос мат. платы с сайта производителя перед началом эксперимента.

Проверяем поддержку технологии проброса.


Включаем модули в ядре.

Отключаем пробрасываемые устройства (для удобства также проброшены порты usb контроллера).


После перезагрузки должно получиться:


Создаем скрипт для подключения устройства к VFIO-PCI.

И добавляем его в автозапуск (ключи берем из вызова lspci — рассматривалось выше).

Внимание: задать ваши параметры!

Запуск

В качестве гостевой ОС используется WINDOWS 7 с паравиртуальными драйверами VIRTIO. В соответствии с этим выбрано оборудование виртуальной машины.

В ВМ проброшен раздел жесткого диска -drive file=/dev/sdc6.
Начальная установка выполнялась без проброса физических устройств (можно использовать -vnc 127.0.0.1:0 или стандартную консоль).
Аргументы -vga none -nographic следует добавить при пробросе компонентов видеокарты (-device vfio-pci).

Тут я предлагаю свой вариант, котрым пользуюсь я. Это не значит, что остальные варианты плохие и/или неправильные - это значит только то, ято этим вариантом пользуюсь я.

Ну нравится он мне.

Я постораюсь осветить вопросы где взять и как сделать.

Попадаем на страницу с самым свежим DPs_BASE, на данный момент - DPs_BASE_8125

Запускаем скачанный файл DPs_BASE_8125.exe на выполнение.

Это самораспаковывающийся архив, путь распаковки по умолчанию – в текущую папку.

Я сделал пустую папку, туда качал, там и запустил:


Можете изменить путь распаковки, мне лень…

В результате получили:


Последний – это как раз тот файл, который мы скачали и запустили.

Осталось решить, какие драйвера мы собрались ставить – я собрался ставить исключительно Mass Storage драйвера, захотите что ни будь добавить – ваше право, от этого сам процесс не меняется.


Меня в данный момент интересует именно и только подчеркнутый, то бишь Mass Storage.

Щелкаем по download напротив интересующего нас пакета драйверов, попадаем на страницу загрузки этого пакета.

Кроме как загрузить, там еще можно посмотреть, а что собственно в нем есть, какие драйвера? Список приводить не буду – все равно он достаточно часто меняется, хотя я вот делал это с месяц назад – пока не изменились, странно…

Качаем с этой странички файл DP_MassStorage_wnt5_x86-32_901.7z, можете сразу кинуть его в папку DriverPacks, что у нас получилась после распаковки первого файла.

Этот файл распаковывать не надо – и так пойдет.

Запускаем файл DPs_BASE.exe и видим:


Особо зоркие заметят нерусскую надпись «English» в чекбоксе, слева от кнопки Apply.

Вы будете смеяться, но там есть и русский, называется, правда, не по русски – Russian, да еще перед тем, как перейти на знакомый с дества (надеюсь) язык придется нажимать нерусскую кнопочку Apply:


Вот вам недостатки великого и могучего – «Загрузка конфигурационного» поместилось, а вот «файла» - нет.

Это вам потребуется на тот случай, если вы делаете эту работу в два приема, хотя что тут делать в два – не знаю…

Кнопка «Далее» не переведена – ее я специально отметил красным J

Жмем. Следующий экран прочитаете сами, скриншота делать не буду, и снова жмем:


Если кому то хочется попробовать все – пожалуйста, я же делаю только одно – интеграцию одного пакета драйверов в дистрибутив.

Потому радиокнопка отмечена возле надписи «Диск», и сильно мне не нравится надпись сереньким «OS: Н/Д» вверху.

Потому жмем кнопку «Просмотр» и выбираем папку, в которую мы скопировали дистрибутив Windows XP:


У меня в эту папку уже интегрирован SP3, что и видно:


Опять жмем стрелку вправо:


Так как в папку DriverPacks я положил только один архив с драйверами, то только его я выбрать и могу. И обязательно – ведь наша задача поставить систему на комп, в котором нет флопа, или нам лень туда совать дискету с драйверами – поставьте галочку на чекбоксе слева от надписи «DriverPack MassStorage text mode» - именно на текстовом этапе установки они нам и потребуются.

Ну, жмем опять на стрелку…


Методы… В методы я не вникал, но проверял: работают оба.

Поэтому, ничтоже сумняшись, оставляю то, что стоит по умолчанию – если бы я был таким умным, как автор сей проги, то я бы не пользовался ей, а написал бы свою. J


Хотите, найдите разницу между этими методами, не хотите – не ищите.

По секрету скажу: для нашего случая этот выбор значения не имеет, если кроме этих драйверов вы интегрируете еще какие то – выберете первый или второй, разницы особо никакой, но второй красивше J.

Опять жмем и опять ту же кнопку, и даже не один раз. Я нажал раз семь по моему, пропустив соответствующие страницы, кто хочет – разберется, для нашего случая не имеет ни малейшего значения..

Доходим до интересного экрана:.


Если вы в интернете, и вам захотелось что то еще добавить – можете смело отметить, что хочется, и нажать «Обновить выбранное».

Мне не захотелось, у меня все из того, что мне нужно – свежее, поэтому я опять жму стрелку:


Опа… А тут нет нашей любимой кнопочки, только денег просят… Хотите – дайте, я не возражаю.

А можете просто нажать кнопку «Поехали!» (чувствуете русский перевод? С космическим таким акцентом…)

Появляется вот примерно такое:


Окошко, даже сверху временами еще мелкое окошко выскакивает, но мы ждем…

Пока сверху не выскочит вот такое:


Жмем «ОК», жмем «Cancel» - все, программа свое дело сделала, она может уходить.

Что после нее осталось? Лог-файл, файл .ini, в том месте, где мы ее запускали – еще и папочка, нам не нужная, ну, заодно изменил и ту папочку, где у нас лежал дистрибутив Windows – теперь это дистрибутив готов к записи на диск.

Только не надо писать вот так вот по простому: типа я сейчас на диск запишу, а комп сам разберется, что с этим делать.

Вариантов много, я предпочитаю стандартный.

Там же есть ссылка на архив, в котором есть и сама программа, и загрузочный сектор для диска, и пример командного файла…

Ну, ежели что то я описал сильно вскользь – наезжайте, попробую дописать.

Но не обязательно – ведь лень то раньше меня родилась…

Собственно, писать на эту тему несколько уже и поздновато – все таки время ХР помаленьку отходит, что бы не говорили про Vista, а ведь есть еще семерка – Windows 7, и у обоих совершенно другой принцип инсталляции, и работать там с дистрибутивом надо совершенно по другому.



Зачем всё это нужно?
Начнем с первой части темы, а это перенос системы, т.е. если вам понадобилось сменить материнскую плату, но хочется сохранить систему без перестановки. И если просто подключить жесткий диск с ОС, у вас скорей всего будет BSOD, либо возникнут различные конфликты драйверов и оборудования. Значит необходимо провести некоторые манипуляции над ОС о которых напишу ниже.
Второе, хочется создать настроенный образ ОС с нужным ПО, который можно было бы устанавливать на различном железе, с минимальными затратами времени на его разворачивание(заливку).
В интернету полно инструкций по данной теме, но ничего актуального, простого, и понятного я не нашел, поэтому решил пойти своим путем, используя, конечно же, опыт и наработки других людей, и специализированный софт.
С целью определились, идем дальше.


Что нам потребуется сделать, чтобы ОС удачно запустилась?
Если просто требуется перенести систему на другое железо:
1. Подчистить систему, чем чище система - тем лучше.
2. Удалить уникальные драйверы используемых устройств.
3. Перенести систему на другое железо.
4. Импортировать уникальный драйвер контроллера дисков, если требуется.
5. Загрузиться на новом железе.
6. Установить остальные драйвера стандартным путем.

Если требуется создать универсальную заливку (пп.3-7 такие же):
1. Отключить все лишние устройства, чем меньше устройств - тем лучше.
2. Установить ОС, софт, и пр (дрова не ставим). Активировать и обновить систему, если нужно.
3 . Удалить уникальные драйверы используемых устройств.
4. Перенести систему на другое железо.
5. Импортировать уникальный драйвер контроллера дисков, если требуется.
6. Загрузиться на новом железе.
7. Установить остальные драйвера стандартным путем.

Что для этого потребуется?
1. Удалялка драйверов - TeraByte OS Deployment Tool Suite
3. WinPE с MassStorage драйверами - Hiren's BootCD
2. Вставлялка SATA/AHCI/RAID драйвера - FixHDC (в Hiren's BootCD присутствует)
4. Снятие и перенос образа диска (системы) - IFW (в Hiren's BootCD присутствует), можно любое, если вам в нем удобней работать
5. Виртуальная машина для создания заливки - VMWare Workstation, можно VirtualBox и пр.

Почему я выбрал именно эти программы, а не другие?

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

Для удаления драйверов были испробованы 2 утилиты. DevCon от компании Microsoft, и OS Deployment Tool от компании TeraByte.
DevCon - представляет собой консольную утилиту, для работы устройствами и драйверами, в том числе умеет удалять драйвера. С ее помощью, запустив ее с параметром remove ( devcon remove * - для удаления всех устройств), можно удалить драйвера из системы. Но она как оказалась делает это не достаточно хорошо.
Изначально в установленной системе было 193 драйвера (или 103 PnP).
После отработки DevCon количество драйверов снизилось до 97 (или 36 PnP), но в ней все еще остались драйвера дисковода гибких и оптических дисков, и других устройств, что не есть хорошо.
OS Deployment Tool - одна коммерческая утилита, тоже предназначена для удаления драйверов, и не только, но в отличии от DevCon удаляет гораздо больше драйверов, и может удалять драйвера без запуска самой ОС.
Результат ее работы следующий:
Изначально в установленной системе было 190 драйвера (или 100 PnP).
После применения OSD Tool стало 47 драйверов (или 15 PnP). Как вы можете видеть остались только стандартные драйвера, общие для всех конфигураций.
Вывод: OSD Tool работает гораздо лучше DevCon, но он распространяется на платной основе, если для вас это проблема можете использовать DevCon, работать будет, я же буду использовать OSD Tool.

Для этих целей существует довольно много софта от разных производителей. У каждого свои плюсы и минусы. Приведу основные из них: Acronis Software, Norton Ghost (Symantec) TeraByte Image for DOS/Windows/Linux, Paragon Software, Clonezilla, EaseUS Todo Backup, DriveImage XML, Miray HDClone, Macrium Reflect. Наиболее полный список ПО для клонирования можете посмотреть на Википедии. Какой будете использовать, решать вам, я же буду использовать Image for Linux.

Последовательность действий по клонированию Windows XP

Часть 1. Установка ОС на виртуальную машину VMWare Workstation.

1. Запускаем VMWare Workstation.
Примечание: используемая версия VMWare Workstation 7.0.1 build-227600.
2. Создаем новую виртуальную машину (Ctrl+N). Выбираем "Typical".




5. Выбираем "Other" - "Other".
ВАЖНО! Иначе придется удалять WMware Tools.






9. Жмем "Customize Hardware" для изменения размера ОЗУ, и конфигурирования других устройств.



10. В строке "New CD/DVD (IDE)" выбираем ISO образ устанавливаемой системы, или дисковод с которого должна устанавливаться система.


11. Жмем "Finish".
12. Запускаем виртуальную машину зеленой стрелкой наверху.
Возможна следующая ситуация. Вы настроили загрузку с ISO, но при запуске виртуальной машины не появляется надпись "Press any key to boot from CD. ", и машина не загружается с CD. В таком случае надо выставить загрузку с CD-ROM в BIOS, точно также как на обычной машине. Перезапустите виртуальную машину и нажмите F2. Вы должны войти в настройки BIOS виртуальной машины, которые выглядят примерно так:

Используйте стрелки Вправо/Влево на клавиатуре, чтобы перейти в меню Boot

Используйте стрелки Вверх/Вниз на клавиатуре, чтобы выбрать CD-ROM, а затем жмите на клавишу "+" до тех пор, пока CD-ROM не окажется в списке над Hard Drive.

Теперь при помощи стрелок Вправо/Влево выберите меню Exit, затем выделите "Exit Saving Changes" и жмите Enter. Подтвердите запрос на изменение настроек, и виртуальная машина перезагрузится с новыми настройками.
Использован материал oszone.net
13. Устанавливаем систему, софт.
Не ставим драйвера, антивирусы, DaemonTools'ы, и Алкоголи - они ставят свои драйвера в систему, и скорей всего не будут работать, после переноса и удаления всех драйверов.
Не используем "Снапшоты"(Snapshots), т.к. нам нужен целый, не разбитый на части виртуальный диск.

Часть 2. Удаление драйверов с помощью OS Deployment Tool

1. Запускаем TeraByte OS Deployment Tool Suite и выбираем OSDTOOL.TBS
Если нету, можете взять здесь.
(Извлекаем на диск С, и запускаем с помощью ярлыка)
2. Выбираем "Virtual Drive" ищем файл жесткого диска (.vmdk) для созданной виртуальной машины, или выбираем "Physical Drive", если Windows находится на физ.диске.




4. Проверяем правильно ли выбрали. Жмем Enter.
5. Выбираем "Remove installed drivers ".






9. Выходим в главное меню. Выбираем "Ghange HAL":

10. Смотрим. Должен стоять halaacpi.dll. Если нет - меняем.
Примечание: в довольно редких случаях, например на очень древнем железе, требуется другой HAL, и если у вас не получается загрузить систему, нужно попробовать изменить HAL на другой, до тех пор пока не заработает.


11.Если есть подготовленные драйвера (файлы .inf и .sys) можете установить их, с помощью OSDTool, если нет - идем дальше. Подробнее, используя скрипты, описал в этой статье.
Дальше, не запуская системы, нужно снять ее образ и развернуть на другом HDD, я буду использовать Image for Windows из Hiren's BootCD
Примечание: Так же вы можете запустить OSDTool из загрузочной версии Image For Linux.


Часть 3. Перенос на другой жесткий диск с помощью Image for Window

IFW может перенести всю информацию с виртуального диска на физический, значит нам не понадобиться снимать образ системы, следует всего лишь скопировать на внешний носитель файл виртуального диска (.vmdk).
Примечание: если у вас недостаточно места на внешнем носителе, можете все же снять образ, тогда места потребуется меньше.

1. Копируем виртуальный диск (.vmdk) на внешний носитель.
2. Подключаемся к новому железу и загружаем WinPE из Hiren's BootCD
Если нету, можете взять здесь. Отдельно IFW2.68 - здесь.
3. Запускаем IFW. Меню HBCD -> Programs -> Backup -> Image for Windows



5. Ставим галочку на "Virtual Drives". Нажимаем "Add Virtual Drive". Прописываем путь до виртуального диска.



6. Выбираем что будем восстанавливать, раздел или полностью диск. Я выбрал диск.
Примечание: если требуется сохранить разметку (другие разделы) на диске-приемнике, то нужно выбирать раздел.
7. Выбираем куда восстанавливать.
8. Выбираем параметры восстановления.
Примечание: Подробности можете узнать в документации.


9. Жмем Next. Проверяем параметры восстановления. Ждем когда закончится процесс переноса.
11. Выходим из IFW.
12. Проверяем правильно ли восстановилось. Смотрим какой активный раздел, код MBR, PBR, редактируем boot.ini если требуется.
Примечание: BootICE и блокнот в помощь.


Часть 4. Установка драйвера контроллера дисков с помощью FixHDC.

1. Загружаем WinPE с диска Hiren's BootCD
Если нету, можете взять здесь. Отдельно FixHDC0.02 - здесь.
2. Запускаем FixHDC. Меню HBCD -> Programs -> Registry -> Fix hard disk controller (fix_hdc.cmd)




5. Всё драйвер добавлен. Можно закрывать и загружаться в основную систему, и устанавливать остальные драйвера.


Часть 5. Установка остальных драйверов с помощью DriverPack Solution.

После загрузки системы нужно поставить еще остальные драйвера, можно использовать оригинальные установочники, я же предпочитаю DriverPack Solution, он позволяет автоматически поставить большинство драйверов, не спрашивая лишней информации.

1. После запуска ОС, начнется опознавание нового оборудования, будут появляться предложения с установкой драйверов для неизвестного оборудования, пока что их закрываем, иначе дальше поиск оборудования не пойдет. В дальнейшем они будут установлены, через DRPSu.


2. Запускаем DriverPack Solution.
Если нету, можно взять здесь.
3. Видим что найдены не установленные драйверы. Жмем Установить.

4. Выбираем установить только драйвера, программы ведь у нас уже есть. Если нужно, то можно создать контрольную точку восстановления.

6. Пока ставятся драйвера, ставим нормальный драйвер контроллера дисков. А то после каждой загрузки ОС придется закрывать это окно.

7. Ставим обычным способом через Диспетчер устройств, для следующего устройства:
Примечание: базу наиболее распространенных драйверов контроллеров дисков можно взять здесь.

8. Перезагружаем компьютер после того, как DRPSu установит все драйвера.
9. Проверяем все ли драйвера поставились.

10. Система готова. Можно работать!


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

При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.

Есть устройство подключенное по PCI на шине оно видно, но драйвер ему не присваивается, хотя должен. Можно ли както задать драйвер принудительно, как в винде. (Адрес устройства тут 0000:03:0b). Производитель гарантировал поддержу под ядрами >= 2.6.32.

Объясните пожалуйста, что это значит (PCI INT C disabled) и может ли это сказаться как то на работе устройств.


драйвер ему не присваивается, хотя должен

Kroz ★★★★★ ( 13.02.13 11:35:41 )
Последнее исправление: Kroz 13.02.13 11:36:29 (всего исправлений: 1)



8250_pci.ko оно в ядре

Это какой-то serial port адаптер?

lscpi для других устройств выводит информацию о модуле ядра, kernel module? (должна, по памяти не помню). Если да, то драйвер действительно не подключен.

В ядре драйвер включен?

Да, и мы четко должны понимать результат успеха; я так понимаю, что в /dev должно появиться какое-то устройство?


Ага. В ядре драйвер включен? sudo modprobe -r 8250_pci FATAL: Module 8250_pci is builtin Это же значит, что он в ядре? lsmod его не выдает.

Тогда ступил /var/log/messages не смотрел только видел что 8250_pci висит. попробую еще.


Да, и мы четко должны понимать результат успеха; я так понимаю, что в /dev должно появиться какое-то устройство?

В мануале говорят о появлении /dev/ttyS*


Я не знаю, что это: новый чип, или заводской брак, или китайская подделка, или ошибка передачи данных по PCI-шине. По приколу можно написать производителю.

Нередко после замены материнской платы или изменения режима работы контроллера жесткого диска в настройках 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 контроллер жесткого диска.

Данная утилита разработана довольно давно, и до появления Windows 7 была, пожалуй одним из наиболее простых и удобных программных средств определения PnP - идентификаторов. Однако, на данный момент, утилита устарела, не работает в среде операционных систем Windows Vista и старше, а также в среде дисков аварийного восстановления на базе Windows PE2 и более поздних ( после ERDC 6х ). Поэтому, лучше пользоваться переносимыми утилитами от NirSoft DevManView, разработанными в качестве альтернативы стандартному диспетчеру устройств 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 также позволяет определить PnP идентификатор контроллера жестких дисков:

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

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

Зная значения PnP-идентификатора устройства, можно внести запись в реестр проблемной системы, указав, что данное устройство относится к классу контроллеров жесткого диска. Для чего нужно создать reg-файл для импорта следующего содержания:

Устройства в Windows подразделяются на классы, например - класс видеоустройств, принтеров, модемов, сетевых адаптеров и т.д. Любое устройство должно принадлежать какому-нибудь классу. Каждый класс идентифицируется своим уникальным идентификатором класса или GUID - глобальным уникальным идентификатором.

Для проверки наличия драйверов в системе, можно воспользоваться имеющимся в 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 ) :

Как видим, параметр 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

Для выполнения первого пункта можно просто на время установить систему в другой раздел или каталог, загрузиться в ней и выполнить экспорт

После чего, вновь установленную ОС можно удалить.

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

Читайте также: