При замене оборудования компьютера или сервера, восстановлении из бэкапа или при миграции физического хоста в среду виртуализации (P2V), при первом запуске Windows Server 2008 R2 / Windows 7 может появиться синий экран BSOD с ошибкой 0x0000007B.
STOP: 0x0000007B (0xFFFFF880009A9928, 0xFFFFFFFFC0000034, 0x0000000000000000, 0x0000000000000000).
Данный стоп-код соответствует ошибке INACCESSABLE_BOOT_DEVICE и связан с тем, что контроллер жесткого диска нового сервера (компьютера или виртуальной машины) отличается от исходного оборудования. При загрузке системы не загружается драйвер, которые нужен для загрузки с нового контроллера. Из-за этого Windows не может запуститься.
Администратор может столкнуться с ошибкой 0x0000007B в следующих случаях:
- При восстановлении ОС из бэкапа на другой физический компьютер иди виртуальную машину Hyper-V, VMware или VirtualBox (как частный случай восстановление из Bare Metal Recovery на другое железо).
- При миграции физической системы с помощью создании образа компьютера (например, с помощью disk2vhd) и разворачивании из этого vhd образа новой виртуальной машины.
- При переключении режима работы SATA контроллера в BIOS с AHCI на IDE, или наоборот.
- При замене материнской платы и / или контроллера жесткого диска.
В моем случае проблема возникла при миграции физического сервера с Windows Server 2008 R2 в среду VMWare. При первой загрузке ВМ появился синий экран.
В режиме отладки видно, что загрузка Windows останавливается на этапе загрузки драйвера CLASSPNP.SYS.
Для исправления проблемы, нужно загрузиться с установочного диска Windows (не ниже Windows 7 / 2008 R2) или загрузочного диска (например, DART). В случае использования установочного диска на первом экране начала установки (выбор языка и раскладки клавиатуры) нажмите сочетание клавиш Shift+F10. Откроется окно командной строки, в котором нужно выполнить команду:
Regedit.exe
В открывшемся окне редактора реестра встаньте на раздел HKEY_LOCAL_MACHINE и выберите меню File -> Load Hive. На диске сервера (не перепутайте его с диском со средой WinPE) выберите файл WindowsSystem32configSYSTEM. В этом файле хранится системная часть реестра вашей Windows.
Таким образом вы смонтируете (например, под именем local_hkey) в редактор реестра куст реестра вашей системы с жесткого диска.
В загруженной ветке перейдите в раздел HKEY_LOCAL_MACHINElocal_hkeyControlSet001services.
Найдите следующие ключи реестра:
- Atapi
- Intelide
- LSI_SAS
В каждом из этих ключей найдите параметр типа REG_DWORD с именем Start и измените его значение на 0 (0x00000000).
В том случае, если вы перед возникновением переключили режим работы SATA контроллера на AHCI, нужно также в разделе msahci установить Start=0 (см. статью Как включить AHCI в Windows без переустановки).
Примечание. Значение Start=0, означает что данная служба будет запускаться при загрузке Windows. Start=3 – ручной запуск службы
Для сохранения изменений в файле реестра на диске нужно встать на раздел
HKEY_LOCAL_MACHINElocal_hkey и в меню выбрать Unload Hive.
Теперь можете перезагрузить сервер в обычном режиме. Windows должна загрузится нормально и запустит поиск и установку драйверов для нового оборудования.
В случае VMWare останется только установить VMWare Tools.
Если после данных изменений ваша Windows так и не загрузилась стой же ошибкой INACCESSABLE_BOOT_DEVICE, значит у вас используются какой-то другой тип контроллера. Попробуйте в ветке HKEY_LOCAL_MACHINElocal_hkeyControlSet001services изменить значение параметра Start в соответствии с таблицей.
Служба Windows | Виртуальная машина VMWare | Физический ПК с Windows x64 с нативным SATA адаптером | Физический ПК с RAID контроллером |
aliide | 3 | 3 | 3 |
amdide | 3 | 3 | 3 |
atapi | 0 | 0 | 0 |
cmdide | 3 | 3 | 3 |
iastorv | 3 | 3 | 3 |
intelide | 0 | 3 | 3 |
msahci | 3 | 0 | 0 |
pciide | 3 | 0 | 3 |
viaide | 3 | 3 | 3 |
LSI_SAS | 0 | 3 | 3 |