WDS / PXE Boot: Ошибка 0xc0000098 при сетевой загрузке — решение
Симптомы ошибки 0xc0000098 при сетевом старте
Клиентская машина успешно получает IP-адрес по DHCP и загружает сетевой загрузчик NBP (pxeboot.com или wdsmgfw.efi), однако на этапе инициализации среды среды WinPE экран прерывается сообщением: File: \Tmp\x86{GUID}.bcd (или \Boot\BCD). Status: 0xc0000098. Info: The Windows Boot Configuration Data file does not contain a valid OS entry.
| Сетевой протокол | Файл | Суть сбоя |
|---|---|---|
| TFTP Download | \Tmp\*.bcd | Клиент не смог прочесть BCD файл или сервер отдал пустой/нулевой файл конфигурации |
| UEFI PXE | wdsmgfw.efi | Сгенерированное хранилище BCD не содержит сигнатуры x64 UEFI bootmgr |
Инструкция по восстановлению файлов BCD на сервере WDS
- Очистите кэш временных BCD-файлов WDS: остановите службу развертывания и удалите сгенерированные файлы сессий:
Stop-Service -Name WDSServer Remove-Item "C:\RemoteInstall\Tmp\*" -Recurse -Force Start-Service -Name WDSServer - Восстановите архитектурные BCD-файлы по умолчанию из дистрибутива: если оригинальные файлы BCD повреждены, скопируйте эталонные файлы с установочного ISO-образа Windows Server:
wdsutil /Uninitialize-Server wdsutil /Initialize-Server /REMINST:"C:\RemoteInstall" - Увеличьте размер окна TFTP (Maximum Block Size): сетевые карты с багами прошивки UEFI теряют пакеты при большом размере MTU, что ломает целостность BCD:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSTFTP" -Name "MaximumBlockSize" -Value 1456 -Type DWord -Force Restart-Service -Name WDSServer -Force - Проверьте разграничение опций DHCP 66/67: если сервер WDS и DHCP находятся на разных серверах, удалите ручные опции 66 и 67 из DHCP scope и настройте IP Helpers (DHCP Relay) на маршрутизаторе.
Внимание: Если WDS установлен на один хост с контроллером домена и DHCP-сервером, в свойствах сервера WDS на вкладке DHCP обязательно установите флаги: «Не прослушивать порт 67» и «Настроить параметры DHCP для PXE (опция 60)».
Частые вопросы (FAQ)
Что означает статус 0xc0000098?
STATUS_FILE_INVALID — повреждение файла конфигурации или отсутствие валидной конфигурационной записи об объекте загрузки в хранилище BCD.
Почему UEFI клиенты выдают 0xc0000098, а Legacy BIOS грузятся нормально?
Для Legacy загрузки используется архитектурный путь \boot\x86\pxeboot.com, а для UEFI — \boot\x64\wdsmgfw.efi. Если образ WinPE x64 поврежден, UEFI не сможет сформировать BCD.
Как пересоздать BCD файл для WDS вручную?
Используйте утилиту bcdedit.exe с параметром /store C:\RemoteInstall\Boot\x64\default.bcd для проверки наличия записей winload.efi.
Влияет ли антивирус на сервере WDS на выдачу BCD?
Да, мониторинг файловой активности часто блокирует папку RemoteInstall\Tmp, мешая TFTP-демону оперативно отдавать клиентам временный BCD.