- Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС
- Принципы загрузки операционных систем
- Типы MBR
- Разнообразие PBR
- Меню начальных загрузок windows
- Изменить параметры загрузки с помощью графического интерфейса в Windows Vista, 7, 8.
- Изменить параметры загрузки с помощью командной строки (bcdedit) в Windows Vista, 7, 8.
- Пример использования bcdedit.
Все, что вы хотели знать про загрузку 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 Таблица разделов
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, и так далее.
Меню начальных загрузок windows
Не для кого не секрет. что на один компьютер/ ноутбук можно установить две и более операционных систем. Для этого можно установить дополнительные жесткие диски на компьютер/ ноутбук, а можно просто разделить жесткий диск на несколько логических и на каждый из них установить операционную систему. После установки второй и последующих ОС Windows, при загрузке компьютера вы получите меню загрузки операционных систем. Именно о изменении параметров загрузки пойдет речь в этой статье.
Так выглядит меню загрузки при установки последней ОС Windows 8.
А так выглядит меню при установке последней ОС Windows Vista, 7.
До Windows Vista (Windows 2000, XP) все изменения в загрузки вносились в файл boot.ini. Boot.ini представляет собой системный файл, содержащий сведения об установленных на компьютере операционных системах Windows. Эти данные отображаются во время загрузки компьютера/ ноутбука. Для того, что бы изменить параметры загрузки, достаточно открыть файлы boot.ini любым текстовым редактором и внести изменения.
Начиная с операционной системы Windows Vista (Windows 7, 8, 10) файл boot.ini заменен файлом данных конфигурации загрузки (BCD). Этот файл более универсален, чем boot.ini, и его можно использовать на платформах, в которых для загрузки системы используются другие средства, а не BIOS.
Но как вносить изменения в параметры загрузки в Windows Vista 7, 8, 10? Для этого есть два способа предусмотренные разработчиками Windows:
1 С помощью графического интерфейса;
2 С помощью командной строки.
Изменить параметры загрузки с помощью графического интерфейса в Windows Vista, 7, 8.
Что бы воспользоваться этим способом нажмите сочетание клавиш «Win» + «R», В строке «Выполнить» наберите msconfig, и нажмите клавишу Enter.
Далее выберите вкладку «Загрузка».
Нужно сказать, что этим способом доступно довольно мало настроек, но большинство пользователям этого будет вполне достаточно. Данный инструмент позволит:
1) Получить информацию о текущей и загружаемой по умолчанию системах.
2) Отредактировать время (таймаут). По истечении этого времени будет загружена операционная система, определенная для загрузки по умолчанию без вмешательства пользователя. Для этого укажите время (в секундах) в поле «Таймаут».
3) Изменить систему, загружаемую по умолчанию. Для этого выберите, какую систему хотите загружать по умолчанию (без внешнего вмешательства) и нажмите кнопку «Использовать по умолчанию».
4) Удалить ненужную запись из меню загрузки. Выберите запись, которую хотите удалить и нажмите кнопку «Удалить».
Все изменения вступят после нажатия клавиши «Ок» и перезагрузки системы.
Изменить параметры загрузки с помощью командной строки (bcdedit) в Windows Vista, 7, 8.
Более широкие возможности для изменения параметров загрузки предоставляет утилита bcdedit. Bcdedit — это средство командной строки, предназначенное для управления данными конфигурации загрузки. Оно может использоваться для различных задач: создание новых хранилищ, изменение существующих хранилищ, добавление параметров меню загрузки и многого другого.
Для того, что бы познакомится с этой командой поближе, запустите командную строку с правами администратора и выполните команду:
/bcdedit /?
В этой статье я бы хотел более подробно остановиться на примерах использования команды bcdedit.
Пример использования bcdedit.
Прежде чем начинать вносить изменения в загрузчике Windows, предварительно нужно создать его резервную копию. Для этого создайте на любом диске папку BootBackup и введите в командной строке следующую команду (командная строка должна быть запущена от имени Администратора):
bcdedit /export D:\BootBackup\bcd
Где D:\ диск размещения папки BootBackup.
Если вы чувствуете, что что то пошло не так, для того что бы вернуть все в изначальное состояние выполните команду восстановления BCD:
bcdedit /import D:\BootCopy\bcd
Где D:\ диск размещения папки BootBackup.
Следующим шагом выясним основную информацию о своей BCD. Для этого выполните команду bcdedit.
Где:
идентификатор – ID той или иной записи;
device – показывает раздел, на котором расположены файлы загрузки (это может быть операционная система или папка BOOT);
osdevice – показывает раздел, на котором расположены системные файлы операционной системы. Обычно, значения параметров device и osdevice равны;
path – если device определял раздел диска, который содержит файлы операционной системы, то этот параметр определяет остальной путь к загрузчику операционной системы;
default – показывает ID операционной системы, загружаемой по умолчанию, если операционная система, в которой запустили командную строку, загружается по умолчанию, параметру default присваивается значение
displayorder – показывает порядок, в котором расположены записи о загружаемых системах;
timeout – таймаут (смотри выше), значение показано и устанавливается в секундах;
locale – указывает язык загрузочного меню или меню дополнительных параметров загрузки;
description – показывает название операционной системы, отображающееся в меню загрузки.
Как изменить операционную систему, загружаемую по умолчанию.
Укажите значение /default и идентификатор ОС, которая должна загружаться по умолчанию.
bcdedit /default
Теперь операционная система с указанным
Как изменить значение задержки загрузки
Чтобы изменить значение задержки, по истечению которого начнется загрузка операционной системы, выполните такую команду:
bcdedit /timeout XX
где XX – число в секундах, по умолчанию используется 30 сек.
Удаление записи из BCD и диспетчера загрузки выполняется с помощью команды:
bcdedit /delete
Есть особенность выполнения команды: если в качестве ID указывается известная запись, например
bcdedit /delete
Если же ID записывается в буквенно- цифровом коде, ключ /f не нужен.
Для того, что бы получить более подробную информацию о возможностях утилиты bcdedit, необходимо использовать справку bcdedit /?