С чего начинается загрузка ОС Linux?

«С чего начинается загрузка ОС Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Загрузка современной ОС Linux начинается с UEFI (или устаревшего BIOS).

Основные этапы:

  1. UEFI/BIOS: Инициализирует аппаратное обеспечение, выполняет POST (Power-On Self-Test) и ищет загрузочное устройство.
  2. Загрузчик (Bootloader): Для UEFI-систем загружается исполняемый файл (например, grubx64.efi) из ESP (EFI System Partition). Для старых BIOS-систем код загрузчика считывается из MBR (Master Boot Record) диска. Основной загрузчик для Linux — GRUB.
  3. Ядро (Kernel): Загрузчик загружает в память сжатый образ ядра (vmlinuz-*) и временную корневую файловую систему initramfs (или initrd). Затем управление передаётся ядру.
  4. Инициализация: Ядро распаковывает initramfs, загружает необходимые драйверы для доступа к реальному корневому разделу, монтирует его и запускает процесс инициализации пользовательского пространства — systemd (в большинстве современных дистрибутивов) или другой init.
  5. Цели systemd (targets): Systemd последовательно запускает сервисы, достигая целевого состояния, например, multi-user.target или graphical.target.

Практический пример проверки:

# Узнать, какая система инициализации используется
ps -p 1 -o comm=
# Узнать текущую цель systemd
systemctl get-default
# Просмотреть журнал загрузки (требует прав root)
journalctl -b