Категории: Сети и серверы

Типовые ошибки при установке Windows через SCCM

В этой статье мы расскажем, как легко и эффективно траблшутить установку Windows, выполняемую через System Center Configuration Manager (SCCM) или  с помощью MDT.

Итак, мы рассматриваем ситуацию, когда выполняется task sequence, запущенный с SCCM сервера или из MDT, интегрированной с WDS. Существенной разницы нет, ведь exit коды фактически у них одинаковые для стандартных типовых шагов. также соверщенно не важно, загружали ли вы клиента с PXE или через Boot media (загрузочную срезу на USB или DVD), главное, чтобы вы попали в среду Windows PE и могли там выбрать нужный task sequence.

Exit win32 codes — коды ошибок в task sequence

Итак, представим себе, что вы успешно запустили task sequence и через некотрое время получили окно с кодом ошибки. Вот типовые коды:

0x80070070 — «There is not enough space on the disk.» На диске нет достаточно места. Такое встречается, когда диск не обнаружен или не является disk 0 на SATA контроллере (нельзя установить ОС на disk 1 и т.д.) или когда в компьютер вставлены другие носители (флэшки, внешние диски). Также такое встречается, когда структура разделов на диске не соотвествует утанавливаемой ОС: например, диск разбит в MBR, а вы ставите в GPT.  Это типовая ситуация, когда вы устанавливаете Windows 10 в UEFI (со структурой разделов GPT) после того, как на этом диске стояла Windows 7 в Legacy mode (структура разделов MBR). И самый последний возможный случай — когда на диске есть скрытые или зашифрованные разделы (например с помощью Bitlocker). Во всех случаях диск необходимо очистить от разделов с помощью утилиты diskpart.
Очистка выполняется следующими командами в окне cmd:

diskpart
select disk 0
clean
exit

0x80070490 — «Invalid disk number specified». «System partition is not defined». Failed to identify HDD, failed to identify existing partitions on the HDD, failed to find driver for PCI\VEN device. Типовая ошибка, когда Windows PE не может определить наличие диска на контроллере, разделов на нем, часто в случае неправильной настройки в BIOS или в следствие того, что ваш загрузочный образ Windows PE просто не содержит нужных драйверов для вашего контроллера диска. Напомню, что необходимо добавлять драйвера контроллеров в загрузочный образ через утилиту DISM, когда вы переходите с одной платформы на другую.

0x80070032 — «The active system partition on a MBR system must be NTFS». Существующая файловая система или разбиение диска не NTFS. Диск необходимо очистить от разделов с помощью утилиты diskpart.

0x80070570 — «An error occurred while starting task sequence». «The file or directory is corrupted and unreadable.» Эта ошибка может как означать повреждение самого диска или файловой системы, так и исходных файлов пакетов, которые вы ставите на диск. Также эта ошибка встречается, когда компьютер некорректно выключен и Windows хочет проверить диск на ошибки при следующей загрузке.

0x80070057 — «Format failed». Утилита для форматирования диска. встроенная в MDT, не может отформатировать диск. Чаще всего из-за того, что диск не определяется или не подключен как disk 0 в системе.

0x80070002 — «The system cannot find the file specified». Если установка происходит с SCCM, то это означает, что пакет не удалось успешно скачать с сервера, в остальных случаях — в пакете установки программы используется неверный путь или отсуствуют какие-то файлы.

0x80004005 — «An error occurred while retrieving policy for this computer». Эта ошибка может иметь за собой массу различных причин, потому что 4005 — это generic code, означающий, что операция не может быть выполнена. Но если она встречается в самом начале до выбора task sequence для исполнения и сопровожается текстом ошибки «An error occurred while retrieving policy for this computer», то это происходит, когда клиент не может получить список task sequence с SCCM сервера. Причина тому — неправильное время, установленное на клиете или сетевая ошибка. Также, это может быть следствием того, что сертификат в загрузочном образе (boot image) и сертификат на Management point сервере SCCM  отличаются.
Поясню механизм, как это работает. Ваш загрузочный образ должен содержать всю неободимую информацию для подключения к серверам SCCM (прописывается в конфигурационном файле MDT). Затем, при загрузке Windows PE исполняется необходимая последовательность команд, в частности подключение к Management Point, откуда клиент должен забрать список доступных Task sequences. В этот момент ко всему прочему проверяется время на клиенте и на сервере, если они отличаются, сервер ответит отказом. Равно как и в случае неподходящего сертификата.

В остальных случаях 0x80004005 просто означает неудачное выполнение операции. Чтобы узнать детали, что именно было не выполенно, необходимо изучать логи SCCM.

Как собирать логи SCCM / MDT

 MDT создает следующие лог-файлы:

  • BDD.log. Это файл-агрегатор, который содержит результаты основных шагов task sequence.
  • dism.log — лог, создаваемый командой DISM, когда та используется для конфигурирования установленной Windows (в первую очередь при unattended установке драйверов)
  • LiteTouch.log. Этот файл создается, если вы используете LTI деплойменты. По умолчанию располагается в %WINDIR%\TEMP\DeploymentLogs.
  • NetSetup.LOG — файл содержит сетевую информация о добавлении компьютера в домен.
  • Scriptname.log. Такие файлы создаются каждым MDT скриптом согласно его имени.
  • SMSTS.log. Это главный файл. создаваемый самим секвенсором (исполнителем Task sequence). Этот файл описывает все шаги Task sequence, по окончании каждого шага выводит exit win32 code, с которым он завершился. По умолчанию, этот файл имеет размер 2 Мбайт. Если общий размер лога превышает этот размер, то создается второй, третий и т.д. файлы, начинающиеся на smsts*. Файл может располагаться в %TEMP%, %WINDIR%\System32\ccm\logs, or C:\_SMSTaskSequence, or C:\SMSTSLog в зависимости от типа установки (MDT, SCCM, с SCCM килентом или без) и от этапа, на котром сейчас находится установка ОС.
  • Wizard.log. Мастер установки MDT создает этот файл.
  • WPEinit.log. Этот файл создается Windows PE при его инициализации и полезен при траблшутинге самого Windows PE.
  • zticonfigure.log — содержит информацию о конфигурировании кастомных настроек Windows, которые вы указали в конфигурации MDT (чаще всего это региональная локализация). Создается при ZTI деплойментах с SCCM.
  • ztigroups.log — содержит информацию о добавлении групп в локальные администраторы на компьютере, если таковые были указаны в настройках MDT. Создается при ZTI деплойментах с SCCM.

В конце выполнения task sequence все логи копируются в папку, указанную в свойстве  SLShare файле настроек MDT Customsettings.ini file. Если вы указали сетевой путь, то сетевой ресурс должен быть доступен для этого.

Дополнительно, сама Windows создает два полезных файла в папке C:\Windows\Panther\UnattendGCsetupact.log и setuperr.log. С помощью них вы можете найти ошибки во время конфигурирования Windows и добавления компьютера в домен.

Расположение логов меняется в зависимости от того, какой тип установки вы используете (LTI, ZTI, с SCCM или без). Но в общем случае порядок их поиска таков:

  1. На стадии начала работы Windows PE до запуска task sequence логи находятся в X:\windows\temp\smstslog
  2. После запуска task sequence в Windows PE, во время форматирования диска и прочих сервисных операций Windows PE  — в X:\MININT\SMSOSD\OSDLOGS
  3. После форматирования диска и во время применения образа на диск — на локальном диске C: или D: (в зависимости от того, как вы форматировали диск): C:\_SMSTaskSequence\Logs и C:\SMSTSLog
  4. После установки SCCM клиента, если такая есть в вашем task sequence логи будут сохраняться в C:\Windows\CCM\Logs, потому что с этого момента SCCM клиент управляет установкой программ.
  5. В папке %WINDIR%\TEMP\DeploymentLogs будут храниться логи, если вы использовали LTI установку через MDT без SCCM.

Чем читать логи

Программой Cmtrace. Она вохдит в состав пакет System Center 2012 R2 Configuration Manager Toolkit в виде самостоятельной утилиты. Я рекомендую встроить ее в ваш загрузочный образ. Чтобы прочитать логи в Windows PE, нажмите F8, появится окно cmd, где вы можете или вызвать cmtrace или explorer.

[Посещений: 7 292, из них сегодня: 1]

Свежие посты

Процессы зомби, демоны и сироты в Linux

Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…

12 октября 2024

Изучаем сертификаты, приватные ключи и keystore

Существует большое разнообразие форматов, в которых создаются сертификаты и приватные ключи для них. Часто они…

20 июля 2024

Восстановление доступа к Docker Hub

Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ.…

30 мая 2024

Как посмотреть сертификат хоста через командную строку

Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…

21 февраля 2024

Использование choco через прокси

Choco - лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси,…

21 февраля 2024

Обзор SSD диска XrayDisk

В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…

3 декабря 2023