Виправляємо BSOD 0x0000007B при завантаженні Windows 7 / Windows Server 2008 R2

При заміні обладнання комп'ютера або сервера, відновленні з резервної копії або при міграції фізичного хоста в середу віртуалізації (P2V), при першому запуску Windows Server 2008 R2 / Windows 7 може з'явитися синій екран BSOD з помилкою 0x0000007B.

STOP: 0x0000007B (0xFFFFF880009A9928, 0xFFFFFFFFC0000034, 0x0000000000000000, 0x0000000000000000).

Даний стоп-код відповідає помилку INACCESSABLE_BOOT_DEVICE і пов'язаний з тим, що контролер жорсткого диска нового сервера (комп'ютера або віртуальної машини) відрізняється від вихідного обладнання. При завантаженні системи не завантажується драйвер, які потрібен для завантаження з нового контролера. Через це Windows не може запуститися.

Адміністратор може зіткнутися з помилкою 0x0000007B в наступних випадках:

  1. При відновленні ОС з резервної копії на інший фізичний комп'ютер йди віртуальну машину Hyper-V, VMware або VirtualBox (як окремий випадок відновлення з Bare Metal Recovery на інше залізо).
  2. При міграції фізичної системи за допомогою створення образу комп'ютера (наприклад, за допомогою disk2vhd) і розгортанні з цього vhd образу нової віртуальної машини.
  3. При перемиканні режиму роботи SATA контролера в BIOS з AHCI на IDE, або навпаки.
  4. При заміні материнської плати та / або контролера жорсткого диска.

У моєму випадку проблема виникла при міграції фізичного сервера з 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) виберіть файл \Windows \ System32 \ config \ SYSTEM. У цьому файлі зберігається системна частина реєстру вашої Windows.

Таким чином ви змонтуєте (наприклад, під ім'ям local_hkey) в редактор реєстру кущ реєстру вашої системи з жорсткого диска.

У завантаженій гілці перейдіть в розділ HKEY_LOCAL_MACHINE \ local_hkey \ ControlSet001 \ services \.

Знайдіть такі ключі реєстру:

  • Atapi
  • Intelide
  • LSI_SAS

У кожному з цих ключів знайдіть параметр типу REG_DWORD з ім'ям Start і змініть його значення на 0 (0x00000000).

У тому випадку, якщо ви перед виникненням переключили режим роботи SATA контролера на AHCI, потрібно також в розділі msahci встановити Start = 0 (див. Статтю Як включити AHCI в Windows без перевстановлення).

Примітка. Значення Start = 0, означає що дана служба буде запускатися при завантаженні Windows. Start = 3 - ручний запуск служби

Для збереження змін у файлі реєстру на диску потрібно встати на розділ

HKEY_LOCAL_MACHINE \ local_hkey і в меню вибрати Unload Hive.

Тепер можете перезавантажити сервер в звичайному режимі. Windows повинна завантажиться нормально і запустить пошук і установку драйверів для нового обладнання.

У разі VMWare залишиться тільки встановити VMWare Tools.

Якщо після цих змін ваша Windows так і не завантажилася стій же помилкою INACCESSABLE_BOOT_DEVICE, значить у вас використовуються якийсь інший тип контролера. Спробуйте в гілці HKEY_LOCAL_MACHINE \ local_hkey \ ControlSet001 \ services змінити значення параметра Start відповідно до таблиці.

служба WindowsВіртуальна машина VMWareФізичний ПК з Windows x64 з нативним SATA адаптеромФізичний ПК з RAID контролером
aliide333
amdide333
atapi000
cmdide333
iastorv333
intelide033
msahci300
pciide303
viaide333
LSI_SAS033