Открыть сервис

Главная загрузочная запись

Главная загрузочная запись (англ. Master Boot Record, MBR) — это специальный системный раздел, расположенный в первом секторе (сектор 0) жёсткого диска или другого запоминающего устройства, который содержит код начального загрузчика (boot loader) и таблицу разделов. MBR является стандартом для организации данных на дисках с архитектурой IBM PC и используется для загрузки операционной системы, а также для описания структуры диска (разбивки на логические разделы). Размер MBR составляет 512 байт, из которых первые 446 байт занимает исполняемый код, следующие 64 байта — таблица разделов (четыре записи по 16 байт каждая), а последние 2 байта — сигнатура (0x55AA), указывающая на корректность загрузочной записи.

История

Концепция главной загрузочной записи была разработана в начале 1980-х годов компанией IBM для персональных компьютеров IBM PC/XT, использующих BIOS (базовую систему ввода-вывода). Первоначально MBR предназначалась для загрузки операционной системы DOS (Disk Operating System) с жёсткого диска. В 1983 году, с выходом IBM PC/AT, стандарт MBR был закреплён в документации BIOS и стал обязательным элементом для всех совместимых компьютеров.

В 1990-е годы, с развитием операционных систем Microsoft Windows и Linux, MBR оставалась основным способом загрузки и разметки дисков. Однако с ростом объёмов жёстких дисков (более 2 ТБ) и появлением новых технологий (UEFI, GPT) MBR начала устаревать. В 2010-х годах большинство современных компьютеров перешли на использование таблицы разделов GPT (GUID Partition Table) и прошивки UEFI, хотя MBR всё ещё поддерживается для обратной совместимости.

Структура и устройство

Размер и расположение

MBR занимает первый сектор диска (сектор 0), который имеет размер 512 байт. Этот сектор физически расположен в начале диска (на цилиндре 0, головке 0, секторе 1). В случае использования расширенного адресного пространства (LBA — Logical Block Addressing) MBR находится в блоке LBA 0.

Составные части

  1. Код загрузчика (446 байт) — исполняемый машинный код, который запускается BIOS после успешной проверки сигнатуры. Этот код ищет активный раздел в таблице разделов и передаёт управление его загрузочному сектору (Volume Boot Record, VBR). В современных системах код MBR может быть заменён более сложным загрузчиком, например, GRUB (Grand Unified Bootloader) или NTLDR (NT Loader).
  2. Таблица разделов (64 байта) — содержит четыре записи, каждая по 16 байт. Каждая запись описывает один первичный раздел: его тип (например, FAT32, NTFS, ext4), начальный и конечный адреса (в формате CHS и LBA), размер и статус (активный/неактивный). Если на диске требуется больше четырёх разделов, используется расширенный раздел, который содержит вложенные логические разделы.
  3. Сигнатура (2 байта) — значение 0x55AA (в шестнадцатеричной системе), записанное в конце сектора. BIOS проверяет эту сигнатуру, чтобы убедиться, что сектор является загрузочным. Если сигнатура отсутствует или неверна, BIOS не загружает операционную систему и выводит сообщение об ошибке.

Ограничения

  • Максимальный объём диска: MBR поддерживает адресацию до 2 ТБ (точнее, 2,2 ТБ) из-за использования 32-битных адресов LBA. Для дисков большего объёма требуется GPT.
  • Количество разделов: поддерживается только четыре первичных раздела. Для создания большего числа разделов используется расширенный раздел, что усложняет структуру.
  • Отсутствие резервной копии: MBR хранится в единственном экземпляре в начале диска. Повреждение MBR делает диск недоступным для загрузки и может привести к потере данных.

Процесс загрузки с использованием MBR

  1. Включение компьютера: BIOS (или UEFI в режиме совместимости с BIOS) выполняет самотестирование (POST) и инициализирует устройства.
  2. Поиск загрузочного устройства: BIOS проверяет список устройств, заданный в настройках (например, жёсткий диск, SSD, USB-накопитель), и считывает первый сектор (MBR) с выбранного устройства.
  3. Проверка сигнатуры: BIOS проверяет последние 2 байта MBR на наличие сигнатуры 0x55AA. Если сигнатура верна, BIOS передаёт управление коду загрузчика в MBR.
  4. Загрузка кода MBR: Код загрузчика анализирует таблицу разделов, находит активный раздел (помеченный как загрузочный) и считывает его загрузочный сектор (VBR) в память.
  5. Передача управления: Код MBR передаёт управление коду VBR, который, в свою очередь, загружает ядро операционной системы (например, ntoskrnl.exe для Windows или vmlinuz для Linux).

Виды и варианты

Классическая MBR (IBM PC/AT)

Используется в системах на базе BIOS. Поддерживает загрузку DOS, Windows 9x, Windows NT, Linux и других операционных систем. Код загрузчика обычно простой и не поддерживает выбор нескольких операционных систем (требуется менеджер загрузки, например, GRUB).

MBR с защитой (Protective MBR)

В системах с GPT (GUID Partition Table) первый сектор диска может содержать защитный MBR (protective MBR). Этот MBR содержит один раздел типа 0xEE, который занимает весь диск. Защитный MBR предотвращает случайное повреждение GPT-диска устаревшими программами, которые не поддерживают GPT, и позволяет загружать систему в режиме совместимости с BIOS.

MBR в системах UEFI

При использовании UEFI (Unified Extensible Firmware Interface) MBR может использоваться для загрузки в режиме совместимости (CSM — Compatibility Support Module). Однако в чистом режиме UEFI загрузка происходит через GPT, а MBR не используется.

Применение

  • Загрузка операционных систем: MBR является стандартным способом загрузки для большинства старых и многих современных операционных систем (Windows 7, Windows 8, Windows 10 в режиме BIOS, Linux, FreeBSD).
  • Разметка дисков: MBR используется для хранения информации о разделах на жёстких дисках и SSD. Программы для управления разделами (например, fdisk, Diskpart) могут создавать, удалять и изменять разделы, редактируя таблицу разделов MBR.
  • Восстановление данных: При повреждении MBR (например, из-за сбоя питания или вируса) используются утилиты для восстановления загрузочной записи (например, MBRFix, TestDisk).

Критика и ограничения

  • Устаревшая архитектура: MBR была разработана для дисков объёмом до 2 ТБ и не поддерживает современные диски ёмкостью 4 ТБ и более.
  • Отсутствие резервирования: MBR не имеет резервной копии, что делает её уязвимой для повреждений. В отличие от GPT, которая хранит несколько копий таблицы разделов, MBR полагается на единственный сектор.
  • Ограничение на количество разделов: Четыре первичных раздела недостаточно для сложных конфигураций (например, при установке нескольких операционных систем или создании большого числа логических томов).
  • Проблемы с безопасностью: Код MBR может быть изменён вредоносным ПО (например, bootkit), что позволяет перехватывать управление загрузкой и скрывать своё присутствие от операционной системы.

Интересные факты

  • Сигнатура 0x55AA была выбрана разработчиками IBM из-за её уникального битового паттерна (01010101 10101010), который легко распознаётся аппаратно.
  • В некоторых старых системах (например, IBM PC/XT) MBR могла отсутствовать, и загрузка происходила напрямую с дискеты.
  • Существуют утилиты для редактирования MBR вручную (например, dd в Linux), что позволяет восстанавливать загрузку после сбоев, но требует осторожности из-за риска повреждения данных.

Источники

  • IBM PC/AT Technical Reference Manual, IBM Corporation, 1984.
  • Tanenbaum, A. S. (2007). Modern Operating Systems. Prentice Hall.
  • Microsoft Corporation. (2010). Windows Internals, Part 1. Microsoft Press.
  • GNU GRUB Manual. Free Software Foundation.
  • UEFI Specification, Version 2.10, Unified EFI Forum, 2023.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →