Сектор — минимальный кусочек диска (512 байт), то есть в диске 1тб — 2 млрд
секторов. Каждый сектор имеет номер (LBA0, LBA1, LBA2…)
Master Boot Record (MBR) — находится в LBA0, где в первых 446 байтах находится
машинный код, который умеет найти и запустить второй этап загрузчика (например GRUB,
stage2), таблица разделов 64 байта (информация о том, какие разделы есть на диске (до 4ех
первичных) и сигнатура — магическое число 0x55AA, по которому BIOS понимает, что это
загрузочный сектор.
Сектор vs Раздел ; Раздел — состоит из секторов, это какая-то большая область
диска, составленная из тысяч/миллионов секторов. На раздел можно установить
файловую систему (ext4, NTFS, FAT32, ...)
GUID Partition Table — современнная схема разметки диска, пришедшая на смену
старому MBR. (Используется в системах с UEFI)
Шаг 1. BIOS/UEFI и самотестирование при включении
(POST)
Когда мы нажимаем кнопку питания на компьютере с Linux, BIOS (Basic Input/Output
System) или UEFI (Unified Extensible Firmware Interface) запускает процесс загрузки.
Power-On Self-Test (POST):
POST выполняется BIOS/UEFI и делает базовую проверку важнейших компонентов:
• оперативной памяти (RAM),
• процессора (CPU),
• устройств хранения (HDD, SSD, USB).
Если что-то неисправно (например, видеокарта), POST прерывает загрузку и сообщает об
ошибке звуковыми сигналами или кодами.
Инициализация устройств хранения:
BIOS/UEFI ищет и настраивает подключённые диски, чтобы найти загрузочный носитель.
• В старых системах BIOS используется схема разделов MBR, ограниченная дисками до
2 ТБ.
• В современных системах UEFI применяется раздел EFI и таблица GPT,
поддерживающая диски свыше 2 ТБ.
Поиск загрузчика:
• BIOS ищет загрузчик (например, GRUB) в MBR первого диска.
• UEFI вместо этого ищет загрузчик в EFI System Partition (ESP) в заранее
определённой папке /EFI/.
Сравнение BIOS и UEFI:
Характеристика BIOS UEFI
Поддержка дисков MBR (макс. 2 ТБ) GPT (>2 ТБ)
Режим загрузки Legacy boot Secure Boot
Скорость Медленнее Быстрее
Интерфейс Текстовый Графический
Шаг 2. Роль загрузчиков в процессе загрузки Linux
Что такое загрузчик?
Загрузчик (boot loader) — важнейший элемент, который загружает ядро Linux и передаёт
ему параметры.
Он запускается первым после того, как BIOS/UEFI завершил POST и нашёл загрузочный
диск.
Задачи загрузчика:
• выбор между несколькими ядрами;
• переключение наборов параметров ядра;
• поддержка загрузки разных ОС;
• загрузка initrd/initramfs перед монтированием корневой ФС;
• передача аргументов ядру (ro, quiet, nomodeset и др.);
• восстановление после сбоев (например, режим GRUB rescue).
Современные загрузчики сильно развились: у них есть меню, история команд, разные
функции. При этом главная задача всегда была — гибкость в выборе ядра и параметров.
Примеры загрузчиков:
• GRUB — универсальный стандарт в Linux, есть версии для BIOS/MBR и UEFI.
• LILO — первый загрузчик Linux, ныне почти не используется. Для UEFI была версия
ELILO.
• SYSLINUX — лёгкий загрузчик для USB и CD, поддерживает разные файловые
системы.
• LOADLIN — загружает ядро из DOS.
• systemd-boot — простой загрузчик для UEFI.
• coreboot — замена BIOS, может включать ядро Linux.
• Linux Kernel EFISTUB — возможность загружать ядро прямо из EFI-раздела.
• EFI Linux — примерный загрузчик для UEFI.
Работа некоторых загрузчиков
1) GRUB (Grand Unified Boot Loader):
• Главное преимущество — работа с файловыми системами и удобный выбор ядра.
• Этапы работы:
1. BIOS/UEFI запускает код GRUB.
2. Загружается «core» GRUB.
3. Core инициализируется, получает доступ к дискам.
4. Находит раздел с конфигурацией.
5. Даёт пользователю шанс изменить параметры.
6. Через таймаут или выбор запускает конфигурацию.
7. Загружает модули, если нужно.
8. Загружает ядро и передаёт управление.
2) LILO (Linux Loader):
• Самый первый загрузчик Linux.
• Работает только с BIOS.
• Настраивается через /etc/[Link].
3) SYSLINUX:
• Самый лёгкий загрузчик.
• Часто используется для загрузки с USB или CD.
• Настраивается через /syslinux/[Link].
Шаг 3. Инициализация ядра Linux и параметры загрузки
После того как загрузчик загрузил ядро Linux в память, начинается инициализация ядра:
• проверка CPU,
• проверка памяти,
• поиск шин и устройств,
• загрузка драйверов,
• монтирование корневой файловой системы,
• запуск пользовательского пространства.
Параметры ядра
Ядро получает текстовые параметры, которые управляют его поведением. Например:
• ro — смонтировать корневую ФС только для чтения (по умолчанию, чтобы fsck мог
проверить диск).
• rw — сразу в режиме чтение/запись.
• quiet — скрыть лишние сообщения.
• splash — показать заставку.
• nomodeset — отключить графику (для диагностики).
• init=/bin/bash — сразу запустить bash вместо init.
Initrd и Initramfs
Перед монтированием основной ФС ядро загружает временную файловую систему:
• initrd — сжатая блочная ФС с драйверами.
• initramfs — современный вариант, архив cpio, загружается прямо в RAM.
Шаг 4. Init-система и уровни выполнения
Когда ядро готово, оно запускает init-систему, которая управляет сервисами, процессами и
сессиями.
Виды init-систем:
• SysVinit
• Самая старая, использует runlevel (0–6), конфиг в /etc/inittab.
• Последовательный запуск сервисов.
• Старые дистрибутивы (RHEL 5, CentOS 5, Debian 6).
• Upstart
• Событийно-ориентированная система.
• Использовалась в Ubuntu до версии 15.04.
• Поддерживает скрипты SysVinit.
• systemd
• Современный стандарт.
• Параллельный запуск сервисов.
• Использует «targets» вместо runlevels.
• Управляет cgroups для контроля ресурс
• Monday, September 22 2025
• 00:20 NOVT
• Scheduled 00:20
• 
• ов.
• Применяется в RHEL, Ubuntu, Debian, Fedora и др.
Runlevels (SysVinit):
• 0 → выключение
• 1 → однопользовательский режим
• 2 → многопользовательский без сети
• 3 → многопользовательский с сетью
• 4 → пользовательский
• 5 → многопользовательский с GUI
• 6 → перезагрузка
Шаг 5. Пользовательский вход
Когда сервисы загружены, система показывает приглашение входа:
• CLI (multi-user target)
• На серверах обычно.
• Пользователь логинится через TTY.
• GUI (graphical target)
• Запускается дисплей-менеджер (GDM, LightDM, SDDM).
• Пользователь выбирает сессию (GNOME, KDE, XFCE и т.д.).
Шаг 6. Сообщения при старте
Раньше ядро и init выводили много диагностических сообщений.
Сейчас загрузка стала быстрее, и сообщения почти не видно.
Большинство дистрибутивов показывают «splash screen» для удобства пользователя.
Заключение
Процесс загрузки Linux состоит из нескольких этапов:
1. BIOS/UEFI и POST,
2. загрузчик,
3. ядро,
4. init-система,
5. сервисы,
6. приглашение входа.
• Загрузчик обеспечивает гибкость выбора ядра и параметров.
• Ядро отвечает за инициализацию оборудования и драйверов.
• Init-система запускает сервисы.