Сегодня у нас разговор пойдёт о категории ошибок сетевой загрузки через среду PXE в рабочем окружении System Center Configuration Manager. В процессе загрузки по сети, с целью развертывания ОС, загрузчик из PXE ROM сетевой карты, посредством DHCP находит локальный [первичный или вторичный] SCCM-сервер с ролью Точка распространения. WDS-провайдер SMSPXE по TFTP отдаёт соответствующий модуль (в сценарии PXE EFI-загрузки используется wdsmgfw.efi), который в процессе выполнения ведёт себя довольно нехарактерным образом:
..на экран выводятся надписи "Windows Deployment Services .. contacting Server XXX.XXX.XXX.XXX", долгое время меняется индикатор загрузки (вращающийся слеш), но ничего не происходит и через несколько минут загрузка прерывается с PXE ошибкой 0x102 (иногда C0000001): Windows Deployment Services encountered an error: Error Code: 0x102, трактуемой как "The wait operation timed out". При этом, некоторые разновидности PXE ошибки 0x102, в зависимости от причины, в лог-файле SMSPXE.log на первичном/вторичном SCCM-сервере (путь C:\Program Files\Microsoft Configuration Manager\Logs), могут проявляться следующими записями:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
. . . D4:85:64:BD:4C:DB, 28B4F0A6-5907-11DF-BBDA-64BD4CDBD485: Device is in the database. ============> REQUEST Reply to client ([000.000.000.000:68]) Len:348] Operation: BootReply (2) Addr type: 1 Addr Len: 6 Hop Count: 0 ID: 3977BACC Sec Since Boot: 65535 Client IP: 000.000.000.000 Your IP: 000.000.000.000 Server IP: 000.000.000.000 Relay Agent IP: 000.000.000.000 Addr: d4:85:64:bd:4c:db: BootFile: smsboot\x86\wdsnbp.com . . . Prioritizing local MP https://xxx.xxxx.xxx. Using Management Point: https://xxx.xxxx.xxx SSL, using authenticator in request. In SSL, but with no client cert. Request using architecture 9. SSL, using authenticator in request. In SSL, but with no client cert. Client boot action reply: Request retry. SSL, using authenticator in request. In SSL, but with no client cert. Client boot action reply: D4:85:64:BD:4C:DB, 28B4F0A6-5907-11DF-BBDA-64BD4CDBD485: no advertisements found . . . |
Запись Device is in the database указывает на то, что устройство (компьютер) уже содержится в базе Configuration Manager, но при этом не имеет никаких ассоциированных с этой станцией политик (об этом говорит запись no advertisements found). Это, по сути, и является причиной ошибки, поскольку не имеет смысла продолжать сетевую загрузку [для этой станции], если с ней не ассоциировано ни одной политики и не известно, что же с ней делать. Если вы попытаетесь найти станцию в консоли администрирования Configuration Manager (через поиск по MAC-адресу), то она либо не видна (не обнаруживается поиском), либо отображается под совершенно несоответствующим ("левым") именем, принадлежащем какой-нибудь "старой" станции/серверу. Простое удаление "дублирующейся" записи объекта [компьютера] из базы SCCM проблему не решает, а лишь временно её устраняет.
Причина 1: дублирование UUID
При загрузке через среду PXE с SCCM-сервера, клиент отправляет на сервер пакет, содержащий собственные SMBIOS GUID [компьютера] и MAC-адрес [сетевого адаптера].
ConfigMgr проверяет обращающийся по сети компьютер на предмет сопоставленной с ним Последовательности задач: проходит по записям базы данных и сперва ищет соответствие с SMBIOS GUID компьютера, а в случае отсутствия совпадений - проверяет по MAC-адресу. Если какой-либо из идентификаторов [уже] имеется в базе, то компьютер не считается Неизвестным (Unknown). Вот на этом то этапе может возникнуть следующая проблема:
Соответственно, если несколько ПК имеют одинаковый SMBIOS GUID в рабочем окружении SCCM, то в процессе сетевой загрузки [этих компьютеров] и поиска сопоставленной Последовательности задач, ConfigMgr может найти совершенно "левую" запись компьютера, отличную от той, для которой эта последовательность задач предназначена. Ко всему прочему, если обнаруженная последовательность задач не ассоциирована с найденным ПК, возвращается статус об отсутствии доступных последовательностей задач (что мы и наблюдаем в логах выше). В результате всего этого возникает ошибка SCCM PXE 0x102. Из этого следует, что проблема с уникализацией встречается в ситуации, когда:
- на множестве станций [для загрузки по сети] используется один и тот же USB сетевой адаптер (возникает дублирование MAC-адреса);
- производитель устройства использует один и тот же UUID на целой серии/партии устройств (возникает дублирование UUID).
в обеих случаях SCCM считает эти устройства одним и компьютер имеет несколько сценариев загрузки:
- не находит Последовательность задач (Task Sequence) на сервере SCCM и встает с PXE ошибкой 0x102;
- получает Последовательность задач (Task Sequence) с сервера, но все эти устройства [с дублированным SMBIOS GUID] перезаливаются под одним и тем же именем, представляясь в базе SCCM одним-единственным устройством и постоянно обновляют учетную запись [компьютера] в AD.
Решение 1.1: исключение UUID
Добавляем повторяющийся идентификатор SMBIOS GUID в исключения:
- Запускаем консоль Configuration Manager;
- Идем по пути \Администрирование\Обзор\Конфигурация сайта\Сайты. Выделяем первичный сайт - на панели быстрого доступа жмем кнопку Параметры иерархии:
- Откровется окно настроек. Выбираем вкладку Утверждение клиентов и конфликтующие записи:
- В разделе Повторяющиеся идентификаторы оборудования добавляем задублировавшиеся идентификаторы SMBIOS GUID (UUID) или MAC-адреса. При этом, UUID в лог-файле SMSPXE.log представлен в некорректном формате, возьмите его из BIOS/UEFI.
Решение 1.2: ручной импорт проблемной станции
Если у вас нет большой партии устройств с дублированным UUID, ситуация единичная, и обнаруженное когда-то устройство уже не участвует в структуре SCCM, то можно поступить так:
- Запускаем консоль Configuration Manager;
- Идём по пути \Активы и соответствие\Обзор\Устройства, ПКМ на Устройства - выбираем пункт Импортировать сведения о компьютерах;
- В открывшемся окне выбираем чек-бокс Импортировать один компьютер - жмем Далее. На следующем экране Задаем параметры: Имя компьютера, MAC-адрес (берем из файла SMSPXE.log), SMBIOS GUID (берем из BIOS/UEFI компьютера). Жмем Далее и завершаем процедуру импорта;
- Скорее всего вновь импортированное устройство задублируется в базе данных SCCM с другой, уже имеющейся в базе станцией.
- Выполнить сетевую загрузку через PXE.
Решение 1.3: смена UUID
К решению можно подойти с другой стороны. Вроде как имеется способ смены UUID на материнских платах с биосом от AMI. Подробности тут: Смена UUID.
Причина 2: для загрузочного образа не включен PXE
Иногда ни один из добавленных в рабочее окружение SCCM загрузочных образов (образов загрузки, Boot Image) не маркирован для распространения через срезу PXE. В этом случае, Configuration Manager останавливает загрузку с ошибкой PXE 0x102.
Решение 2: включение PXE для образа загрузки
- Запускаем консоль Configuration Manager;
- Идём по пути \Библиотека программного обеспечения\Обзор\Операционные системы\Загрузочные образы, во фрейме справа видим наши загрузочные образы;
- Теперь проверим, что хотя бы один образ назначен для загрузки по PXE. Для этого открываем свойства образа:
- Переходим во вкладку Источник данных и включаем чек-бокс "Раз. загрузочный образ из точки распр. поддерживающей PXE";
- Повторяем описанную процедуру для каждого образа, который задан в каких-либо Последовательностях задач;
Причина 3: для последовательности задач не выбран загрузочный образ
Иногда причина PXE-ошибки 0x102 кроется в том, что для определенных последовательностей задач не назначены образы загрузки (загрузочные образы). Та или иная станция может [автоматически] попадать в коллекцию, на которую развернута последовательность задач, для которой не задан загрузочный образ.
Решение 3: назначение образа загрузки на последовательность задач
- Запускаем консоль Configuration Manager;
- Идём по пути \Библиотека программного обеспечения\Обзор\Операционные системы\Последовательности задач, в правом фрейме видим список последовательностей задач;
- В идеале, для каждой сконфигурированной в нашей рабочем окружении SCCM последовательности задач должен быть задан загрузочный образ;
- Для этого выделяем последовательность задач, заходим в свойства (ПКМ на имени последовательности-Свойства), откроется окно:
- перемещаемся во вкладку Дополнительно, включаем опцию Использовать загрузочный образ, жмем кнопку Обзор и выбираем нужный образ;
- [заодно] проверьте, развернуты ли все последовательности задач на все [необходимые] коллекции. Переразверните последовательности задач, для которых только что были заданы загрузочные образы, на те же коллекции.
Причина 4: дублирование объекта компьютера в базе
Время от времени наблюдал ситуации, когда ошибка PXE 0x102 была связана с дублированием записи компьютера (имя, MAC-адрес и прч.) в базе ConfigMgr.
Решение 4: удаление старых/дублирующихся записей компьютеров
- Запускаем консоль Configuration Manager;
- Идём по пути \Активы и соответствие\Обзор\Устройства;
- Справа от строки поиска - выпадающее меню Добавить условие. Помечаем чек-бокс MAC-адрес и жмем кнопку Добавить;
- Под [основной] строкой поиска появляется еще одно поле, вводим туда MAC-адрес [проблемной] станции (в формате XX:XX:XX:XX:XX:XX), которая не грузится и дает ошибку 0x102 при загрузке через PXE. Жмем кнопку Поиск справа;
- В основном фрейме результатов поиска (расположенном ниже), если у нас нашлась запись объекта компьютера в базе, либо нашлось несколько записей [компьютера], то удаляем все найденные записи;
Причина 5: Некорректная работа WDS/SMSPXE
Иногда ошибка 0x102 может быть вызвана проблемами с WDS-сервером, который управляется Configuration Manager.
Решение 5: перезапуск WDS-сервера
- Запускаем Server Manager;
- В левом фрейме выбираем пункт WDS;
- В правом фрейме ПКМ на нашем сервере - выбираем Windows Deployment Service Management Console.
- В открывшемся окне разворачиваем дерево Servers - ПКМ на нашем сервере - из меню выбираем All Tasks - далее Restart.
- Ждем окончания процесса перезапуска.