Загрузчик для windows


Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС

В этой статье я не планирую подробно рассказывать обо всех типах загрузчиков, но хочу свести воедино всю необходимую информацию, которую нужно знать для создания загрузочных дисков, флэшек, а также для восстановления загрузчиков.

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

При включении компьютера управление процессором получает BIOS, и если он настроен на загрузку (boot) с винчестера, то он подгружает в оперативную память компьютера первый сектор диска (MBR) и передает управление ему. Если у вас несколько жестких дисков, то каждый из них содержит свою MBR. В этом случае можно или менять порядок загрузки дисков в BIOS, или же прописать все операционные системы с разных дисков в один PBR загрузчик, об этом ниже.

Сразу оговоримся, что если у BIOS у вас включен режим загрузки UEFI, то структура разделов диска у вас должна быть не MBR, а GPT. GPT имеет не только другую структуру разделов, но и другую структуру загрузочной области. Там в первый сектор записывается «заглушка» для BIOS (Protective MBR), которая служит для того, чтобы старый Legacy BIOS мог загрузиться с GPT диска в режиме совместимости, если ОС была установлена на GPT (часто в BIOS его называют CSM – Compatibility Support Module). Однако, вы никогда не сможете загрузить ОС с MBR диска, если в BIOS выставлена загрузка в режиме UEFI.

При загрузке операционной системы, сначала считывается первый сектор с устройства загрузки, представляющий собой главную загрузочную запись (Master Boot Record — MBR). Стандартно, в качестве MBR выступает первый сектор загрузочного диска. MBR содержит список разделов, признак активного раздела (раздела, с которого будет выполняться загрузка ОС), некоторые служебные данные, а также программный код для считывания в память загрузочного сектора активного раздела (Partition Boot Record — PBR) и передачи ему управления.

Размер сектора на жестком диске — 512 байт. В секторе MBR хранятся данные, которые должны заканчиваться специальной сигнатурой. Этим словом называется специальная, строго установленная, последовательность из 2 байт с шестнадцатеричными значениями 55h AAh, которая записывается в последние 2 байта сектора и соответственно имеет смещение от начала сектора 1FEh. Если хотя бы один из двух последних байтов отличается по значению, считается, что первый сектор не является MBR и не содержит осмысленной информации. Если компьютер при старте, прочитав первый сектор, не обнаружит правильной сигнатуры, он не будет передавать управление располагающемуся там коду, даже если он правильный, а выдаст сообщение о том, что главная загрузочная запись не найдена.

Общая структура MBR может быть представлена следующей таблицей:

Смещение Длина Описание

000h      446  Код загрузчика

1BEh       64  Таблица разделов

                16  Раздел 1

1CEh       16  Раздел 2

1DEh       16  Раздел 3

1EEh       16  Раздел 4

1FEh        2  Сигнатура (55h AAh)

Длина указана в байтах.

Как видно, MBR может содержать информацию максимум о 4 разделах. Каждый 16-байтовый блок, содержащий информацию о разделах, в своем начале содержит признак активности раздела — т.е. признак того, что операционную систему следует загружать именно из этого раздела — может иметь значения 80h (раздел активен) и 00h (раздел не активен). Количество активных разделов должно быть не более одного.

Шестнадцатеричный однобайтовый код далее указывает на тип (ID) раздела. Например, 07h – раздел типа NTFS, 0Bh – FAT32, 17h – скрытый NTFS раздел, 27h – системный скрытый NTFS раздел для восстановления системы.

Типы MBR

Выше мы увидели, что в сектор MBR записывается код загрузчика. Что же это? Дело в том, что в MBR может быть записан как «стандартный» загрузчик, так и альтернативные загрузчики.

Существуют следующие распространенные типы MBR:

  • Windows NT версий 5.х и 6.x, занимает 1 сектор. Может загружать ОС только с первичного активного раздела.
  • GRUB4DOS версий 5.х и 6.x – занимает 16 секторов. Представляет собой файл gbldr.mbr. также его можно установить в качестве PBR прямо в раздел.
  • GRUB 2.0 – универсальный загрузочный менеджер, занимает 63 сектора. Состоит из файлов boot.img и core.img. Может работать с любыми файловыми системами и загружать ОС как с первичных, так и логических разделов.
  • PLoP – занимает 62 сектора и имеет продвинутый интерфейс. Позволяет организовать загрузку с CD/Floppy/USB без поддержки и обращения к BIOS.
  • UltraISO USB-HDD – занимает 1 сектор и позволяет выполнять загрузку с внешних USB HDD дисков.

Конечно, с учетом многообразия ОС, существует масса других MBR, но они не так популярны.

Операционные системы дружат только с определёнными типа загрузчиков, однако это не значит, что их нельзя модифицировать для поддержки других ОС. Так, в Windows MBR можно добавить информацию о Linux разделе, но этого недостаточно, чтобы Linux стал грузиться. Для этого также потребуется редактировать и PBR. Однако линуксовый LDLINUX.SYS требует наличия своего микрокода в MBR, чтобы обращаться к нему в процессе загрузки, то есть если у вас загрузочная запись Windows NT MBR, а загрузчик GRUB, то такая схема работать не будет. Виндовсовые загрузчики могут обойтись без наличия соответствующего микрокода в MBR, поэтому они могут грузиться и через GRUB MBR.

Главное, что вам нужно понять, что MBR содержит микрокод, инструкции для процессора, а не файлы. PBR же указывает на загрузчик, который является файлом.

Разнообразие PBR

Мы с вами выяснили, что MBR передает управление на активный раздел с PBR. PBR (Partition Boot Record), так же называют volume boot record (VBR) – это микрокод в начальном секторе раздела диска (часто это сектор 63), который содержит информацию, какой же загрузчик искать.

Существуют следующие загрузчики:

Тип MBR — NT 5.x/6.x, 1 сектор

  • io.sys для MS-DOS, Windows 95/98/МЕ
  • ntldr для Windows 2000/XP/2003
  • bootmgr для Windows Vista/7/8/8.1/10

Тип MBR — Grub4DOS, 18 секторов

Тип MBR — LILO/GRUB и др. линуксовые (к-во секторов зависит от версии и количества файлов)

  • ldlinux.sys – основной базовый модуль
  • syslinux.sys — для загрузки с FAT, FAT32, NTFS
  • isolinux.bin — для загрузки с iso9660
  • pxelinux — для загрузки по PXE
  • extlinux для загрузки с ext2/ext3/ext4 или btrfs

Как я сказал выше, загрузчик является не загрузочной областью, а бинарным файлом.

  • Файлы Windows NTLDR или BOOTMGR должны лежать в корне активного системного раздела и работают они по-разному. Об этом ниже.
  • Файл GRLDR используется Grub4DOS также должен лежать в корне партиции, с котрой выполняется загрузка
  • Syslinux – универсальный загрузчик, содержащий много модулей и поддерживающий загрузку с файловых систем ext2/¾, FAT, NTFS, CD/DVD дисков, по сети через PXE. Позволяет организовать текстовое или графическое загрузочное меню.Чаще всего этот загрузчик используют для запуска Linux с файловых систем FAT/NTFS или же создания мультизагрузочных USB флэшек, позволяющих загружать как Linux-совместимые приложения под DOS, так и Windows PE.

Например, типичные пример создания мультизагрузочной флэшки – Multiboot USB 2k10, создаваемые уважаемыми conty9 & korsak7. Мультизагрузочный диск системного администратора с возможностью загрузки c CD/DVD, флешки, USB-HDD и обычного HDD и состоящий из нескольких Windows PE-сборок, а также DOS версий продуктов компании Acronis – например Acronis True Image (выполнены на Linux-ядре). Именно из-за этого смешанного зоопарка систем и приходится использовать загрузчик Syslinux (хотя можно и Grub4DOS).

В своем арсенале вам необходимо обязательно иметь утилиту BootICE. Уникальная в своём роде утилита для изменения или бэкапа/восстановления MBR (Master Boot Record) или PBR (Partition Boot Record). С BOOTICE, вы можете легко изменять тип MBR/PBR. Поддерживается загрузочные записи: Grub4DOS, SysLinux, PLoP, MS NT52/60… Например, с помощью этой утилиты, вы можете установить Grub4DOS вашим MBR или PBR, установить NTLDR или BOOTMGR к вашему PBR, установить SYSLINUX на PBR, и так далее.

Редактирование и установка MBR

 

Редактирование и установка загрузчика

 

Установка MBR GRUB4DOS

Помимо работы с MBR и PBR, BootICE позволяет редактировать разделы диска, выполнять ручное разбиение и форматирование, модифицировать тип раздела, сохранять и восстанавливать из бэкапа таблицу разделов.

Работа с таблицей разделов в BootICE

Кратко о загрузчике Syslinux

Обратите внимание, что загрузчик Syslinux сам по себе не может быть установлен в MBR, однако в пакете syslinux имеются два файла, из которых можно установить загрузочный код Syslinux в 440-байтную область загрузочного кода MBR: mbr.bin или gptmbr.bin. Конечно, это имеет смысл только для Linux.

Кстати, syslinux может быть использовать с UEFI – для него загрузчик называется syslinux.efi, однако он еще достаточно сырой.

Итак, Syslinux состоит из файла загрузчика и файла конфигурации меню syslinux.cfg. Файл меню может вызывать графическое меню через подгрузку файла vesamenu.c32.

Установка Syslinux под Windows на другой диск выполняется достаточно просто: используется файл [bios/]«win32/syslinux.exe» для 32-х битных систем и [bios/]«win64/syslinux64.exe» для 64-х битных систем.

syslinux.exe --install a: — установка на флоппи-диск

syslinux.exe --mbr --active --directory /boot/syslinux/ --install z:    — установка на диск z:, например флешку, где

— в качестве разделителей должны быть использованы именно /, а не \

— в каталоге z:\boot\syslinux\ будет размещён файл-загрузчик «ldlinux.sys»

— и раздел z: помечен как активный

— для организации меню должен быть создан файл z:\boot\syslinux\syslinux.cfg

Установка загрузчика Syslinux

Через BootICE вы также можете установить загрузчик Syslinux, указав в опциях альернативное местоположение файлов ldlinux.sys и и файла меню syslinux.cfg.

Загрузчики Windows

Конечно, основное внимание мы уделим загрузчикам для Windows.

Загрузчик NTLDR использовался до появления операционной системы Windows Vista. В процессе начальной загрузки, программный код загрузочного сектора раздела (PBR — Partition Boot Sector) обеспечивал поиск, считывание в память и передачу управления файлу ntldr, который размещался в корневом разделе загрузочного диска. Конфигурирование загрузчика ntldr выполнялось с помощью простого текстового файла boot.ini, содержимое которого задавало список загружаемых операционных систем, их параметры загрузки, размещение системных файлов и т.п. В операционных системах Windows Vista /Server 2008 и более поздних, загрузчик ntldr не используется, и заменен диспетчером загрузки BOOTMGR. Соответственно, изменился и программный код загрузочного сектора раздела, обеспечивающий передачу управления файлу bootmgr. Новый диспетчер загрузки использует собственные данные конфигурации загрузки (Boot Configuration Data — BCD) и может выполнять, при определенных настройках, загрузку любых операционных систем семейства Windows. Загрузчик ntldr не поддерживает возможность загрузки Windows Vista и старше.

Также, хочу отметить, что все современные Windows PE любых версий также используют загрузчик bootmgr. Цепочка стадий загрузки MBR — PBR — BOOTMGR — это минимально необходимое условие для того, чтобы загрузка операционной системы могла начаться. Дальнейший же ее ход, определяется диспетчером загрузки BOOTMGR, который считывает данные конфигурации загрузки из файла \BOOT\BCD активного раздела и выполняет загрузку в соответствии с их содержимым.

Для Windows 7 он запускает файл \WINDOWS\system32\winload.exe

Загрузка WINDOWS\system32\winload.exe

Диспетчер загрузки bootmgr позволяет выполнить загрузку как с обычного системного диска, так и из загрузочных образов, виртуальных дисков, загрузку с использованием загрузчиков других операционных систем. Это позволяет использовать bootmgr для загрузки Windows PE. В соответствии с конфигурацией загрузки, диспетчер BOOTMGR может выполнить загрузку ядра Windows или, например, Linux, обеспечить выход из режима гибернации, загрузить диагностические программы, выполнить загрузку ядра с измененными параметрами и т.п.

Обычно файл bootmgr имеет атрибуты «скрытый» и «системный». По типу структуры, файл \Boot\BCD является кустом реестра и отображается в редакторе реестра Windows как раздел

HKEY_LOCAL_MACHINE\BCD00000000.

Обычно именно конфигурация BCD становится наибольшим камнем преткновения.

Конфигурирование BOOTMGR и BCD

Для работы с загрузчиком Windows вам понадобятся системные утилиты:

Команда BCDEDIT применяется в операционных системах Windows Vista и старше для редактирования BCD. Подробную инструкцию по использованию этой утилиты можно найти здесь.

Однако, я вам крайне рекомендую использовать очень удобную программу EasyBCD для редактирования BCD. Например, с помощью нее вы легко можете добавить Linux раздел в меню загрузки. Вот статья о том, как добавить в BCD конфигурацию Windows 7 пункт загрузки Linux Ubuntu.

При запуске EasyBCD в окне View Settings можно посмотреть текущую конфигурацию BCD. На скриншоте видно, что в текущий момент на диске установлена одна Windows 7, GUID которой {9079c27c-fa49-11e5-8c8e-3417ebc2574d} и вручную добавленный пункт меню для запуска установки Windows из WIM файла:

BCD menu для загрузки Windows и установки из WIM файла

А вот BCD меню загрузочной флэшки, на которой присутствуют инсталляторы Windows 7 x86 и x64, а также две среды MSDaRT x86 + x64:

BCD меню загрузочной флэшки, overview

 

BCD menu — установка Windows из WIM файла x86 и x64

 

Запуск среды восстановления Windows RE с загрузочной флэшки

 

Утилита BOOTSECT.EXE позволяет изменить программный код загрузчика Windows для переключения между двумя вариантами диспетчера загрузки — BOOTMGR или NTLDR – или восстановить поврежденный загрузчик!

Например,

Команда bootsect /nt60 E: /mbr /force – создает на диске E: (например, флэшке) записи MBR и PBR и устанавливает загрузчик bootmgr.

Ну и третья, крайне важная утилита — BootRec входит в состав средств среды восстановления Windows (Windows Recovery Environment) и применяется для восстановления загрузки операционной системы. Найди ее вы можете, загрузившись с установочного диска Windows и выбрав вместо установки опцию «Восстановление системы». Появится окно MSDaRT, откуда можно запустить командную строку и набрать там BootRec.exe. MSDaRT также можно скачать отдельно (это бесплатный продукт Microsoft) и сделать загрузочную флэшку/диск с ним.

Команда Bootrec /FixMbr – записывает основную загрузочную запись (MBR) системного раздела, совместимую с Windows. При этом существующая таблица разделов не перезаписывается.

Bootrec /FixBoot – записывает в системный раздел новый загрузочный сектор, совместимый с Windows.

bootrec /RebuildBCD – перестроить хранилище конфигурации загрузки на данном компьютере. Удобно использовать для изменения конфигурации BCD при добавлении нового диска с установленной Windows, или для внесения изменений в существующую конфигурацию загрузки новых или ранее не использовавшихся ОС.

Загрузчик GRUB4DOS

Это один из наиболее универсальных загрузчиков, способных загружать почти любую операционную систему с любого носителя. Пользователям Linux установка GRUB очевидна, для Windows все не так просто. GRUB имеет смысл использовать, например, одним из загрузчиков мультизагрузочной флэшки, ведь он поддерживает chainloader — передачу управления на другой загрузчик по цепочке. Таким образом, на флэшке можно установить GRUB MBR, который будет обращаться к загрузчику grldr, который в свою очередь через меню позволяет перенаправить запросы на bootmgr, например, для установки Windows.

Загрузчик состоит из следующих файлов:

Файл grldr.mbr нужен для установки GRUB в качестве MBR. Итак, GRUB можно установить руками под Windows или же воспользоваться различными утилитами.

Установка GRUB загрузчика под Windows

Представим, что у вас уже есть Windows с загрузчиком bootmgr. Вам необходимо будет добавить в BCD записи о новом загрузчике, чтобы не лишаться существующего. Порядок действий:

  1. Файлы загрузчика Grub4dos - grldr.mbr и grldr - размещаются в доступном месте, например в корне диска C:\ (может быть FAT32, NTFS). Скачать файлы можно с официального репозитария.
  2. Далее добавляем загрузчик в BCD или через командную строку и команду bcdedit, о которой шла речь выше, или утилиты BootICE/EasyBCD. В командной строке выполняются следующие команды: > bcdedit /create /d "Grub4Dos" /application bootsector - создание новой записи с именем "Grub4Dos" в хранилище данных конфигурации загрузки, запомните GUID новой записи > bcdedit /set {id} device partition=C: - описание свойств новой записи, {id} - GUID, который вы запомнили выше > bcdedit /set {id} path \grldr.mbr - {id} это идентификатор созданной записи, выданный первой командой > bcdedit /displayorder {id} /addlast - (опционально) смещение новой записи в конец меню
  3. Создаётся меню загрузчика Grub4dos - C:\menu.lst

Вот и все, не так и сложно.

Сложнее отредактировать меню menu.lst. Вот список основных команд консоли GRUB (их можно исполнять как вручную из командной строки, так и из файла меню):

# комментарий - знак решётки - указание загрузчику не обрабатывать строку boot - передача управления ядру, загруженному командой kernel или "следующему" загрузчику, по команде chainloader color light-gray/black yellow/green light-cyan/black light-green/black - задаёт цвета меню chainloader /ntldr - передает управление загрузчику, в примере /ntldr chainloader (hd0)+1 - передает управление на загрузочный сектор устройства (hd0) chainloader +1 - передает управление на загрузочный сектор корневого устройства configfile /cfg/next.lst - открывает файл конфигурации, перейти в субменю default 0 - установка пункта меню по умолчанию, выполняемого по истечении таймаута fallback 1 - установка пункта меню выполняемого, если невозможна загрузка по умолчанию find --set-root /file - поиск файла и установка раздела на котором он расположен в качестве корневого halt - выключение рабочей станции gfxmenu /boot/message33.gz - установка фоновой графической картинки, оно же русификация меню quit - выход из GRUB, в DOS map (hd0) (hd1) - "свопирование" разделов для обеспечения возможности загрузки windows со второго и последующих дисков map (hd1) (hd0) timeout 20 - установка времени в секундах до выполнения команды следующей команды title Boot Name - название пункта меню pause - ожидание нажатия клавиши rootnoverify (hd0,0) - отмена проверки тип файловой системы диска выбранного командой root root (hd0,1) - выбор корневого (текущего) диска reboot - перезагрузка рабочей станции

Приведу примеру рабочих кусков кода из файла меню:

1 2 3 4 5 6 7 8 title Установка Windows XP with SP3 x86 RUS. root (hd0,0) map --mem /WINSETUP/XPpSP3.ISO (0xff) map (hd0) (hd1) map (hd1) (hd0) map --hook root (0xff) chainloader /I386/SETUPLDR.BIN

title Установка Windows XP with SP3 x86 RUS. root (hd0,0) map --mem /WINSETUP/XPpSP3.ISO (0xff) map (hd0) (hd1) map (hd1) (hd0) map --hook root (0xff) chainloader /I386/SETUPLDR.BIN

1 2 3 4 title Установка Windows 7 with SP1 x86-x64 + MSDaRT 7.0 RUS. find --set-root /bootmgr chainloader /bootmgr boot

title Установка Windows 7 with SP1 x86-x64 + MSDaRT 7.0 RUS. find --set-root /bootmgr chainloader /bootmgr boot

1 2 3 4 5 6 7 title Загрузка WinPe RusLive Special Edition 2k10 RUS. find --set-root --ignore-floppies /2K10/WINPE/RLPE.BIN chainloader /2K10/WINPE/RLPE.BIN title Acronis DD 11 and True Image Home 2012 RUS. map /PROG/ATIh3012PP_6151_ADDh21_2343_ru-RU.iso (0xFF) || map --mem /PROG/ATIh3012PP_6151_ADDh21_2343_ru-RU.iso (0xFF) map --hook chainloader (0xFF)

title Загрузка WinPe RusLive Special Edition 2k10 RUS. find --set-root --ignore-floppies /2K10/WINPE/RLPE.BIN chainloader /2K10/WINPE/RLPE.BIN title Acronis DD 11 and True Image Home 2012 RUS. map /PROG/ATIh3012PP_6151_ADDh21_2343_ru-RU.iso (0xFF) || map --mem /PROG/ATIh3012PP_6151_ADDh21_2343_ru-RU.iso (0xFF) map --hook chainloader (0xFF)

1 2 3 4 5 6 7 8 title Hiren's BootCD v.15.1 RUS. find --set-root /PROG/hiren.ima map /PROG/hiren.ima (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) map --floppies=1 boot

title Hiren's BootCD v.15.1 RUS. find --set-root /PROG/hiren.ima map /PROG/hiren.ima (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) map --floppies=1 boot

1 2 3 4 5 6 7 title Victoria v.3.52 RUS. find --set-root /PROG/vcr352r.iso map --mem /PROG/vcr352r.iso (0xff) map --hook root (0xff) chainloader (0xff) boot

title Victoria v.3.52 RUS. find --set-root /PROG/vcr352r.iso map --mem /PROG/vcr352r.iso (0xff) map --hook root (0xff) chainloader (0xff) boot

1 2 3 title Alkid Live CD root (hd0,0) chainloader (hd0,0)/minint/setuplns.bin

title Alkid Live CD root (hd0,0) chainloader (hd0,0)/minint/setuplns.bin

Если вам совсем не хочется, существует программа GRUB4DOS Installer, и даже удобный русский инсталятор для нее, но этот вариант вам не позволит сделать комбинированный загрузчик. Он задаст вопрос, куда распаковать файлы и куда установить загрузчик, после чего сделает все сам: отформатирует, установить MBR, скопирует файлы. Но я лично против такой «автоматизации».

Также, для любителей конфигурировать загрузчик из-под Windows, существует утилитка WinGRUB, которая устанавливает GRUB без форматирования флэшки.

Если все-таки вам не хватило нервов и сил разобраться в написании меню, то есть программки, которые сделают меню загрузки и установят загрузчик за вас, вам нужно только выбрать ISO файлы дистрибутивов, которые надо добавить:

Для желающих создать подобные флэшки рекомендую также почитать профильные сайты: greenflash.su, flashboot.ru и usbtor.ru.

Выводы

Итак, чтобы была возможность загрузить ОС, необходимо, чтобы был установлен корректный загрузчик MBR, который заканчивается валидной сигнатурой, должна быть таблица разделов, и хотя бы один раздел должен быть помечен как активный. А в самом разделе, куда MBR передаст управление, должна быть валидная загрузочная запись, которая укажет, какой системный файл необходимо загрузить в память для начала загрузки самой ОС. Кроме того, должно быть загрузочное меню, которое укажет на местоположение загрузочных файлов ОС.

Популярность: 1%

ОСиBCD, boot, BootICE, bootmgr, EwsyBCD, GRUB, GRUB4DOS, MBR, ntldr, PBR, syslinux, загрузка, загрузчики

Понравилась публикация? Почему нет? Оставь коммент ниже или подпишись на feed и получай список новых статей автоматически через feeder.

hww.ru

Загрузчик Windows 7/8/8.1. « Blog of Khlebalin Dmitriy

Загрузчик Windows 7/8/8.1.

Вчера вечером мне по определенным причинам потребовалось поправить загрузчик Windows 7. И если в Windows XP  я просто мог открыть TotalCom и  быстренько блокнотом поправить файл boot.ini, то сейчас  для этого Microsoft предлагает нам встроенную утилиту  BCDEDIT. Но «заморачиваться» с ней вчера вечером у меня не было ни времени ни желанья, поэтому я  решил найти для себя более легкий альтернативный вариант, ну а сегодня на работе поглубже вдался в теорию…

Существовавший еще с времен Windows NT, загрузчик операционной системы NTLDR, начиная с Windows Vista, заменен новым диспетчером загрузки BOOTMGR. Вызвано это тем, что старый добрый NTLDR уже не годился для выполнения загрузки системы на компьютерах, использующих спецификацию Extensible Firmware Interface (EFI), призванной заменить базовую систему ввода-вывода BIOS. Модель EFI является новым поколением реализации интерфейса между оборудованием компьютера и операционными системами, и в недалеком будущем полностью заменит просуществовавшую несколько десятилетий модель BIOS. Новый диспетчер загрузки ориентирован на использование специального хранилища конфигурации, приложений и данных спецификации EFI, а также обеспечивает поддержку загрузки операционных систем для предыдущего поколения компьютеров на базе BIOS.

Данная статья не касается особенностей использования BOOTMGR в системах с EFI , и в основном, рассматривает принципы использования диспетчера загрузки на стандартном компьютерном оборудовании, не использующем новый интерфейс.

Механизм загрузки операционной системы Windows 7.Процесс загрузки любой операционной системы начинается всегда одинаково — после проверки оборудования, управление получает подпрограмма BIOS, (Basic Input/Output System), считывающая с устройства загрузки первый сектор, являющийся главной загрузочной записью MBR ( Master Boot Record ). Стандартно MBR располагается в первом секторе загрузочного диска и занимает 512 байт (стандартная длина сектора). Это не обязательное условие — MBR может занимать более одного сектора, что зависит от конкретной разновидности загрузчика. Хотя запись MBR не является строго зависимой от платформы загружаемой ОС, она отличается, например, для файловых систем DOS, Windows и Linux.

Структура MBR включает в себя 2 основных элемента — программный код первичного загрузчика и таблицу разделов. Обязательным признаком наличия записи MBR является специальный код (сигнатура) в двух последних байтах — 55AA. Наличие сигнатуры проверяется подпрограммой BIOS в первую очередь, и при ее отсутствии, диск считается не загрузочным. Многие программы работы с жесткими дисками позволяют просматривать и редактировать данные выбранных секторов. Так, например, выглядит запись MBR, просматриваемая с помощью бесплатной версии Victoria for Widows

Перед сигнатурой (по смещению 0x1BE относительно начала сектора) располагается таблица разделов (Partition Table), состоящая из 4-х элементов по 16 байт каждый, что определяет максимальное число (не более4-х) первичных разделов на одном жестком диске. Соответственно, размер таблицы разделов — 64 байта.

Каждый элемент таблицы описывает тип раздела (00h — раздел неопределенного типа, попросту — свободное место, 01h — 12 битный FAT, 05h — дополнительный раздел, 07h — NTFS и т.п.),признак активности (возможности загрузки) — код 80h, адрес начала, адрес конца, смещение относительно MBR и размер — количество блоков распределенное данному разделу.

В общем виде, структура главной загрузочной записи MBR, может быть представлена следующим образом:

— программный код и данные начального загрузчика. (446 байт.)— таблица разделов диска (4 поля по 16 байт — 64 байта)— сигнатура 55AA (2 байта)

После считывания в оперативную память компьютера, программный код начального загрузчика получает управление и выполняет поиск активного раздела (Active), — раздела, с которого может выполняться загрузка конкретной операционной системы. Такой раздел имеет свою загрузочную запись, называемую загрузочной записью раздела PBR ( Partition Boot Record ) . Содержимое загрузочной записи активного раздела зависит от загружаемой операционной системы и, обычно имеет размер более чем длина одного сектора.

В случае с загрузкой Windows 7 (а также Windows Vista / Server 2008 и последующих ОС семейства Windows) программный код загрузчика раздела выполняет подготовку и выполнение следующего этапа загрузки системы — считывание в оперативную память и передачу управления специальной программе — диспетчеру загрузки BOOTMGR .

Диспетчер загрузки bootmgr представляет собой файл небольшого размера, расположенный в корневом каталоге активного раздела. Основное его предназначение — обеспечение дальнейшей процедуры загрузки в соответствии с существующей конфигурацией, хранящейся в специальном хранилище — хранилище данных конфигурации ( BCD — Boot Configuratin Data ), представляющем собой файл с именем BCD, находящийся в каталоге BOOT активного раздела. Следующий этап загрузки операционной системы обеспечивается уже диспетчером bootmgr в соответствии с существующей конфигурацией. В общем случае, диспетчер загрузки может выполнить не только загрузку ядра установленной на данном компьютере Windows, но и другие, имеющиеся в конфигурации варианты — загрузку Windows NT/2000/XP, операционных систем семейства Linux, загрузку ОС из образов ( файлов wim ) , виртуальных дисков ( файлов VHD ) и т.п.

При стандартной установке операционной системы Windows 7 на новый жесткий диск, в качестве активного раздела используется, автоматически создаваемый при инсталляции в первой части диска, раздел небольшого размера ( около 100Мб). Данному разделу не присваивается буква, и в проводнике он не отображается. Это сделано с целью защиты загрузчика от небезопасных для него действий пользователя — удаления файлов конфигурации или самого диспетчера, сжатия файловой системы и т.п. Кроме того, при такой организации структуры диска, легко реализуется процедура восстановления активного раздела из ранее созданного образа без потери установленной системы и пользовательских данных.

При просмотре в Диспетчере логических дисков, активный раздел отображается под названием «Зарезервировано системой» :

Таким образом, для того, чтобы выполнилась загрузка Windows с диспетчером BOOTMGR, активный раздел, как минимум, должен содержать правильную загрузочную запись PBR, файл диспетчера bootmgr и конфигурационные данные в файле \BOOT\BCD, являющимся системным хранилищем конфигурации загрузки. В случае с загрузкой Windows, диспетчер bootmgrсчитывает из хранилища конфигурации данные, необходимые для загрузки ядра системы, и передает управление приложению, выполняющему следующий этап ( winload.exe ) .

Кроме хранилища конфигурации загрузки, в данном разделе могут быть файлы и каталоги, необходимые для выполнения загрузки в соответствии с имеющимися дополнительными конфигурациями, например, загрузчик предыдущих Windows NTLDR и необходимые для него файлы, а также средства поддержки национальных алфавитов ( файлы локализации).

Хранилище данных конфигурации загрузки (BCD Store).Обычно файл bootmgr и каталог \Boot имеет атрибуты «скрытый» и «системный». Для получения доступа к активному разделу стандартными средствами, можно присвоить ему букву и включить отображение скрытых файлов, однако, нужно понимать, что любое неквалифицированное вмешательство в конфигурацию загрузки может привести к невозможности ее выполнения. При чем, неработоспособную конфигурацию загрузки можно получить даже без выполнения вышеперечисленных действий. Например, при неверном использовании стандартного редактора хранилища конфигурации — утилиты командной строки BCDEDIT. Поэтому, прежде чем вносить какие-либо изменения в конфигурацию загрузки, необходимо позаботиться о том, чтобы иметь возможность восстановления работоспособности системы в том случае, когда ее загрузка станет невозможной. Вопросам восстановления загрузки посвящен отдельный раздел статьи и, настоятельно рекомендую, прежде чем приступать к практическим действиям, внимательно ознакомиться с ним.

Программный код диспетчера загрузки , получив управление, выполняет поиск и обработку данных конфигурации загрузки (файл BCD в папке \BOOT\ активного раздела), в соответствии с которыми выполняется дальнейшие этапы загрузки ( отображение меню, выбор загружаемой ОС или средств диагностики, загрузка ядра и т.п. ). По своей структуре, файл \\boot\BCD является кустом реестра и отображается в редакторе реестра Windows как раздел HKEY_LOCAL_MACHINE\BCD0000000x 

Таким образом, диспетчер загрузки bootmgr работает с данными хранилища конфигурации загрузки BCD как с обычным разделом реестра Windows. Поскольку, данный раздел реестра предназначен для использования загрузчиком BOOTMGR, при ручном просмотре c использованием редактором реестра, он имеет разрешение только на чтение, которое можно изменить с помощью контекстного меню, вызываемого правой кнопкой мышки. Естественно, на данный раздел реестра, как и на любой другой, распространяются все допустимые действия, выполняемые в редакторе — просмотр, изменение, удаление, импорт и экспорт.

Раздел конфигурации BCD содержит подраздел Description с параметрами описания и подраздел Objects с объектами конфигурации загрузки. Данные конфигурации загрузки можно условно разделить на 3 основных составляющих:

— хранилище BCD (Store)— записи в хранилище (Entries)— параметры записей (Entry Options)

Иерархически, хранилище конфигурации загрузки представляет собой совокупность объектов (Objects ), состоящих из отдельных элементов (Elements):

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

— приложения ( application objects)— наследуемые объекты ( inheritable objects)— устройства (device objects)

Если вернуться к отображаемой редактором реестра структуре хранилища конфигурации, то заметно, что каждый подраздел раздела Objects имеет имя, представляющее собой глобальный уникальный идентификатор — GUID . Идентификатор GUID формируется программным путем и однозначно является уникальным для той системы, где он создается. Алгоритм формирования GUID построен таким образом, что каждый новый генерируемый идентификатор никогда не совпадает с другим, существующим в данной системе. Обозначается GUID в виде групп из шестнадцатеричных цифр, разделяемых дефисами, и заключенными в фигурные скобки:

{d1f837a2-7e0f-11df-bc8b-f6edb78d41b5}

Некоторые объекты стандартных приложений конфигурации загрузки имеют предопределенные идентификаторы, связывающие некоторые из идентификаторов GUID с внутренними идентификаторами (псевдонимами) редактора bcdedit

Так например, псевдониму {ntldr} используемому в качестве параметра команды bcdedit всегда соответствует GUID, приведенный в таблице — {466f5a88-0af2-4f76-9038-095b170dc21c}.

Каждый из разделов подраздела Objects также состоит из двух подразделов — Descriptions с описанием типа объекта и Elements, определяющего набор элементов с параметрами объекта. В разделе Description имеется ключ Type типа REG_DWORD, значение разрядов 28-31 которого определяет тип объекта ( значение в старшей тетраде старшего байта ) :

0x1 — приложение0x2 — наследуемый объект0x3 — устройство.

Имена разделов реестра, связанных с элементами объекта, типы данных и значения параметров зависят от конкретной конфигурации загрузки, созданной для использования диспетчеромBootmgr. Если внимательно присмотреться к именам подразделов, то можно заметить, что имя подраздела связано с его содержимым, так например подраздел с именем 12000004 всегда содержит строковый параметр с текстовым описанием элемента :

[HKEY_LOCAL_MACHINE\BCD00000000\Objects\{b2721d73-1db4-4c62-bf78-c548a880142d}\Elements\12000004]«Element»=»Диагностика памяти»

Или для элемента конфигурации диспетчера загрузки bootmgr :

[HKEY_LOCAL_MACHINE\BCD00000000\Objects\{9dea862c-5cdd-4e70-acc1-f32b344d4795}\Elements\12000004]«Element»=»Windows Boot Manager»

С назначением прочих имен подразделов раздела [HKEY_LOCAL_MACHINE\BCD00000000\Objects\. . . \Elements\ и их содержанием можно разобраться по описанию библиотеки элементов BCD на странице msdn.microsoft.com

Вполне понятно, что работать с данными конфигурации BCD в среде редактора реестра практически невозможно, поэтому в Windows Vista и более поздних ОС семейства Windows появилась специальная утилита bcdedit.exe предназначенная для работы с хранилищами конфигурации загрузки ( BCD EDITor ).Раздел реестра HKEY_LOCAL_MACHINE\BCD00000000 используется, существующим в данной системе диспетчером BOOTMGR, и является системным хранилищем конфигурации ( System BCD Store ). Упоминаемая выше команда для редактирования конфигурации загрузки BCDEDIT может использоваться не только для редактирования системного хранилища, но и любого другого, задаваемого параметром командной строки /store 

bcdedit /store D:\BCDBackup\bcdsave — команда BCDEDIT выполняется для хранилища конфигурации загрузки в файле bcdsave каталога BCDBackup на диске D:. Если в командной строкеbcdedit не задан ключ /store — то ее действие выполняется по отношению к системному хранилищу (активной конфигурации, используемой для данной загрузки).

Как уже упоминалось выше, при выполнении команд BCDEDIT к некоторым из объектов хранилища можно применять псевдонимы , например {bootmgr}, (соответствует диспетчеру загрузки ) и {default} (соответствует используемому по умолчанию загрузчику Windows). Для отключения использования псевдонимов в командной строке bcdedit предусмотрен ключ /v:

bcdedit /v /enum all — отобразить все ( all) записи конфигурации загрузки в системном хранилище без использования псевдонимов.

Более подробное описание команды BCDEDIT — можно найти здесь. 

Кроме утилиты командной строки BCDEDIT, для работы с конфигурацией загрузки, возможно использование средств инструментария управления Windows — Windows Management Instrumentation (WMI). Провайдер WMI предоставляет программный интерфейс для доступа к элементам конфигурации загрузки и позволяет решать те же задачи, что и редактор bcdedit . Описание элементов WMI для работы с BCD на английском языке — можно найти на страницах Microsoft MSDN

Пример сценария на языке Visual Basic, выполняющего экспорт системного хранилища конфигурации загрузки в файл C:\wmistore:

‘‘Пример экспорта BCD Store в файл‘‘Подключение к WMIset oLocator = CreateObject( «WbemScripting.SWbemLocator» )set oRootWMI = oLocator.ConnectServer( «.», «root\wmi» )oRootWMI.Security_.ImpersonationLevel = 3‘ Создание объекта BCDset oBCD = GetObject( «winmgmts:{impersonationlevel=Impersonate,(Backup,Restore)}!root/wmi:BcdStore»)if Err.number <> 0 thenWScript.Echo «ERROR: Failed to connect to WMI BCD Object»WScript.Quit(1)end if

‘ Открытие системного хранилища конфигурацииif not oBCD.OpenStore( «», oBcdStore ) thenWScript.Echo «ERROR: Failed to open the system BCD store»WScript.Quit(1)end if‘Экспорт системного хранилища в файл C:\wmistoreif not oBcdStore.ExportStore( «C:\WMISTORE» ) thenWScript.Echo «ERROR: Failed to export BCD Store»end if

WScript.Echo «Finished Exporting System BCD»

При работе с системным хранилищем конфигурации, необходим запуск сценария от имени администратора. Это же требование относится и к использованию утилиты BCDEDIT.EXE . Выполнение экспорта системного хранилища конфигурации с помощью утилиты BCDEDIT выглядит немного проще:

bcdedit /export C:\Backup\bcb — выполнить экспорт в файл C:\backup\bcd

Для просмотра содержимого хранилища конфигурации можно воспользоваться командой:

bcdedit /enum all — отобразить все записи в BCD

bcdedit /enum all > C:\enum-all.txt — то же, что и в предыдущем случае, но с выводом результатов в текстовый файл enum-all.txt на диске C: .

Пример конфигурации для диспетчера загрузки:

Диспетчер загрузки Windows———————идентификатор {bootmgr}device partition=Z:description Windows Boot Managerlocale ru-ruinherit {globalsettings}default {current}resumeobject {52d2064e-3939-11e2-aab2-005056c00008}displayorder {current}{d1f837a4-7e0f-11df-bc8b-f6edb78d41b5}{52d2064c-3939-11e2-aab2-005056c00008}{52d2064d-3939-11e2-aab2-005056c00008}toolsdisplayorder {memdiag}timeout 30

идентификатор — псевдоним или GUID конфигурации диспетчера bootmgrdevice — устройство загрузки. Либо буква диска, если она присвоена активному разделу, либо ссылка на раздел без буквы — partition=\Device\HardDiskVolume1 (Volume2 . . . )description — текстовое описание элемента, в данном случае — диспетчера bootmgr.locale — используемая локализация (язык элемента)inherit — наследуемые установки.default — псевдоним или GUID конфигурации загрузки системы, выполняемой по умолчанию.resumeobject — GUID конфигурации для приложения, выполняемого при выходе из спящего режима (гибернации). В документации называется приложением возобновления (Windows Resume Application ).displayorder — задает порядок отображения пунктов меню загрузчика для нескольких операционных систем.toolsdisplayorder — задает порядок отображения пунктов меню загрузчика для нескольких вариантов средств диагностики.timeout — время ожидания выбора одного из пунктов меню.

Пример конфигурации элемента загрузки операционной системы Windows Vista и более поздних ОС семейства Windows:

Загрузка Windows——————-идентификатор {52d2064f-3939-11e2-aab2-005056c00008}device partition=C:path \windows\system32\winload.exedescription Windows 7locale ru-ruinherit {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}osdevice partition=C:systemroot \windowsresumeobject {52d2064e-3939-11e2-aab2-005056c00008}nx OptIndetecthal Yes

идентификатор — псевдоним или GUID конфигурации для загрузки данной ОС Windowsdevice — буква, соответствующая логическому диску с установленной ОС Windows.path — путь приложения загрузки ядра системы.description — текстовое описание элемента, в данном случае — загружаемой ОС Windows.osdevice — буква диска для данной ОСsystemroot — корневой каталог загружаемой ОС.resumeobject — GUID конфигурации для приложения, выполняемого при выходе из спящего режима (гибернации).nx — настройки безопасности, задающие использование режима предотвращения выполнения данных (Data Execution Prevention, DEP)detecthal — определение конфигурации оборудования и создание уровня программного доступа к нему.Большинство параметров элементов конфигурации загрузки можно изменить с помощью утилиты bcdedit.exe с параметром /set:

bcdedit.exe /set {current} nx AlwaysOff — отключить функцию DEP для текущей системы, независимо от наличия аппаратной поддержки DEP.bcdedit.exe /set {6efb52bf-1766-41db-a6b3-0ee5eff72bd7} nx OptIn — включить функцию DEP для системы с указанным GUID

Примеры изменения конфигурации загрузки можно найти на странице с описанием утилиты командной строки BCDEDIT упоминаемой выше.

Очевидно, что стандартные средства конфигурирования загрузки Windows 7 (а также Windows Vista, Windows Server2008, Windows 8) не очень удобны и, кроме того, не имеют защиты от создания неработоспособной конфигурации для диспетчера загрузки <b<bootmgr< b=»»>. Один неверный параметр сценария WMI, или ошибка в командной строке bcdedit может легко сделать невозможной загрузку ядра системы. Именно поэтому, довольно большой популярностью пользуются программные продукты сторонних производителей с графическим интерфейсом пользователя, позволяющие в несколько щелчков мышью, выполнить наиболее востребованные действия по редактированию конфигурации загрузки. Одной из таких программ является бесплатная для частного некоммерческого использования программа EasyBCD разработанная компанией NeoSmart Technologies. Скачать последнюю версию EasyBCD можно на странице загрузки

Именно этой утилитой я и воспользовался вчера, поправил все что мне было необходимо за 5 сек.

EasyBCD позволяет довольно просто создавать элементы конфигурации загрузки для диспетчера bootmgr, необходимые при выполнении загрузки старых версий Windows, загрузки операционных систем семейства Unix/BSD/Linux, загрузки Windows PE, образов и виртуальных дисков. Имеется возможность сохранения текущей конфигурации загрузки, и ее восстановления из ранее сделанной копии. В целом, программа объединяет в себе возможности нескольких стандартных утилит командной строки Windows для работы с загрузочными данными (bcdboot.exe , bcdedit.exe , bootsect.exe ) . Кроме всего прочего, EasyBCD может использоваться не только в среде ОС Windows ориентированных на загрузку с помощью диспетчера bootmgr, но и в среде Windows XP и даже Windows PE с поддержкой .NET версии 2.0 и выше.

Программа очень проста в использовании и имеет поддержку нескольких языков, включая русский. В качестве примера приведу последовательность действий при создании конфигурации для загрузки ERD Commander из ISO-образа:

— нажимаем кнопку «Добавить запись»

— В правой нижней части окна, обозначенной как «Съемный внешний носитель» выбираем вкладку «ISO»

— Заполняем поле «Имя» — ERD Commander

— Выбираем путь к файлу ISO-образа ERD Commander. Хотя данное окно программы EasyBCD названо «Съемный внешний носитель», файл ISO-образа может быть на любом диске, в том числе и не съемном, например — на системном — C:\ISO\erdc.iso.

— Выбрать режим — «Load from Memory». Поскольку для загрузки из ISO образов, программа EasyBCD использует универсальный загрузчик GRUB, лучше выбирать загрузку из памяти, иначе, загрузка непосредственно с диска не будет выполнена, если файл образа фрагментирован. Это — особенность загрузчика GRUB .

— Нажать кнопку «Добавить»

— Нажать кнопку «Редактировать меню загрузки» в панели инструментов.

— Убедиться в наличии изменений загрузочного меню, при необходимости изменить порядок отображения пунктов или время ожидания и нажать кнопку «Сохранить.»

Важной особенностью программы является то, что кроме редактирования записей конфигурации, имеется возможность создания файлов, содержащих информацию загрузочных секторов для загрузки сторонних операционных систем (Linux / Unix Mac OS, BSD ), что невозможно сделать стандартными средствами Windows. Правда, при использовании ранних версий EasyBCD, некоторые из созданных конфигураций для приложений загрузочных секторов , работали некорректно. В качестве альтернативы EasyBCD, в подобных случаях можно воспользоваться менее функциональной, и не имеющей поддержки русского языка, программой Visual BCD Editor (VBCDE) . Основное окно программы VBCDE оформлено в стиле проводника Windows, а данные BCD отображаются в виде, наиболее соответствующем структуре хранилища.

Страница загрузки Visual BCD Editor

 

Кроме вышеперечисленных программ, для создания и редактирования данных конфигурации загрузки, можно воспользоваться довольно продвинутой программой BCDTool.exe, не требующей инсталляции и работающей в среде любой версии Windows, в том числе и в среде средств восстановления системы на базе Windows PE ( ERD Commander, MSDaRT, прочие LiveCD ). При весьма скромных размерах, утилита BCDTool имеет поддержку русского языка и позволяет выполнить практически любые операции с данными хранилища BCD:

— редактировать существующее хранилище BCD и/или создавать новое пустое

— создавать отдельные пункты меню конфигурации загрузки и изменять их параметры.

— выполнять экспорт хранилища BCD в файл и импорт из файла в хранилище.

— создавать и редактировать отдельные элементы конфигурации для обеспечения загрузки Windows /XP/2000/Vista/7/8, а также для загрузки Real-Mode (Grub, Linux, DOS ) и загрузки с RAM-диска ( WinPE )

 

При всех прочих достоинствах данной программы, главным является возможность ее выполнения без установки в среде конкретной операционной системы, что делает ее наиболее подходящим средством , применяемом в комплектах переносимых программ дисков аварийного восстановления системы для устранения проблем с загрузкой Windows. Скачать утилитуBCDTool ver 1.1215 приблизительно 960кб

Устранение проблем с загрузкой Windows 7.В свете изложенного выше, процесс загрузки на примере Windows 7 можно представить в виде цепочки из последовательно выполняемых этапов:

 

Отсутствие или нарушение программного кода загрузочных записей, файлов загрузчика или неверная конфигурация BCD обрывают эту цепочку и делают невозможной загрузку системы. Вариант, когда невозможность загрузки вызвана неисправностью оборудования, здесь не рассматривается, поскольку восстанавливать механизм загрузки на неисправном или сбоящем оборудовании — занятие бесполезное и даже вредное.

Следующий важный момент — для устранения проблем потребуется загрузка в какой-либо другой системе с компакт-диска, флешки, съемного USB-диска, или по сети. В крайнем случае, перенос диска с проблемной системой на другой компьютер. Самый простой вариант — создать диск аварийного восстановления стандартными средствами Windows 7:

— Перейти в Панель управления— Выбрать «Архивация и восстановления»— «Создать диск восстановления системы».

 

Вставить в привод чистый компакт диск и нажать кнопку «Создать диск»

Созданный диск восстановления системы содержит нужные для загрузки загрузочные записи, файл диспетчера загрузки bootmgr, каталоги BOOT и SOURCES . Диспетчер загрузки bootmgrиспользует конфигурацию из файла \BOOT\bcd с режимом загрузки из образа электронного диска, создаваемого в оперативной памяти. Для создания электронного диска используется файл\BOOT\boot.sdi, а в качестве загружаемого образа используется содержимое файла \SOURCES\boot.wim. Имея представление о механизме загрузки системы с использованием диспетчераbootmgr можно без особых усилий сделать загрузочную флэшку восстановления системы, скопировав на нее файлы и каталоги созданного компакт-диска, и создав необходимую конфигурацию загрузки. Например, следующим образом:

1. Создать загрузочные записи MBR и PBR. Используя командную строку, выполнить :

bootsect /nt60 D: /mbr /force — для флешки, которой присвоена буква D:

2. Сделать активный раздел. Поскольку команда bootsect только записывает необходимый для загрузки диспетчера bootmgr программный код загрузочных секторов, но не меняет флаг активного раздела, нужно его установить, например, с помощью стандартной утилиты для работы с дисками и разделами DISKPART.

— запустить DISKPART.

— в строке приглашения ввести команду для отображения списка дисков:

list disk

— выбрать в качестве текущего диска флешку:

select disk 3 — если флешка отображалась в списке дисков как «Диск 3»

— выбрать раздел на флешке:

select partition 1 — выбрать раздел 1

— сделать текущий раздел флешки активным :

active

Завершить работу с DISKPART командой exit

3. Скопировать содержимое компакт-диска восстановления системы на флешку.

Если флешка уже имела активный раздел ( отображалась в диспетчере логических дисков с признаком «Активный»), то в использовании DISKPART нет необходимости.

Если копирование содержимого компакт — диска на флешку выполнено «один-в-один», с сохранением путей и имен, то изменение конфигурации загрузки для диспетчера не требуется.

Рассмотренный выше пример создания загрузочной флешки можно считать демонстрацией случая, когда загрузка не выполняется при отсутствии признака активности раздела — если его нет, то загрузочная запись раздела PBR не получит управления, и далее, по цепочке, не будет загружен диспетчер bootmgr . Похожий случай наблюдается при установке Windows XP, после того, как на компьютере была установлена Windows Vista / Windows 7. При установке XP, выполняется изменение загрузочных записей для обеспечения загрузки ntldr , а не диспетчера bootmgr . Старый загрузчик, естественно, не поддерживает загрузку новых версий Windows, и после подобной установки, возможна загрузка только установленной системы, или других систем, загрузка которых возможна с использованием ntldr . Для того, чтобы вернуть возможность загрузки Windows 7, сохранив возможность загрузки установленной Windows XP, необходимо восстановить цепочку для загрузки bootmgr и изменить данные в хранилище конфигурации загрузки так, чтобы имелась возможность выбора любой из установленных операционных систем Windows :

— Для восстановления загрузочных записей, можно воспользоваться той же командой bootsect , что использовалась в предыдущем примере, что позволит восстановить передачу управления диспетчеру загрузки bootmgr вместо ntldr.

— Если каталоги и файлы, необходимые диспетчеру загрузки bootmgr, при установке предыдущих версий Windows не изменялись, то на данном этапе можно считать, что возможность загрузки Windows 7 восстановлена. При необходимости, можно создать новую конфигурацию загрузки командой :

bcdboot C:\WINDOWS — скопировать в системный раздел файлы и каталоги, необходимые для загрузки Windows 7, из каталога C:\WINDOWS, и создать новую конфигурацию BCD

— Для добавления возможности загрузки Windows XP, необходимо создать нужную для загрузки ntldr, запись в хранилище конфигурации BCD, добавить в меню пункт для выбора данной ОС, определить порядок отображения пунктов, и систему, загружаемую по умолчанию. При установке предыдущей версии Windows ( WinXP ), необходимые загрузчику ntldr файлы уже имеются на диске ( boot.ini, ntdetect.com, bootfont.bin).

Пример создания конфигурации загрузки Windows XP с помощью команды bcdedit:

bcdedit /create {ntldr} /d «Microsoft Windows XP» — создать объект для загрузки Windows XP

bcdedit /set {ntldr} device partition=C: — указать устройство загрузки (активный раздел)

bcdedit /set {ntldr} path \ntldr — указать путь к загрузчику ntldr

bcdedit /displayorder {ntldr} /addlast — добавить в конец меню выбора вариантов загрузки новый пункт.

Если команда bcdedit выполняется в среде операционной системы, для которой не определено местонахождение хранилища конфигурации загрузки, или расположение системного хранилища отличается от того, которое будет использоваться диспетчером bootmgr при загрузке с жесткого диска, то необходимо указывать полный путь к файлу bcd в параметре /store :

bcdedit /store D:\BOOT\bcd /create {ntldr} /d «Microsoft Windows XP» — создать объект для загрузки Windows XP в хранилище конфигурации D:\BOOT\bcd

Если создание конфигурации загрузки для Windows XP выполняется с помощью EasyBCD, то файл загрузчика ntldr размещается в подкаталоге \NST активного раздела.

При отсутствии файла диспетчера загрузки bootmgr в корне активного раздела, загрузка завершится сообщением:

BOOTMGR is missing

При повреждении содержимого файла :

Invalid or unsupported executable format

Всем хорошей работы!!!

Понравилось это:

Нравится Загрузка...

Похожее

11.12.2013 - Posted by khlebalin | ms windows 7

Sorry, the comment form is closed at this time.

khlebalin.wordpress.com

Как восстановить загрузчик Windows 7 и Windows 8

Что такое загрузчик Windows? Выражаясь простейшим языком — это программа обеспечивающее загрузку операционной системы непосредственно после включения компьютера. Если рассматривать эволюцию операционных систем Windows, то  в Windows 2000 и Windows XP загрузчиком Windows был NTLDR (NT Loader), который умеет загружать и другие операционные системы, задавая соответствующий загрузочный сектор в отдельном файле.  Но с появлением новой системы BIOS — EFI и UEFI — старый NTLDR уже не соответствовал требованиям. Начиная с Windows Vista и далее, в Windows 7, Windows 8 и Windows 8.1  стал применяться новый диспетчер загрузки (менеджер загрузки) — BOOTMGR. Его работа которого тесно связана с Главной Загрузочной Записью (MBR) или Главным Загрузочным Сектором (MBS). При загрузке компьютера, после проверки оборудования, BIOS считывает с загрузочного жесткого диска первый сектор — 512 байт данных. MBR может занимать и больше, чем один сектор, но сейчас не об этом. В MBR расположен код первичного загрузчика и таблица разделов жесткого диска. 

В случае повреждения загрузчика или загрузочной записи, Ваша операционная система — будь то Windows 7, Windows 8 или Windows 8.1 — будет выдавать вот ошибку BOOTMGR is missing — press CTRL+ATL+DEL to restart.

В некоторых случая выдается ошибка BOOTMGR is corrupt. The system cannot boot:

В этом случае Вы уже не сможете запустить операционную систему Windows в обычном режиме.

Примечание: Первым делом, перед тем как прибегнуть к кардинальным действиям, проверьте, возможно просто неправильно выставлена последовательность загрузки жестких дисков, либо настройки BIOS были просто сброшены к дефолтовым (такое случается, когда садиться батарейка CR2032 на материнской плате). Такое особенно часто встречается на компьютерах, где установлены 2 и более жестких дисков. Вам нужно всего лишь зайти в BIOS компьютера и проверить какой из них выставлен на загрузку. Для этого, при загрузке, когда идет первичная диагностика аппаратной части (белые буквы на черном фоне) нажимаем несколько раз кнопку Delete. Должен открыться экран BIOS. Ищем в разделах BIOS пункт «Hard Disk Boot Priority» или просто «Boоt Device Priоritу» и выбираем его:

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

Как восстановить загрузчик Windows.

Есть два пути восстановления: с помощью стандартных средств от Microsoft и с помощью сторонних программ. В первом варианте Вам понадобиться загрузочный диск или флешка со оригинальным образом Windows 7 или Windows 8. Сторонняя сборка Windows может не подойти, так как на многих сборках все начинается сразу с начала установки операционной системы. В случае использования сторонними программами — Вам подойдет загрузочный диск Hiren’s Boot CD.

Восстановление загрузчика с помощью средств Microsoft.

Способ для Windows 8 и Windows 8.1

Шаг 1. Перезагружаем компьютер, при загрузке нажимаем кнопку Delete и попадаем в BIOS. В разделе «Boоt Device Priоritу» надо выставить значение CDROM в случае диска или USB в случае использования загрузочной флешки.

Нужно параметру «1st Boot Device» присвоить значение «CDROM» (или USB-HDD для флешки). Нажимаем F10 для сохранения конфигурации BIOS. Перезагружаем компьютер.

Шаг 2. При загрузке с диска должно открыться окно Установка Windows:

В самом низу выбираем пункт «Восстановление системы».Будет проведена проверка жестких дисков и будет отображен список доступных операционных систем. Зачастую в списке один пункт, его и надо выбрать:

Откроется окно «Выбор действия»:

Кликаем на значок «Диагностика» — откроется меню раздела:

 Выбираем пункт «Дополнительные параметры».

Шаг 3. Выбираем пункт «Автоматическое восстановление»:

Запуститься диагностика системы. Если будет обнаружена какая-то ошибка, то Вам будет показано сообщение об этом. Тогда нужно будет нажать кнопку Исправить и дождаться окончания исправления и перезагрузки компьютера.

Шаг 4. В случае, если автоматическое восстановление не выявило проблем при диагностике либо не помогло и  при запуске все равно Windows 8 не загружается и появляется ошибка «Bootmgr is Missing», то снова загружаемся с диска и в разделе «Дополнительных параметров» диагностики выбираем пункт «Командная строка»:

Откроется командная строка Windows 8 или Windows 8.1.

Шаг 5. В Командной строке Windows 8 вводим команду:bootrec.exe /FixMbrНажимаем Enter.Ключ «/FixMbr» используется для записи в системный раздел основной загрузочной записи, совместимой с Windows 8 и Windows 8.1. Этот параметр не перезаписывает существующую таблицу разделов.Затем вводим команду:bootrec.exe /FixBoot и снова нажимаем Enter.Ключ «/FixBoot» используется для записи в системный раздел нового загрузочного сектора с использованием загрузочного сектора, совместимого с Windows 8 и Windows 8.1.

Перезагружаем компьютер и проверяем загрузку Windows 8.

Шаг 6. Если после перезагрузки ошибка «BOOTMGR is missing — Press Ctrl+Alt+Del to restart» не устранилась — снова запускаем командную строку, где набираем командуbootrec.exe /RebuildBcdКлюч «/RebuildBcd» используется для полного перестроения данных конфигурации. Результатом выполнения программы с этим ключом будет сканирование жесткого диска на наличие операционной системы Windows и запрос на добавление её в список загрузки.

Нажимаем — Да (Y) и перезагружаем компьютер и проверяем.

После выполненных выше операций обычно удается восстановить загрузчик Windows 8 и Windows 8.1. Если же приведенные способы не помогли, то нужно пробовать восстанавливать загрузку с помощью сторонних программ. И если и они не помогут — переустанавливать Windows 8, так как скорее всего ничего больше не поможет.

Способ для Windows 7.

Шаг 1. Перезагружаем компьютер, при загрузке нажимаем кнопку Delete и попадаем в BIOS. В разделе «Boоt Device Priоritу» надо выставить значение «CDROM» в случае диска или USB в случае использования загрузочной флешки.

Нужно параметру «1st Boot Device» присвоить значение «CDROM» (или USB-HDD для флешки). Нажимаем F10 для сохранения конфигурации BIOS. Перезагружаем компьютер.

Шаг 2. При загрузке с диска Вы увидите вот такое окно начала установки Windows 7:

Здесь нужно выбрать пункт «Восстановление системы».После проверки жестких дисков Вам будет показан список доступных операционных систем:

Как правило в списке только одна система, хотя встречаются пользователи, у которых на винте 2, 3 а то и больше операционных систем. Но такое встречается реже.Кликаем кнопку Далее и нам открывается окно «Параметры восстановления системы».

Шаг 3. Выбираем пункт «Восстановление запуска». Будет проведена диагностика системы. Если будет обнаружена ошибка, Вы увидите сообщение:

Нужно будет нажать кнопку «Исправить и перезапустить».После этого система должна загрузиться в нормальном режиме.

Шаг 4. Если после перезагрузки нормальная загрузка Windows 7 не восстановилась или при диагностике системы проблем не выявлено:

То нужно в окне «Параметры восстановления» системы выбрать пункт «Командная строка»:

Шаг 5. В командной строке Windows вводим команду bootrec.exe /FixMbr и нажимаем Enter. Затем вводим команду bootrec.exe /FixBoot и нажимаем Enter. О том, что означают ключи /FixMbr и /FixBoot я уже писал выше.

Перезагружаем компьютер и проверяем.

Шаг 6. Если после перезагрузки компьютера работа загрузчика не восстановилась и ошибка BOOTMGR is missing не устранилась — снова запускаем командную строку и набираем команду:bootrec.exe /RebuildBcd

Ключ «/RebuildBcd» выполняет поиск установленных операционных систем, совместимых с Windows 7 и выполнит полную перестройку данных конфигурации загрузки. Результатом работы программы станет сканирование жесткого диска на наличие операционной системы Windows и запрос на добавление её в список загрузки. Нажимаем — Да (Y) и перезагружаем компьютер.

Шаг 7. Если ошибка загрузки Windows 7 не устранилась, то есть ещё один, способ от Microsoft — утилита BCDBoot, которая используется для создания системного раздела или восстановления среды загрузки, расположенной в системном разделе.В командной строке нужно набрать команду:bcdboot.exe c:\windows (Если у Вас Windows установлена на другом диске — исправьте в команде путь, например на d:\windows).

Результатом будет сообщение «Boot file successfully created». Перезагружаем компьютер и проверяем.

Восстановление нормальной загрузки Windows с помощью Hiren’s Boot CD.

К сожалению,  не всегда есть оригинальный загрузочный диск  Windows 7 или Windows 8 под рукой, а выкачивать его из Интернета бывает весьма проблематично. В этом случае на помощь  обычно приходят различные небольшие загрузочные сборки — так называемые liveCD, которые можно так же записать на диск или флешку. На мой взгляд, самый оптимальный, удобный и легкий сервисный набор программ для восстановления операционной системы Windows 7 или Windows 8 — это «Hiren’s Boot CD».  Утилит для восстановления загрузчика Windows на диске немало, поэтому я покажу те, которыми чаще всего пользуются системные администраторы: графическая программа «Paragon Hard Disk Manager» и консольная утилита «MBRfix».Сначала Вам надо скачать «Hiren’s Boot CD», записать его на флешку или CD-диск и выставить в BIOS загрузку с CDROM или USB-HDD, в зависимости от того — с диска или флешки Вы загружаетесь.Если всё сделано правильно, Вы увидите стартовое меню «Hiren’s Boot CD»:

Вариант 1. Paragon Hard Disk Manager.

Для запуска программы «Paragon Hard Disk Manager» Вам нужно выбрать пункт «Программы DOS» или «Запуск программ DOS (альтернативный метод)», а затем подраздел «Разбивка дисков (Disk Partition Tools)» и, соответственно пункт «Paragon Hard Disk Manager».

Теперь надо в главном окне программы выбрать пункт меню «Мастера» => «Восстановление загрузки Windows»:

Откроется меню «Восстановление загрузки Windows»:

Выбираем первый пункт — «Поиск установленных копий Windows» и нажимаем кнопку Далее.

Программа сканирует диски и выдаст список операционных систем, в котором обычно только один пункт. Ставим галочку «Изменить загрузочную запись» и нажимаем кнопку Далее.

Программа «Paragon Hard Disk Manager» перезапишет загрузочную запись (MBR). Нажимаем кнопку Готово и перезагружаем компьютер.

Вариант 2. Утилита MBRFix.

Для запуска утилиты MBRFix надо в стартовом меню Hiren’s Boot CD выбрать пункт «Mini Windows XP». После того, как операционная система загрузиться, надо нажать кнопку «Пуск» => «Меню HBCD».

В открывшемся меню HBCD надо выбрать пункт «Partition/Boot/MBR» => «Commandline» => «MBRFix»:

Для восстановления загрузочной записи Windows (MBR) и загрузчика Windows на диске C:\ для Windows 7, параметры команды должный быть такие:MBRFix.exe /drive 0 fixmbr /win7 /yes.Чтобы посмотреть информацию о диске — можно ввести команду:MBRFix.exe /drive 0 driveinfo.На Windows 8 и Windows 8.1 эту утилиту я ещё не проверял, потому рекомендовать не могу.

nastroisam.ru

Как восстановить загрузчик Windows ХР

Здравствуйте, сейчас я расскажу как можно восстановить загрузчик не только с помощью программ, но и вручную, что зачастую помогает в большинстве случаев.

Как происходит процесс загрузки компьютера?

После того как включился компьютер, происходит его самотестирование, далее управление передаётся в главную загрузочную запись жёсткого диска, в ней находится таблица разделов винчестера и небольшая программа загрузчик, которая считывает в этой таблице информацию с какого винчестера (если их несколько) и какого раздела жёсткого диска производить загрузку ОС.

Далее происходит загрузка ядра операционной системы в оперативную память и собственно запуск Windows XP. Так же нужно знать, что в загрузке операционной системы участвуют ещё и группа файлов, находящаяся в корневой директории диска С, а именно boot.ini, NTDETECT.COM, ntldr. Наличие всего вышеперечисленного, исключает наличие ошибки Bootmgr is missing при загрузке XP и обеспечивает успешный запуск системы.

Какие же могут быть причины возникновения ошибки Bootmgr is missing?

  1. Первое самое простое, при наличии нескольких жёстких дисков в системе, нарушились настройки Bios, а именно например в AMI Bios, во вкладке BOOT, пункт Boot Device Priority, далее Hard Disk Drives, в качестве винчестера с которого нужно производить загрузку выставлен совсем не тот, который нужен.

Т.е. загрузка происходит не через жесткий диск, на котором установлена система. Так же проверьте что у вас не вставлена флешка или внешний жесткий диск.

2. Использование в главной загрузочной записи программ сторонних разработчиков, так называемых менеджеров загрузки, например Acronis OS Selector, применяется в основном при наличии на компьютере нескольких операционных систем, менеджер выводит в начале загрузки удобное меню выбора ОС.

Пользоваться такими программами нужно очень осторожно, при некорректном удалении с компьютера самой программы Acronis Disk Director, очень большой шанс заняться восстановлением загрузчика Windows XP.

3. Тоже самое относится к загрузчику GRUB, позволяющему использовать на одном компьютере Linux и Windows XP, при удалении GRUB, вы оставите свой компьютер один на один с непонятной ему загрузочной записью и он не долго думая покажет вам Bootmgr is missing.

Вот в крации что мы будем делать

Исправлять ситуацию в этом случае будем в консоли восстановления Windows XP, первое введём команду FIXMBR и перепишем главную загрузочную запись, второй командой FIXBOOT запишем новый загрузочный сектор.

Но и это ещё не всё, после исправления загрузочной записи, а так же записи нового загрузочного сектора в консоли, ситуация с выводом ошибки может остаться неизменной и могут быть уже другие ошибки, к примеру: NTLDR is missing. В этом случае нужно ещё раз убедится в наличии файлов загрузочного сектора, напрямую участвующих в загрузке Windows XP: boot.ini, NTDETECT.COM, ntldr, в корневой директории диска (С:), в принципе для загрузки Windows XP вполне хватит трёх данных файлов.

Проще всего использовать Live CD, произвести с него загрузку, далее зайти в корневую директорию диска С и убедится в наличии данных файлов, если их там нет, значит нужно скопировать их с любой работоспособной XP и закинуть их себе, предварительно проверив и в случае необходимости отредактировав файл boot.ini, простой текстовый файл, в котором прописан путь к системным файлам Windows XP, сделать это нужно обязательно, а то получите другую ошибку, можете почитать Редактирование BOOT.INI.

Но есть способ проще: восстановление загрузчика Windows XP с помощью консоли восстановления. Если у вас есть дистрибутив XP, давайте им воспользуемся и скопируем три наших файла boot.ini, NTDETECT.COM, NTLDR в корневую директорию диска С.

Как восстановить загрузчик Windows ХР?

Загружаемся с установочного диска Windows XP, выбираем восстановить R. Если у нас одна операционная система ставим цифру 1.

Если был пароль вводим его, если нет нажимаем Enter.

Вводим команду FIXMBR, данная команда восстановления поврежденной таблицы разделов жёсткого диска, она перезапишет главную загрузочную запись.

Подтверждаем запись новой MBR, ставим Y

Вводим команду FIXBOOT, и соглашаемся записать новый загрузочный сектор.

 

Копируем файлы ntldr, NTDETECT.COM, boot.ini с дистрибутива в корень системного диска С. Вводим команду МАР и смотрим букву нашего дисковода, в моём случае (D:)

Вводим D: (букву дисковода) и нажимаем Enter.

 

Переходим в папку i386, которая находится на установочном диске Windows XP, из неё скопируем наш файл NTLDR в корень диска С. Вводим команду cd i386 и Enter

Копируем файл NTLDR в корень нашего системного диска с операционной системой командой copy NTLDR C:

Теперь файл BOOT.INI. Команда Bootcfg /add, производит поиск установленных операционных систем, а заодно мы с вами добавляем обнаруженную копию Windows № 1 и сделаем новый файл BOOT.INI.

Вводим 1

Теперь напишем название, которое будет в файле BOOT.INI-XP — Professional RU. Параметры /fastdetect это такой ключ, который отключает распознавание устройств, подключаемых к параллельным и последовательным портам для ускореной загрузки.

Нажимаем Exit и компьютер перезагружается.

Система загрузилась успешно и вот скопированные загрузчики операционной системы Windows XP.

Вот созданный  BOOT.INI файл в консоли восстановления.

alexzsoft.ru


Смотрите также