
Ошибка 0x0000007B (INACCESSABLE_BOOT_DEVICE) при запуске компьютера указывает на то, что Windows не может получить доступ к загрузочному диску, поскольку отсутствует необходимый драйвер или диск поврежден.
Администратор может столкнуться с проблемой 0x0000007B
с ошибкой в следующих случаях
- При восстановлении Windows из резервной копии на другой физический компьютер или виртуальную машину Hyper-V, VMware или VirtualBox (или в сценариях восстановления “на пустом металле” на другое оборудование);
- Во время миграции P2V или V2V;
- После переноса (клонирования) Windows на новый жесткий диск или компьютер;
- Если вы используете образ Windows для переноса физической машины (например, с помощью disk2vhd) и развертывания новой виртуальной машины из этого VHD-образа;
- После переключения режима контроллера SATA в BIOS с AHCI на IDE/RAID или наоборот (в этом случае просто откройте настройки BIOS и восстановите исходные настройки SATA);
- При замене материнской платы и/или контроллера жесткого диска;
- После обновления встроенного ПО BIOS/UEFI или изменения настроек.
Ошибка остановки 0x0000007B после преобразования физического хоста в виртуальную машину
Чаще всего я сталкивался с ошибкой 0x7b после преобразования физического компьютера под управлением Windows Server 2008 R2 или Windows 7 в виртуальную машину с помощью VMware vCenter Converter. После завершения преобразования Windows не загружается на новой виртуальной машине, а на экране появляется BSOD (Blue Screen of Death) с кодом остановки:
STOP: 0x0000007B (0xFFFFF880009A9928, 0xFFFFFFFFC0000034, 0x0000000000000000, 0x0000000000000000).
Ошибка INACCESSABLE_BOOT_DEVICE в данном случае вызвана тем, что контроллер жесткого диска нового сервера (компьютера или виртуальной машины) отличается от оригинального оборудования. Например, большинство гипервизоров по умолчанию используют для подключения виртуальных жестких дисков контроллер SCSI или SAS, который в Windows по умолчанию отключен. Драйвер lsi_sas.sys установлен, но служба, которую он запускает, отключена. В результате операционная система не сможет загрузить необходимый драйвер контроллера, и Windows перестанет загружаться с BSOD.
В режиме отладки видно, что загрузка Windows останавливается на этапе загрузки драйвера CLASSPNP.SYS.
Чтобы исправить ошибку 0x0000007B, необходимо загрузиться с любого установочного носителя Windows или загрузочного диска (например, MsDaRT). Если вы загрузили компьютер с установочного носителя, вам нужно нажать кнопку Shift + F10
на первом экране мастера установки (затем выберите язык и раскладку клавиатуры). Появится окно командной строки, в котором нужно будет выполнить команду:
Regedit.exe
Перейдите в раздел HKEY_LOCAL_MACHINE ветвь реестра и выберите Файл -> Загрузка Hive в окне редактора реестра. Выберите \Windows\System32\config\SYSTEM файл на локальном диске сервера (не путайте его с диском WinPE). В этом файле хранится системная часть реестра Windows.
Эти шаги позволят смонтировать ветку реестра SYSTEM с жесткого диска в Редактор реестра. Введите временное имя для нового раздела реестра (например, используйте имя local_hkey).
Перейдите в HKEY_LOCAL_MACHINE\local_hkey\ControlSet001\services\ ключ реестра в смонтированной ветке.
Найдите эти ключи реестра:
- Atapi;
- Intelide;
- LSI_SAS.
Найдите параметр REG_DWORD под названием Запустить и измените его на 0 (0x0000000000) в каждом из этих ключей.
Если перед возникновением этой ошибки вы установили режим работы SATA-контроллера на AHCI, в разделе msahci также следует установить Start = 0.
Чтобы сохранить изменения в файле локального реестра на диске, выберите ключ реестра HKEY_LOCAL_MACHINE\local_hkey и нажмите кнопку Выгрузить улей из меню.
Теперь вы можете перезапустить свой сервер. Windows должна загрузиться нормально. Она автоматически найдет и установит драйверы для нового дискового контроллера.
Если после внесения этих изменений Windows по-прежнему не загружается с той же ошибкой INACCESSABLE_BOOT_DEVICE, это означает, что вы используете другой тип дискового контроллера.
Попробуйте изменить значение параметра Начало параметр в HKEY_LOCAL_MACHINE\local_hkey\ControlSet001\services
в соответствии с приведенной ниже таблицей.
Имя службы Windows | Виртуальная машина VMWare или Hype-V | Физический ПК под управлением Windows x64 с родным адаптером SATA | Физический ПК с RAID-контроллером |
aliide | 3 | 3 | 3 |
амдид | 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 |
Как вручную установить драйвер при возникновении ошибки INACCESSABLE_BOOT_DEVICE
Можно вручную установить драйверы в автономный образ Windows. Например, после выполнения миграции хоста P2V можно установить контроллер VMware SCSI Disk Controller или драйвер VirtIO (для виртуализации KVM) в автономный образ Windows. Для этого скопируйте необходимые драйверы на загрузочный USB-накопитель, загрузитесь с него и откройте командную строку.
Чтобы установить драйвер в автономный образ Windows (в нашем примере он находится на диске F:), выполните команду
dism /image:f:\ /add-driver /driver:vioscsi.inf
В некоторых организациях настроены групповые политики, ограничивающие установку драйверов сторонних производителей в Windows. Например, в разделе Конфигурация компьютера -> Административные шаблоны -> Система -> Установка устройств -> Ограничения на установку устройств указаны следующие параметры:
- Запретить установку устройств, которые соответствуют любому из этих идентификаторов устройств
- Запретите установку устройств с драйверами, соответствующими этим классам настроек устройств
- Предотвращение установки съемных устройств
- Запрет установки устройств, не описанных другими параметрами политики
Windows не может установить драйвер контроллера автоматически, если эти политики включены.
В этом случае вам потребуется:
- Загрузите компьютер с загрузочного носителя и загрузите программу
\Windows\System32\config\SYSTEM
ветвь реестра с локального диска (как описано выше); - Затем перейдите к следующему ключу реестра
HKEY_LOCAL_MACHINE\local_hkey\System\ControlSet001\Control\Pn
P - Измените DisableCDDB и DontStartRawDevices значения реестра для
0
- Выгрузите ветку реестра и перезагрузите компьютер.