1. Первичная инициализация: роль прошивок BIOS и UEFI в подготовке оборудования
Первичная инициализация: роль прошивок BIOS и UEFI в подготовке оборудования
Вы нажимаете кнопку питания на сервере. В этот момент процессор получает ток, но он абсолютно «слеп». У него нет операционной системы, он не знает, где находится жесткий диск, и не умеет работать с файлами. До того как ядро Linux выведет на экран первую строчку логов, должна отработать невидимая, но критически важная цепочка инструкций, зашитая прямо в материнскую плату.
Если сервер не загружается, проблема часто кроется не в Linux, а в том, что система даже не смогла до него добраться. Давайте разберем самый первый этап жизни сервера — от подачи питания до поиска загрузчика.
Пробуждение железа: POST и Reset Vector
Как только напряжение стабилизируется, процессор обращается к жестко заданному адресу памяти — Reset Vector. По этому адресу находится точка входа в микропрограмму материнской платы (BIOS или UEFI).
Первое, что делает эта прошивка — запускает процедуру POST (Power-On Self-Test). Это базовая проверка жизнеспособности оборудования:
> Если на этапе POST обнаруживается критическая аппаратная ошибка (например, сгорела планка памяти), загрузка останавливается навсегда. Вы услышите звуковые сигналы (Beep codes) или увидите код ошибки на LED-индикаторе материнской платы. До Linux дело даже не дойдет.
Если POST пройден успешно, перед материнской платой встает главная задача: найти операционную систему на подключенных дисках и передать ей управление. Исторически сложилось два совершенно разных подхода к решению этой задачи.
Наследие BIOS: Загрузка вслепую
Классический BIOS (Basic Input/Output System) был создан в эпоху, когда диски измерялись мегабайтами. Его логика поиска операционной системы примитивна: BIOS ничего не знает о файловых системах, папках или файлах.
Он работает по жесткому алгоритму:
Этот крошечный код из MBR должен был сам разобраться, как прочитать остальную часть диска, чтобы вытянуть полноценный загрузчик ОС. Из-за физических ограничений MBR не поддерживал диски объемом более 2 ТБ и мог содержать только 4 основных раздела. Сегодня этот подход считается устаревшим и на современных серверах используется только в режиме совместимости (Legacy/CSM).
Эпоха UEFI: Прошивка как мини-ОС
На смену BIOS пришел UEFI (Unified Extensible Firmware Interface). Это уже не просто набор базовых инструкций, а полноценная мини-операционная система, живущая на материнской плате.
Главное отличие UEFI от BIOS — UEFI умеет читать файловые системы (в частности, FAT32). Ему больше не нужно вслепую запускать код из первого сектора диска. Вместо этого UEFI ищет на диске специально подготовленный раздел.
!Сравнение загрузки BIOS и UEFI
Этот специальный раздел называется ESP (EFI System Partition).
.efi.Логика работы UEFI выглядит так:
\EFI\ubuntu\grubx64.efi или дефолтный \EFI\BOOT\BOOTX64.EFI).!Что произойдет при удалении ESP
Финал инициализации: Передача эстафеты
Как только UEFI нашел файл .efi и запустил его, роль материнской платы заканчивается. Прошивка сделала свое дело: проверила железо и нашла программу, которая знает, что делать дальше.
Этим .efi файлом в мире Linux в 99% случаев является GRUB (GRand Unified Bootloader). Именно GRUB возьмет на себя следующую задачу: показать вам меню выбора операционной системы, найти на диске сжатый образ ядра Linux и распаковать его. Но о том, как GRUB ищет ядро и какие параметры ему передает, мы поговорим в следующей главе.