Перейти к основному содержимому

Загрузка операционной системы

Инженеру

Здесь — цепочка от кнопки питания до рабочего стола — POST, BIOS/UEFI, загрузчик, ядро ОС. Таблицы разделов (MBR/GPT) и диски — в главе про хранилище; роли компонентов — в метафоре "кабинета".


Загрузчики

Каждый раз при включении компьютера запускается цепочка программ, которая превращает "мертвое" железо в живую вычислительную систему. Эта цепочка начинается с прошивки материнской платы и завершается загрузкой операционной системы. Центральное звено в этом процессе — загрузчик. Он служит мостом между аппаратным обеспечением и программным окружением, обеспечивая корректный старт ОС.

Процесс загрузки зависит от типа прошивки: BIOS или UEFI. Эти технологии определяют, как инициализируется оборудование, где искать загрузочные файлы и как передавать управление операционной системе.

При включении компьютера с BIOS пользователь может увидеть текстовое окно вроде:

American Megatrends BIOS v2.15
Press DEL to enter SETUP
Press F12 to select boot device

Это — интерфейс прошивки. Он не поддерживает мышь, а все действия выполняются клавишами. Даже если на диске установлен Windows или Linux, BIOS ничего не знает об этих системах — он лишь ищет "загрузочный флаг" на диске.

Play ITЗагрузка интерактивного демо…

Интерфейс зависит от материнской платы, и помимо классических BIOS/UEFI стилей, визуально они могут быть специфическими для производителей, например, ASUS, Gigabyte, MSI. У них могут быть свои оболочки, упрощённые режимы, свои вариации горячих клавиш. Но в большинстве компьютеров, после нажатия на кнопку DEL до того, как загрузится операционная система, можно попасть в меню BIOS/UEFI.

А вот уже в самом меню можно проверить оборудование, компоненты, настроить параметры, и выбрать диск, с которого загружать операционную систему.

Таким образом, на диске лежат файлы ОС, вам нужно лишь указать диск, с которого загружать её. А затем, файлы выгрузятся в оперативную память и компьютер запустит систему - именно поэтому при включении, часть ОЗУ уже занята - как раз для работы операционки.

Что происходит в памяти при старте

Представьте, что вы включаете компьютер с установленной Windows 11.

Прошивка находит на SSD раздел с загрузчиком bootmgfw.efi, загружает его в память по адресу, например, 0x100000.

Затем загрузчик читает файл ядра ntoskrnl.exe и помещает его в другую область ОЗУ — скажем, начиная с 0x2000000.

Одновременно в память загружается образ диспетчера конфигурации (bootvid.dll, hal.dll и другие компоненты).

К моменту, когда появляется экран входа, в оперативной памяти уже размещены сотни мегабайт системных данных, даже если вы ещё ничего не запускали.

Этот процесс полностью автоматизирован. Пользователь не выбирает, куда грузить ядро или какой драйвер использовать — всё это определяет загрузчик на основе информации, хранящейся на диске. Именно поэтому важно, чтобы файловая система оставалась целой: повреждение даже одного критического файла (например, vmlinuz в Linux или BCD в Windows) может привести к остановке загрузки с сообщением вроде "Operating System not found" или "GRUB rescue".

Прошивка не анализирует содержимое файлов — она лишь передаёт управление первому исполняемому образу, соответствующему её архитектуре (.efi для UEFI, машинный код в MBR для BIOS). Всё остальное — задача загрузчика операционной системы.


Типовые сценарии сбоев загрузки

Чтобы теория не оставалась абстрактной, вот самые частые практические случаи:

  • "Operating System not found" — прошивка не видит корректный загрузчик на выбранном носителе (поврежден ESP/MBR, неверный boot order, отключен нужный диск).
  • "GRUB rescue": повреждены файлы загрузчика Linux или сместились UUID разделов после изменений разметки.
  • Циклический перезапуск до логотипа — проблема может быть как в загрузчике, так и в памяти/диске, поэтому проверяют и файловую систему, и аппаратный уровень.

Практический алгоритм диагностики обычно такой — проверить порядок загрузки в UEFI, убедиться что диск определяется, затем проверить целостность разделов и загрузочных файлов.

См. также:


Перезагрузка

Перезагрузка (reset) — процесс, при котором компьютер или другое устройство очищает или восстанавливает содержимое оперативной памяти и возобновляет работу с начала цепочки загрузки (POST → прошивка → загрузчик → ОС).

ВидКак происходитКто инициирует
Программная ("мягкая", soft reboot)ОС завершает процессы, по возможности сохраняет данные, затем снова запускает загрузку без обязательного отключения питанияПользователь (меню "Перезагрузка"), команда shutdown /r, ядро после обновления
Аппаратная ("жёсткая", hard reboot)Сброс по линии Reset, отключение питания или сигнал сброса на процессор; ОС не успевает корректно завершить запись на дискКнопка Reset на корпусе, долгое удержание питания, сбой питания, сторожевой таймер на серверах и в космической технике

На настольных ПК кнопка Reset на материнской плате замыкает специальный разъём — прошивка начинает цикл заново. Из одной только ОС заблокировать аппаратный сброс обычно нельзя (исключения — отдельное оборудование вроде watchdog).

После жёсткой перезагрузки файловые системы с отложенной записью (типично для Windows и Linux) могут оказаться в "грязном" состоянии; при следующем старте ОС часто запускает проверку диска (CHKDSK, fsck).

Спонтанная перезагрузка без команды пользователя — отдельный диагностический случай — перегрев и троттлинг, сбой питания, ошибки драйверов, синий экран (Windows), паника ядра (Unix-подобные системы), вредоносное ПО. Повторяемость низкая, поэтому ищут журналы событий, температуру и стабильность БП.

Связь с загрузкой

Любая перезагрузка снова проходит этапы из этой главы — POST, выбор носителя, загрузчик, ядро. "Мягкая" перезагрузка даёт ОС шанс аккуратно закрыть файлы; "жёсткая" обрывает работу на текущем такте процессора.


BIOS

BIOS (Basic Input/Output System) - первое ПО, запускаемое при включении компьютера - отвечает за инициализацию оборудования и загрузку операционной системы.

При запуске выполняется POST (Power-On Self Test) — проверка базового железа. Затем инициализация устройств и поиск загрузочного носителя; управление передаётся загрузчику ОС. Порядок дисков, разгон и напряжение настраиваются в Setup (Del/F2). Несколько дисков с ОС позволяют переключить загрузку, если один вышел из строя.

Прошивка BIOS лежит в микросхеме flash на материнской плате (часто 8–32 МБ). Унаследованный код BIOS исторически умещался в первый мегабайт адресного пространства — это не "размер всей микросхемы". Legacy BIOS работает в 16-битном режиме реальной адресации, ориентирован на MBR-диски и уступает UEFI по скорости старта и возможностям (GPT, Secure Boot, графический интерфейс).


Этапы работы BIOS

  1. POST (Power-On Self Test)
    BIOS проверяет базовые компоненты — процессор, оперативную память, видеокарту, клавиатуру. Если обнаружена критическая ошибка, система может выдать звуковой сигнал или прекратить загрузку.

  2. Инициализация оборудования
    BIOS активирует контроллеры дисков, порты USB, сетевые адаптеры и другие устройства, необходимые для дальнейшей загрузки.

  3. Поиск загрузочного устройства
    Согласно заданному порядку (например, сначала SSD, затем USB), BIOS ищет устройство с загрузочной меткой.

  4. Чтение MBR
    На найденном устройстве BIOS читает первый сектор — MBR (Master Boot Record), размером ровно 512 байт. В нём содержится:

    • Код загрузчика (первичного, обычно 446 байт),
    • Таблица разделов (64 байта),
    • Метка окончания (0x55AA).
  5. Передача управления
    BIOS загружает код из MBR в оперативную память и передаёт ему управление. Этот код, в свою очередь, может загрузить более сложный загрузчик (например, GRUB Stage 1 → Stage 2).

Пример структуры MBR в шестнадцатеричном виде

Типичный MBR начинается так (первые 16 байт):

00000000: eb48 904d 5344 4f53 352e 3000 0208 0100 .H.MSDOS5.0.....

Здесь eb48 — это машинная команда для перехода к основному коду загрузчика, а строка MSDOS5.0 — сигнатура файловой системы. Последние два байта всегда 55 AA — это "магическое число", которое BIOS проверяет, чтобы убедиться: сектор действительно загрузочный.


Ограничения BIOS

  • Работает в 16-битном режиме реальной адресации, что ограничивает доступ к памяти (максимум 1 МБ).
  • Поддерживает только MBR-разметку, которая не позволяет использовать диски больше 2 ТБ.
  • Не имеет встроенной защиты от неавторизованного ПО.
  • Интерфейс — текстовый, без поддержки мыши.

UEFI

UEFI (Unified Extensible Firmware Interface) - современный стандарт прошивки, который пришел на смену BIOS. Функции те же, но загрузка ОС может быть как с MBR, так и с GPT дисков, имеется графический интерфейс с поддержкой мыши, более гибкое управление оборудованием, модульность (определенные модули можно обновлять независимо) и Secure Boot - защита от загрузки неавторизованного или вредоносного ПО. UEFI занимает несколько мегабайт (16 МБ) и более производительна (работает в 64-битном режиме).

BIOS отличается от UEFI на уровне интерфейса прошивки:


Преимущества UEFI

  • 64-битные загрузчики и сервисы прошивки — на современных ПК UEFI работает в длинном режиме процессора и даёт доступ к большим объёмам RAM при старте.
  • Поддержка GPT (GUID Partition Table) — позволяет использовать диски объёмом свыше 2 ТБ и создавать до 128 разделов.
  • Графический интерфейс с поддержкой мыши и нескольких языков.
  • Модульная структура — отдельные компоненты (драйверы, сервисы) можно обновлять независимо.
  • Secure Boot — механизм проверки цифровой подписи загрузчика и ядра ОС, предотвращающий запуск вредоносного кода.
  • Объём прошивки — до 16 МБ, что даёт пространство для расширенных функций.
Важно

Представьте, что вы пытаетесь установить Linux на ноутбук с Windows. Если Secure Boot включён, система откажет в загрузке, если образ Linux не содержит цифровую подпись, доверенную UEFI.

Например, Ubuntu использует подписанный Microsoft’ом загрузчик shim.efi, который затем запускает GRUB.

Без такой цепочки — отказ.


Процесс загрузки — сравнение

Загрузка через BIOS

  1. Выполнение POST.
  2. Поиск первого загрузочного устройства в списке.
  3. Чтение MBR (512 байт).
  4. Выполнение кода загрузчика из MBR.
  5. Загрузчик находит вторую стадию (например, grub.cfg) и загружает ядро ОС.
  6. Передача управления ядру.

Этот путь линейный, жёстко привязан к физической структуре диска и не допускает гибкой настройки.


Загрузка через UEFI

  1. Выполнение POST и инициализация устройств.
  2. Активация Secure Boot (если включён).
  3. Поиск ESP на всех подключённых дисках.
  4. Чтение файла загрузчика из ESP (например, bootx64.efi).
  5. Проверка цифровой подписи загрузчика (при Secure Boot).
  6. Запуск загрузчика, который загружает ядро ОС.
  7. Передача управления ядру.

Этот путь более гибкий, безопасный и ориентированный на файловую систему, а не на сектора.


ESP

UEFI не читает "голые" сектора, как BIOS. Вместо этого она ищет специальный раздел — ESP (EFI System Partition).

ESP (EFI System Partition) - специальный раздел на диске, используемый UEFI для хранения загрузочных файлов. Этот раздел форматируется в файловой системе FAT32 и содержит файлы загрузчиков, драйверы UEFI и конфигурационные файлы.

ESP — это фактически "загрузочный диск" для UEFI, оформленный как обычный каталог с файлами. После монтирования ESP (обычно как /boot/efi в Linux или диск S:\ в Windows) можно увидеть такую структуру:

EFI/
├── BOOT/
│ └── bootx64.efi ← универсальный загрузчик для x64
├── Microsoft/
│ └── Boot/
│ └── bootmgfw.efi ← загрузчик Windows
└── ubuntu/
└── grubx64.efi ← загрузчик Ubuntu

Каждая ОС размещает свои файлы в отдельной папке. UEFI читает эту структуру как обычную FAT32-файловую систему и выбирает, какой .efi-файл запустить.


Загрузчики операционных систем

После того как прошивка (BIOS или UEFI) передаёт управление, в дело вступает загрузчик операционной системы. Его задача — подготовить среду для запуска ядра.


Основные функции загрузчика

  • Поиск ядра — определение местоположения файла ядра (vmlinuz в Linux, ntoskrnl.exe в Windows).
  • Загрузка в память — чтение ядра и связанных модулей (initramfs, драйверы) в оперативную память.
  • Настройка параметров запуска — передача аргументов ядру (например, уровень журналирования, режим восстановления).
  • Меню выбора ОС — при наличии нескольких систем (Linux + Windows) загрузчик предоставляет пользователю выбор.
  • Поддержка обновлений — автоматическое обнаружение новых ядер и добавление их в меню.

При наличии двух операционных систем пользователь видит текстовое меню вроде:

GNU GRUB version 2.06

* Ubuntu 24.04 LTS
Advanced options for Ubuntu
Windows Boot Manager (on /dev/nvme0n1p1)

Загрузчик операционной системы – это программа, которая отвечает за загрузку ОС после того, как BIOS или UEFI выполнили инициализацию оборудования.


Популярные загрузчики

  • GRUB (GNU GRand Unified Bootloader)
    Стандарт де-факто для большинства Linux-дистрибутивов. Поддерживает множество файловых систем, скриптовую логику, темы оформления и мультизагрузку.

  • Windows Boot Manager
    Интегрирован в архитектуру Windows. Работает с BCD (Boot Configuration Данные) — базой данных в формате реестра, хранящей параметры загрузки.

  • rEFInd, systemd-boot, LILO
    Альтернативные решения, используемые в специализированных или минималистичных системах.

В Windows параметры загрузки хранятся не в текстовом файле, а в двоичной базе данных. Команда в PowerShell:

bcdedit /enum firmware

...покажет список загрузочных записей UEFI, например:

Firmware Application (101fffff...)
-------------------------------
identifier {fwbootmgr}
description Windows Boot Manager
path \EFI\Microsoft\Boot\bootmgfw.efi

Это позволяет Windows точно указывать, какой .efi-файл использовать при загрузке.

Важно

Представьте, что компьютер — это театр.

BIOS или UEFI — это электрик, который включает свет и проверяет, что сцена готова.

Загрузчик операционной системы — это режиссёр, который вызывает актёров (ядро, драйверы), расставляет реквизит (параметры запуска) и даёт команду: "Начинаем спектакль!"