Ошибка 0x102 при загрузке через PXE с SCCM

Метки:  , , , , , , , , , ,

Сегодня у нас разговор пойдёт о категории ошибок сетевой загрузки через среду PXE в рабочем окружении System Center Configuration Manager. В процессе загрузки по сети, с целью развертывания ОС, загрузчик из PXE ROM сетевой карты, посредством DHCP находит локальный [первичный или вторичный] SCCM-сервер с ролью Точка распространения. WDS-провайдер SMSPXE по TFTP отдаёт соответствующий модуль (в сценарии PXE EFI-загрузки используется wdsmgfw.efi), который в процессе выполнения ведёт себя довольно нехарактерным образом:

contacting server C0000001

..на экран выводятся надписи "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), могут проявляться следующими записями:

Запись Device is in the database указывает на то, что устройство (компьютер) уже содержится в базе Configuration Manager, но при этом не имеет никаких ассоциированных с этой станцией политик (об этом говорит запись no advertisements found). Это, по сути, и является причиной ошибки, поскольку не имеет смысла продолжать сетевую загрузку [для этой станции], если с ней не ассоциировано ни одной политики и не известно, что же с ней делать. Если вы попытаетесь найти станцию в консоли администрирования Configuration Manager (через поиск по MAC-адресу), то она либо не видна (не обнаруживается поиском), либо отображается под совершенно несоответствующим ("левым") именем, принадлежащем какой-нибудь "старой" станции/серверу. Простое удаление "дублирующейся" записи объекта [компьютера] из базы SCCM проблему не решает, а лишь временно её устраняет.

Причина 1: дублирование UUID

При загрузке через среду PXE с SCCM-сервера, клиент отправляет на сервер пакет, содержащий собственные SMBIOS GUID [компьютера] и MAC-адрес [сетевого адаптера].

Configuration Manager использует значения параметров SMBIOS GUID и MAC-адреса для [однозначной] идентификации и уникализации компьютеров в рабочем окружении SCCM. SMBIOS GUID (он же UUID, или универсальный уникальный ID) представляет собой идентификатор, зашитый в BIOS/UEFI и обладающий уникальностью!!

ConfigMgr проверяет обращающийся по сети компьютер на предмет сопоставленной с ним Последовательности задач: проходит по записям базы данных и сперва ищет соответствие с SMBIOS GUID компьютера, а в случае отсутствия совпадений - проверяет по MAC-адресу. Если какой-либо из идентификаторов [уже] имеется в базе, то компьютер не считается Неизвестным (Unknown). Вот на этом то этапе может возникнуть следующая проблема:

Иногда у нескольких устройств оказывается одинаковый SMBIOS GUID. Причина заключается в том, что некоторые производители, вместо того, чтобы давать устройствам уникальные GUID, на всей партии/серии компьютеров прошивают одинаковый. Ранее я уже встречался с единичными случаями, но массово столкнулся с дублированием идентификаторов на отечественных ноутбуках одной небезызвестной компании, где во всей партии был зашит один и тот же SMBIOS GUID.

Соответственно, если несколько ПК имеют одинаковый 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;
  • Идем по пути \Администрирование\Обзор\Конфигурация сайта\Сайты. Выделяем первичный сайт - на панели быстрого доступа жмем кнопку Параметры иерархии:
    sccm primary site hierarchy settings
  • Откровется окно настроек. Выбираем вкладку Утверждение клиентов и конфликтующие записи:
    sccm add smbios guid
  • В разделе Повторяющиеся идентификаторы оборудования добавляем задублировавшиеся идентификаторы 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 для образа загрузки
  • Переходим во вкладку Источник данных и включаем чек-бокс "Раз. загрузочный образ из точки распр. поддерживающей PXE";
  • Повторяем описанную процедуру для каждого образа, который задан в каких-либо Последовательностях задач;

Причина 3: для последовательности задач не выбран загрузочный образ

Иногда причина PXE-ошибки 0x102 кроется в том, что для определенных последовательностей задач не назначены образы загрузки (загрузочные образы). Та или иная станция может [автоматически] попадать в коллекцию, на которую развернута последовательность задач, для которой не задан загрузочный образ.

Решение 3: назначение образа загрузки на последовательность задач

  • Запускаем консоль Configuration Manager;
  • Идём по пути \Библиотека программного обеспечения\Обзор\Операционные системы\Последовательности задач, в правом фрейме видим список последовательностей задач;
  • В идеале, для каждой сконфигурированной в нашей рабочем окружении SCCM последовательности задач должен быть задан загрузочный образ;
  • Для этого выделяем последовательность задач, заходим в свойства (ПКМ на имени последовательности-Свойства), откроется окно:
    sccm use boot image
  • перемещаемся во вкладку Дополнительно, включаем опцию Использовать загрузочный образ, жмем кнопку Обзор и выбираем нужный образ;
  • [заодно] проверьте, развернуты ли все последовательности задач на все [необходимые] коллекции. Переразверните последовательности задач, для которых только что были заданы загрузочные образы, на те же коллекции.

Причина 4: дублирование объекта компьютера в базе

Время от времени наблюдал ситуации, когда ошибка PXE 0x102 была связана с дублированием записи компьютера (имя, MAC-адрес и прч.) в базе ConfigMgr.

Решение 4: удаление дублирующихся записей компьютеров

  • Запускаем консоль Configuration Manager;
  • Идём по пути \Активы и соответствие\Обзор\Устройства;
  • Справа от строки поиска - выпадающее меню Добавить условие. Помечаем чек-бокс MAC-адрес и жмем кнопку Добавить;
  • Под [основной] стокой поиска появляется еще одно поле, вводим туда MAC-адрес станции, которая не грузится и дает ошибку 0x102 при загрузке через PXE. Жмем кнопку Поиск справа;
  • В результатах поиска, во фрейме ниже, если у нас нашлось более одной станции, то удаляем все найденные записи;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *