Как происходит процесс загрузки Linux?

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

Ответ

Процесс загрузки современного Linux-сервера (с UEFI и systemd) состоит из ключевых этапов:

  1. UEFI/BIOS Firmware: Выполняет самотестирование (POST), инициализирует оборудование, загружает и исполняет загрузчик из EFI-системного раздела (ESP).
  2. Bootloader (GRUB2): Загружает выбранное ядро Linux (vmlinuz) и initramfs (временная root FS с драйверами) в оперативную память, затем передает управление ядру.
    # Пример строки загрузки ядра из /boot/grub/grub.cfg
    linux /vmlinuz-5.15.0-105-generic root=/dev/mapper/vg-root ro quiet
    initrd /initrd.img-5.15.0-105-generic
  3. Linux Kernel: Распаковывает себя, инициализирует оборудование, монтирует корневую файловую систему (/) в режиме только для чтения (ro), и запускает /sbin/init (обычно это systemd с PID=1).
  4. Systemd: Запускает целевой юнит по умолчанию (чаще всего multi-user.target или graphical.target), что приводит к параллельному запуску зависимых сервисов (демонов), описанных в файлах .service.

Для DevOps важно: Понимание этого процесса критично для диагностики проблем с загрузкой (использование journalctl -xb для просмотра логов загрузки), настройки автоматического восстановления через systemd и работы с образами дисков (Packer, AMI).