BOOTMGR
BOOTMGR (сокращение от англ. Boot Manager, диспетчер загрузки) — это системный компонент операционных систем семейства Windows NT, начиная с Windows Vista и Windows Server 2008, отвечающий за запуск процесса загрузки операционной системы. Представляет собой исполняемый файл bootmgr, расположенный в корневом каталоге активного раздела (обычно системный раздел, помеченный как «Система зарезервирована» или сам системный диск C:\). Основная функция BOOTMGR — считывание данных из конфигурационного хранилища загрузки (BCD, Boot Configuration Data), отображение меню выбора операционной системы (при наличии нескольких установленных систем) и передача управления загрузчику конкретной ОС (например, winload.exe для Windows).
История и развитие
До появления BOOTMGR в Windows NT 5.x (Windows 2000, Windows XP, Windows Server 2003) использовался загрузчик NTLDR (NT Loader). NTLDR загружал операционную систему на основе файла boot.ini, который хранился в текстовом виде. С выходом Windows Vista корпорация Microsoft заменила NTLDR на BOOTMGR, а текстовый boot.ini — на бинарное хранилище BCD. Это нововведение было связано с необходимостью поддержки новых технологий, таких как:
- Загрузка с GPT-дисков (GUID Partition Table) — для компьютеров на базе UEFI, в отличие от устаревшей MBR (Master Boot Record), использовавшейся в BIOS-системах.
- Мультизагрузка — более гибкое управление несколькими операционными системами, включая возможность загрузки Windows и других ОС (например, Linux через цепочку загрузчиков).
- Поддержка 64-разрядных систем и расширенных режимов загрузки (например, загрузка с использованием драйверов для RAID-массивов).
В Windows 8 и более поздних версиях BOOTMGR был интегрирован в общую среду восстановления Windows RE (Windows Recovery Environment), что позволило загружать средства диагностики и восстановления непосредственно из меню загрузчика.
Архитектура и принцип работы
Процесс загрузки с участием BOOTMGR можно разделить на несколько этапов:
- Загрузка начального кода. После включения компьютера прошивка (BIOS или UEFI) выполняет POST (Power-On Self-Test) и ищет загрузочное устройство. На диске с MBR-разметкой код первого сектора (MBR) передаёт управление загрузочному сектору активного раздела, который содержит код BOOTMGR. На дисках с GPT и UEFI прошивка напрямую запускает файл
\EFI\Microsoft\Boot\bootmgfw.efi(аналог BOOTMGR для UEFI-систем).
- Загрузка BOOTMGR. Файл
bootmgr(илиbootmgfw.efi) загружается в оперативную память. BOOTMGR считывает BCD-хранилище, которое по умолчанию находится в папке\Boot\BCDна активном разделе. BCD представляет собой структурированное бинарное хранилище, аналогичное реестру Windows, и содержит записи о доступных операционных системах, параметрах загрузки (например, таймаут отображения меню, режим загрузки — обычный, безопасный, с поддержкой сети и т.д.).
- Отображение меню загрузки. Если в BCD присутствует более одной записи об операционной системе (или включена опция отображения меню), BOOTMGR выводит графическое или текстовое меню. Пользователь может выбрать нужную ОС или запустить средства восстановления.
- Передача управления. После выбора пользователем или по истечении таймаута BOOTMGR запускает соответствующий загрузчик ОС. Для Windows это
winload.exe(для обычной загрузки) илиwinresume.exe(для восстановления после гибернации). BOOTMGR передаёт этим загрузчикам параметры, считанные из BCD.
- Загрузка ядра. Загрузчик
winload.exeзагружает ядро Windows (ntoskrnl.exe), драйверы и системные файлы, после чего управление переходит к ядру, и начинается полноценный запуск ОС.
Конфигурационное хранилище BCD
BCD (Boot Configuration Data) — центральный элемент управления загрузкой в Windows. В отличие от boot.ini, BCD поддерживает не только текстовые параметры, но и сложные структуры данных, включая:
- Идентификаторы записей — каждая запись (например, для конкретной ОС) имеет уникальный GUID.
- Параметры загрузки — такие как
description(отображаемое имя),device(путь к системному разделу),osdevice(путь к разделу с ОС),path(путь к загрузчику),bootmenupolicy(стиль меню — стандартный или legacy). - Режимы загрузки — обычная, безопасная (Safe Mode), с поддержкой сети, с минимальным набором драйверов и т.д.
- Параметры восстановления — например, автоматическое восстановление системы, загрузка в среде восстановления Windows RE.
BCD может храниться как на системном разделе (для традиционной BIOS-загрузки), так и в специальном разделе EFI System Partition (ESP) на UEFI-системах. Для редактирования BCD используется утилита bcdedit.exe, доступная из командной строки с правами администратора. Также существуют сторонние графические инструменты, такие как EasyBCD.
Типы загрузки и режимы
BOOTMGR поддерживает несколько режимов загрузки:
- Обычная загрузка — стандартный запуск Windows.
- Безопасный режим (Safe Mode) — загрузка с минимальным набором драйверов и служб, используется для устранения неполадок.
- Загрузка с поддержкой сети — безопасный режим с включением сетевых драйверов.
- Загрузка с минимальным набором драйверов — аналогично безопасному режиму, но без поддержки сети.
- Восстановление системы — загрузка среды восстановления Windows RE, позволяющая выполнять восстановление системы, откат обновлений, диагностику памяти и т.д.
- Загрузка из гибернации — при выходе из спящего режима (гибернации) BOOTMGR запускает
winresume.exe, который восстанавливает состояние системы из файлаhiberfil.sys.
На UEFI-системах BOOTMGR также поддерживает загрузку в режиме совместимости с BIOS (CSM, Compatibility Support Module), что позволяет запускать старые операционные системы, не поддерживающие UEFI.
Проблемы и ошибки
Наиболее распространённые ошибки, связанные с BOOTMGR:
- «BOOTMGR is missing» — сообщение о том, что файл
bootmgrне найден или повреждён. Причины: повреждение загрузочного сектора, удаление или переименование файлаbootmgr, неправильная настройка активного раздела, сбой в файловой системе. - «BOOTMGR is compressed» — ошибка возникает, если файл
bootmgrбыл сжат с помощью утилиты сжатия NTFS. Windows не может загрузить сжатый загрузчик. - «Status: 0xc000000f» — ошибка, связанная с повреждением или отсутствием BCD-хранилища. Возникает при сбое в конфигурации загрузки, например, после обновления Windows или установки стороннего загрузчика.
- «Boot configuration data is missing» — аналогичная ошибка, указывающая на проблемы с BCD.
Для устранения этих ошибок обычно используются средства восстановления Windows (загрузка с установочного диска или флешки, выбор «Восстановление системы» и запуск командной строки). С помощью утилит bootrec.exe (например, bootrec /fixmbr, bootrec /fixboot, bootrec /rebuildbcd) можно восстановить загрузчик и BCD.
Взаимодействие с другими загрузчиками
BOOTMGR может работать в связке с другими загрузчиками, например, с GRUB (используется в Linux) или с загрузчиками от сторонних производителей (например, загрузчик от Acronis). Для этого в BCD создаётся запись, указывающая на цепочку загрузки (chainloading), где BOOTMGR передаёт управление другому загрузчику. Это позволяет организовать мультизагрузку Windows и Linux на одном компьютере.
Значение и роль в современных системах
BOOTMGR является неотъемлемой частью загрузочного процесса Windows начиная с Vista. Он обеспечивает гибкость и надёжность загрузки, поддерживает современные стандарты (UEFI, GPT, Secure Boot — технология, обеспечивающая проверку цифровой подписи загрузчика на UEFI-системах), а также предоставляет средства для диагностики и восстановления. Несмотря на то что BOOTMGR не виден пользователю в обычной работе, его корректная работа критически важна для запуска операционной системы.
Источники
- Документация Microsoft Windows (MSDN) — «Boot Configuration Data», «Boot Manager (BOOTMGR)».
- Руссинович М., Соломон Д. — «Внутреннее устройство Microsoft Windows» (6-е издание, часть 1, глава 13 — «Загрузка системы»).
- Техническая документация Microsoft по утилите
bcdedit.exeиbootrec.exe. - Статья «BOOTMGR» на Википедии (русскоязычная версия).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →