Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 10 из 12

От GRUB до target: как загружается система

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 8 · на машине · 5 мин

Эстафета загрузки

Загрузка — эстафета: каждая ступень готовит место следующей и передаёт ей управление.

Первой работает прошивка машины (BIOS или UEFI): она проверяет оборудование и запускает загрузчик с диска. Загрузчик GRUB читает /boot/grub/grub.cfg, загружает в память ядро и initramfs — маленькую временную корневую ФС — и передаёт ядру командную строку. Её видно в /proc/cmdline:

bash
cat /proc/cmdline

BOOT_IMAGE — файл ядра, root=UUID=… — где лежит настоящая корневая ФС, console=ttyS0 — куда печатать сообщения загрузки: в последовательный порт, через который к машине подключён и твой терминал.

Ядро запускает оборудование и программы из initramfs, а те находят корневую ФС по root= и монтируют её. Тогда ядро запускает первый процесс — systemd с PID 1, — и тот запускает юниты, пока система не дойдёт до цели загрузки.

Из этих ступеней systemd-analyze меряет две последние: kernel — от старта ядра до запуска systemd, userspace — от systemd до цели. Прошивку и GRUB на этой машине он не видит.

Проверь себя 1 вопрос

Обновление положило в /boot новое ядро, старое осталось рядом. Какая ступень загрузки решит, с каким ядром машина поднимется?

  • systemd запускается уже ядром, которое к этому моменту выбрано и работает. Выбор ядра — раньше, в загрузчике.

  • initramfs загружает в память тот же GRUB вместе с ядром: выбор к этому моменту уже сделан.

Ядро выбирает GRUB: он читает /boot/grub/grub.cfg, загружает выбранное ядро с его initramfs и передаёт ядру командную строку. Какое ядро работает сейчас, видно в /proc/cmdline и в uname -r.

Главное в шаге

  • Загрузка идёт по ступеням: прошивка → GRUB → ядро с initramfs → systemd → цель загрузки.
  • GRUB выбирает ядро и передаёт ему командную строку из /proc/cmdline: в ней корневая ФС и консоль.
  • systemd-analyze меряет ядро (kernel) и службы (userspace), а прошивку и загрузчик здесь не видит.
Ubuntu 24.04
Загрузка…