POST-коды BIOS материнских плат Supermicro: полное руководство по диагностике
Когда сервер отказывается загружаться, а на экране монитора — пустота, и даже звуковые сигналы не дают полной картины, на помощь приходят POST-коды. Это «язык» BIOS/UEFI, на котором он общается с инженером, сообщая о прохождении каждого этапа самотестирования. Умение читать эти коды — ключевой навык для глубокой диагностики серверного оборудования.
В этом материале мы даём исчерпывающее справочное руководство по POST-кодам для материнских плат Supermicro, основанное на прошивках AMI (American Megatrends, Inc.), которые используются в подавляющем большинстве современных серверов этого бренда. Вы узнаете, как получить эти коды, расшифровать их и быстро определить неисправный компонент, от процессора до устройств на шине PCIe.
1. Что такое POST-коды и зачем они нужны?
POST (Power-On Self-Test) — это процедура самодиагностики, которую система выполняет при каждом включении. В ходе этой процедуры BIOS/UEFI инициализирует процессор, чипсет, память, видеоадаптер и другие критически важные компоненты. Каждый успешно пройденный этап сопровождается записью определённого шестнадцатеричного кода (checkpoint) в специальный порт ввода-вывода — порт 80h.
Если система зависает на каком-то из этапов, в порту 80h «застывает» последний успешно записанный код. Именно этот код и является ключом к разгадке — он указывает на компонент или подсистему, на котором произошёл сбой. Таким образом, POST-коды позволяют локализовать проблему, даже когда нет изображения на экране, а стандартные звуковые сигналы отсутствуют или неинформативны.
2. Как получить POST-коды на серверах Supermicro
Существует три основных способа считать POST-коды с материнской платы Supermicro. Выбор метода зависит от ваших возможностей и доступного оборудования.
2.1. Встроенные POST-кодовые LED-индикаторы
Многие серверные материнские платы Supermicro оснащены встроенными светодиодными индикаторами для отображения POST-кодов. Они могут выглядеть как два отдельных LED-диода (например, LE4 и LE5) или как группа из восьми светодиодов, формирующих двоичное значение. Расшифровка таких индикаторов обычно подробно описана в Руководстве пользователя к конкретной материнской плате в разделе «Onboard Indicators» или «POST Code LEDs». Как правило, комбинации зелёного и жёлтого свечений этих LED-индикаторов и формируют код, который затем можно сверить с таблицей ниже.
Где искать: Расположение индикаторов варьируется от платы к плате, но часто их можно найти рядом с портами SATA, на задней панели ввода-вывода или возле слота IPMI.
2.2. Внешняя POST-диагностическая карта (порт 80h)
Это самый универсальный и надёжный метод. Большинство материнских плат Supermicro имеют специальный разъём для подключения диагностической карты, которая отображает POST-код на собственном семисегментном индикаторе. Обычно это 4-контактный разъём с ключом, часто подписанный как JPI2C1, JPME1 или JWD1. Производитель также предлагает собственную карту с артикулом AOC-LPC80-20. При подключении такой карты вы будете видеть реальный POST-код в реальном времени.
2.3. Удалённый доступ через IPMI (Post Snooping)
Это самый удобный способ для удалённого администрирования. Встроенный модуль IPMI (BMC) современных плат Supermicro может «прослушивать» порт 80h и отображать POST-коды в своём веб-интерфейсе. Функция называется «Post Snooping» и позволяет видеть POST-коды удалённо, даже если основная система не загружена.
Команда для получения POST-кода через ipmitool:
ipmitool raw 0x30 0x2a
Также в BIOS-разделе «Boot» может быть доступна опция «PORT 80h Post Snoop», которую необходимо явно включить.
3. Звуковые сигналы (Beep Codes) AMI BIOS
Перед тем как погружаться в детали POST-кодов, стоит убедиться, что проблема не кроется в базовых компонентах. Звуковые сигналы — это первая линия обороны. В таблице ниже приведены основные звуковые коды для BIOS/UEFI AMI.
+-------------------------------+--------------------------------------------------+
| Звуковой код | Описание ошибки |
+-------------------------------+--------------------------------------------------+
| 1 короткий | POST успешно пройден, система загружается |
| 2 коротких | Ошибка четности памяти (Non-fatal) |
| 3 коротких | Ошибка базовой памяти (первые 64 КБ) |
| 4 коротких | Неисправность системного таймера |
| 5 коротких | Ошибка процессора |
| 6 коротких | Ошибка контроллера клавиатуры 8042 |
| 7 коротких | Ошибка исключений виртуального режима процессора|
| 8 коротких | Ошибка видеопамяти (read/write) |
| 9 коротких | Ошибка контрольной суммы ROM BIOS |
| 10 коротких | Ошибка чтения/записи CMOS |
| 11 коротких | Ошибка кэш-памяти второго уровня (L2) |
| 1 длинный, 1 короткий | Ошибка блока питания или материнской платы |
| 1 длинный, 2 коротких | Ошибка видеокарты (не обнаружен видеоконтроллер)|
| 1 длинный, 3 коротких | Ошибка контроллера клавиатуры/мыши |
| 1 длинный, 4 коротких | Ошибка встроенной видеокарты |
| Непрерывный длинный | Перегрев (Overheat) или неисправность вентилятора|
+-------------------------------+--------------------------------------------------+
4. Полный справочник POST-кодов AMI BIOS (порт 80h)
Все коды разделены по фазам загрузки UEFI: SEC (Security) — самая ранняя инициализация, PEI (Pre-EFI Initialization) — инициализация процессора и памяти, DXE (Driver Execution Environment) — инициализация чипсета и устройств, BDS (Boot Device Selection) — выбор загрузочного устройства и запуск ОС.
4.1. Фаза SEC (коды 0x00 – 0x0F)
+--------+--------------------------------------------------------------+
| Код | Описание |
+--------+--------------------------------------------------------------+
| 0x00 | Запуск SEC фазы. |
| 0x01 | Переход в защищённый режим (Protected Mode). |
| 0x02 | Проверка контрольной суммы образа BIOS. |
| 0x03 | Начало восстановления (Recovery) при повреждении BIOS. |
| 0x04 | Найден действительный образ для восстановления. |
| 0x05 | Ошибка при восстановлении (некорректный образ). |
| 0x06 | Восстановление успешно завершено, передача управления PEI. |
| 0x07 | Ошибка перехода в защищённый режим. |
| 0x08 | Инициализация временной памяти (Cache-as-RAM). |
| 0x09 | Передача управления в ядро PEI. |
| 0x0A | Ошибка инициализации временной памяти. |
| 0x0B | Останов (Halt) из-за критической ошибки. |
| 0x0C – 0x0F | Зарезервированы. |
+--------+--------------------------------------------------------------+
4.2. Фаза PEI — инициализация CPU и памяти (коды 0x10 – 0x4F)
+--------+--------------------------------------------------------------+
| Код | Описание |
+--------+--------------------------------------------------------------+
| 0x10 | Начало PEI фазы. |
| 0x11 | Инициализация корневого стека (Root Stack). |
| 0x12 | Инициализация сервисов временной памяти. |
| 0x13 | Начало инициализации процессора. |
| 0x14 | Проверка микрокода CPU (Microcode). |
| 0x15 | Настройка частоты и напряжения процессора. |
| 0x16 | Инициализация кэш-памяти L1/L2/L3. |
| 0x17 | Начало обнаружения процессоров (APIC/SMP). |
| 0x18 | Инициализация чипсета (ранние шаги). |
| 0x19 | Настройка MTRR (Memory Type Range Registers). |
| 0x1A | Включение кэширования для исполняемой области. |
| 0x1B | Ожидание готовности всех процессоров (BSP/AP). |
| 0x1C – 0x1F | Зарезервированы. |
| 0x20 | Начало инициализации контроллера памяти (Memory Controller). |
| 0x21 | Обнаружение модулей памяти (SPD чтение). |
| 0x22 | Настройка таймингов DRAM (CL, tRCD, tRP, tRAS). |
| 0x23 | Калибровка шины памяти (Memory Bus). |
| 0x24 | Инициализация ранжирования (Rank) и банков памяти. |
| 0x25 | Включение регенерации (Refresh) DRAM. |
| 0x26 | Выполнение инициализации памяти (Memory Initialization). |
| 0x27 | Проверка целостности первых 64 КБ памяти. |
| 0x28 | Полная проверка памяти (Memory Test, если включено). |
| 0x29 | Ошибка размера DRAM (память не обнаружена). |
| 0x2A | Ошибка линии данных памяти (Data Line Failure). |
| 0x2B | Ошибка линии адреса памяти (Address Line Failure). |
| 0x2C | Ошибка проверки памяти (Memory Test Fail). |
| 0x2D | Инициализация памяти завершена, запуск NEM (Non-Existent Mem).|
| 0x2E – 0x3F | Зарезервированы. |
| 0x40 | Переход из PEI в DXE (Handoff Block). |
| 0x41 | Построение таблицы HOB (Hand-Off Block). |
| 0x42 | Подготовка временного RAM диска для DXE. |
| 0x43 – 0x4F | Зарезервированы. |
+--------+--------------------------------------------------------------+
4.3. Фаза DXE — инициализация устройств (коды 0x50 – 0x9F)
+--------+--------------------------------------------------------------+
| Код | Описание |
+--------+--------------------------------------------------------------+
| 0x50 | Начало DXE фазы. |
| 0x51 | Инициализация диспетчера загрузки образов (Image Loader). |
| 0x52 | Начало загрузки драйверов DXE из FV (Firmware Volume). |
| 0x53 | Инициализация сервисов времени выполнения (Runtime Services).|
| 0x54 | Инициализация консоли вывода (Console Output). |
| 0x55 | Инициализация контроллера прерываний (PIC/APIC). |
| 0x56 | Инициализация системного таймера (Local APIC Timer). |
| 0x57 | Подключение устройств к консоли ввода/вывода. |
| 0x58 | Инициалиция USB контроллера (хоста). |
| 0x59 | Инициалиция SATA/AHCI контроллера. |
| 0x5A | Инициалиция PCI Express корневых портов (Root Ports). |
| 0x5B | Назначение ресурсов PCI (Bus, Memory, IO). |
| 0x5C | Инициализация опций Legacy (COM, LPT, PS/2). |
| 0x5D | Инициализация Secure Boot и криптографических сервисов. |
| 0x5E | Построение ACPI таблиц (DSDT, SSDT). |
| 0x5F | Загрузка и выполнение Option ROM PCI устройств. |
| 0x60 | Произошла ошибка при загрузке драйвера (Driver Load Error). |
| 0x61 | Не найден образ UEFI драйвера. |
| 0x62 | Ошибка подключения устройства к консоли. |
| 0x63 | Ошибка инициализации USB. |
| 0x64 | Ошибка инициализации SATA. |
| 0x65 | Ошибка выделения ресурсов PCI. |
| 0x66 | Ошибка инициализации Legacy опций. |
| 0x67 | Недостаточно памяти для загрузки Option ROM. |
| 0x68 – 0x7F | Зарезервированы. |
| 0x80 | Ожидание готовности устройств (Stall/Check). |
| 0x81 | Инициализация графического вывода (GOP — Graphics Output). |
| 0x82 | Инициализация сети (UEFI Networking Stack). |
| 0x83 | Инициализация NVMe контроллеров. |
| 0x84 | Инициализация TPM модуля. |
| 0x85 – 0x9F | Зарезервированы. |
+--------+--------------------------------------------------------------+
4.4. Фаза BDS — выбор загрузочного устройства (коды 0xA0 – 0xCF)
+--------+--------------------------------------------------------------+
| Код | Описание |
+--------+--------------------------------------------------------------+
| 0xA0 | Начало BDS фазы. |
| 0xA1 | Построение менеджера загрузки (Boot Manager). |
| 0xA2 | Обнаружение загрузочных устройств (SATA, NVMe, USB, PXE). |
| 0xA3 | Отображение логотипа или информации POST на экране. |
| 0xA4 | Вывод приглашения для входа в BIOS Setup (клавиша Del/F2). |
| 0xA5 | Загрузка настроек Setup из NVRAM. |
| 0xA6 | Ожидание нажатия клавиши для входа в Boot Menu. |
| 0xA7 | Сканирование устройств ввода (клавиатура, мышь). |
| 0xA8 | Ошибка: не найдено ни одно загрузочное устройство. |
| 0xA9 | Попытка загрузки с первого устройства по порядку. |
| 0xAA | Загрузка UEFI приложения (например, оболочки). |
| 0xAB | Ошибка при загрузке UEFI приложения. |
| 0xAC | Переход к загрузке через Legacy BIOS (CSM). |
| 0xAD – 0xBF | Зарезервированы. |
| 0xC0 | Начало передачи управления загрузчику ОС (Boot Manager). |
| 0xC1 | Вызов ExitBootServices() перед запуском ОС. |
| 0xC2 | Переход в ОС, освобождение ресурсов UEFI. |
| 0xC3 – 0xCF | Зарезервированы. |
+--------+--------------------------------------------------------------+
4.5. Коды ошибок и состояний (0xD0 – 0xFF)
+--------+--------------------------------------------------------------+
| Код | Описание |
+--------+--------------------------------------------------------------+
| 0xD0 | Фатальная ошибка CPU (CPU не стартует). |
| 0xD1 | Ошибка инициализации кэш-памяти. |
| 0xD2 | Ошибка микрокода процессора (Microcode load fail). |
| 0xD3 | Несовместимость процессора с текущей версией BIOS. |
| 0xD4 | Ошибка VRM (питание процессора). |
| 0xD5 | Ошибка инициализации контроллера памяти. |
| 0xD6 | Память не обнаружена (No RAM detected). |
| 0xD7 | Ошибка калибровки DRAM. |
| 0xD8 | Несовместимые модули памяти (разные тайминги, объёмы). |
| 0xD9 | Ошибка при чтении SPD из модуля DIMM. |
| 0xDA | Ошибка контрольной суммы BIOS. |
| 0xDB | Ошибка флэш-памяти (повреждён образ BIOS). |
| 0xDC | Невозможно загрузить восстановочный образ. |
| 0xDD | Конфликт ресурсов PCI/PCIe. |
| 0xDE | Ошибка при запуске Option ROM (слишком большой или битый). |
| 0xDF | Ошибка TPM (Trusted Platform Module). |
| 0xE0 | Система находится в состоянии энергосбережения (S3/S4/S5). |
| 0xE1 | Выход из режима сна (Resume from S3). |
| 0xE2 | Ошибка при выходе из сна (Resume failed). |
| 0xE3 | Инициализация управления питанием (Power Management). |
| 0xE4 – 0xEF | Зарезервированы. |
| 0xF0 | Система переходит в режим S5 (Soft-Off). |
| 0xF1 | Система переходит в режим S4 (Hibernate). |
| 0xF2 | Система переходит в режим S3 (Suspend to RAM). |
| 0xF3 | Запуск процедуры обновления BIOS (Flash Update). |
| 0xF4 | Ошибка при обновлении BIOS. |
| 0xF5 | Успешное обновление BIOS, ожидание перезагрузки. |
| 0xF6 – 0xFF | Зарезервированы. |
+--------+--------------------------------------------------------------+
5. Дополнительные и редкие коды POST
Помимо стандартных кодов, существуют специальные коды, которые могут появляться в особых ситуациях — например, при обновлении прошивки или в процессе её самовосстановления.
+--------+--------------------------------------------------------------+
| Код | Описание |
+--------+--------------------------------------------------------------+
| 0xEE | POST завершён, управление передано OS Loader. |
| 0xFE | Система ожидает команду на включение (G3 — механическое выкл).|
| 0xFF | Код «пустоты» — порт 80h не используется или питание выкл. |
| 0x0C | Останов (Halt) из-за критической ошибки в SEC. |
| 0xBC | Инициализация SMBIOS таблиц. |
+--------+--------------------------------------------------------------+
6. Использование IPMI и утилит для мониторинга POST-кодов
Современные серверы Supermicro предоставляют ещё один элегантный способ перехвата POST-кодов — через журнал событий BMC (IPMI). Если сервер по какой-то причине зависает, последний успешный код часто фиксируется в логе. Помимо этого, существует целый ряд диагностических утилит:
- AMI Firmware Update (AFU) — помимо обновления прошивки, может выводить детальные логи POST.
- IPMI Tool — команда
ipmitool raw 0x30 0x2aвозвращает текущий POST-код из консоли. - Журнал событий веб-интерфейса IPMI — последний код также дублируется в общей ленте событий системы.
7. Чек-лист: действия при получении критического POST-кода
- Зафиксируйте код. Запишите последний отображаемый код до того, как отключать питание.
- Сверьтесь с таблицей для вашей версии BIOS. Коды AMI универсальны, но для очень старых плат (до 2010 года) возможны небольшие отличия.
- Сбросьте CMOS. Иногда старые настройки в энергонезависимой памяти (NVRAM) могут блокировать загрузку. Сброс параметров на заводские значения часто помогает избавиться от застывшего кода.
- Соберите минимальную конфигурацию. Оставьте на материнской плате только один процессор и один модуль памяти. Если код изменился или система прошла дальше — проблема в одном из извлечённых компонентов (дисках, картах расширения и т.д.).
- Проверьте совместимость. Убедитесь, что версия BIOS поддерживает установленный процессор, модули памяти и платы расширения. Возможно, системе требуется обновление прошивки.
- Задокументируйте ошибку. Если проблема не решается, сохраните вывод POST-кодов для обращения в службу поддержки Supermicro или к поставщику оборудования. Это значительно ускорит процесс получения квалифицированной помощи.
8. Заключение
POST-коды BIOS для материнских плат Supermicro — это мощнейший диагностический инструмент, позволяющий заглянуть в самый ранний этап загрузки сервера. Владение навыками их считывания и интерпретации превращает хаотичный поиск неисправности в структурированный и научно обоснованный процесс. Используйте таблицы из этого руководства, комбинируйте их с данными из официальной документации на вашу модель платы, и диагностика даже самого сложного отказа перестанет быть проблемой.

