- Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС
- Принципы загрузки операционных систем
- Типы MBR
- Разнообразие PBR
- BootDev
- Страницы
- 2019-05-09
- Восстановление загрузчика Windows
- Содержание
- Возможные Причины
- Необходимые Инструменты
- Тестовое Окружение
- Восстановление Записи MBR
- Восстановление Загрузчика Windows (BIOS/MBR)
- Восстановление Загрузчика Windows (UEFI/GPT)
Все, что вы хотели знать про загрузку 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, и так далее.
BootDev
Создание загрузочных дисков и прочие полезные мелочи
Страницы
2019-05-09
Восстановление загрузчика Windows
Одна из причин невозможности загрузки операционной системы Windows, это испорченный загрузчик (приблизительное сообщение которое можно получить при таком исходе представлено на фото ниже). В этой статье, речь пойдет о способе восстановления загрузчика Windows, с помощью соответствующего установочного диска.
Содержание
Возможные Причины
Загрузчик Windows (Windows Boot Manager) хранит свои файлы в отдельном разделе, в большинстве случаев. В состав файлов входят — конфигурационный файл, и бинарные файлы. Если используется устаревшая схема загрузки на основе BIOS (MBR) систем, то в придачу к этому, на диск записывается загрузочная запись MBR (Master Boot Record), осуществляющая запуск бинарных файлов с указанного раздела.
Загрузка Windows осуществляется в два этапа:
1. BIOS (MBR/UEFI) выполняет поиск и запуск загрузчика (его бинарных файлов).
2. Загрузчик выполняет запуск ядра операционной системы.
Учитывая вышеописанное, возможных проблем может быть всего лишь две:
1. Проблемы с загрузочным разделом, и его файлами.
2. Проблемы с загрузочной записью MBR.
Может быть еще и третья проблема. Она не связана напрямую с загрузчиком, поэтому ее я не стал вносить в список. Проблема заключается в удалившихся загрузочных записях UEFI BIOS. Устраняется очень просто, сброс настроек UEFI BIOS, или ручное добавление соответствующей загрузочной записи через UEFI Shell. Как это сделать, можно прочитать тут, а как сделать загрузочный диск с UEFI Shell тут.
Необходимые Инструменты
Для всех манипуляций потребуется только лишь установочный диск Windows, а точнее его среда предустановки (WinPE). Скачать установочный диск Windows можно на официальном сайте Microsoft по ссылке https://www.microsoft.com/ru-ru/software-download.
Скачивание абсолютно бесплатно. Для дистрибутива Windows 10, предоставлена программа для создания загрузочного USB/CD диска, или установочного ISO образа.
Тестовое Окружение
В качестве тестовой ОС будет выступать Windows 10. Будет продемонстрировано восстановление загрузчика как версии на MBR диске, так и на GPT (UEFI).
Для MBR диска, будет продемонстрировано восстановление записи MBR, файлов загрузчика, и загрузочного раздела. Ниже на фото, отмечен раздел с файлами загрузчика.
Особенностью данной разметки диска (она выполнялась автоматически установщиком Windows), является расположение файлов загрузчика и среды восстановления на одном разделе.
Для GPT диска, будет продемонстрировано восстановление загрузочного раздела и файлов загрузчика. На фото ниже, отмечен загрузочный EFI-раздел, в котором расположены файлы загрузчика.
В случае с GPT-диском, файлы загрузчика и среда восстановления располагаются в разных разделах. Загрузочный EFI-раздел всегда отформатирован в файловую систему FAT, т.к. UEFI BIOS поддерживает только ее.
Восстановление Записи MBR
Разберем ситуацию с поврежденной/перезаписанной MBR-записью. Часть первого сектора диска, отвечающей за запуск загрузчика, тестовой машины была намерено затерта.
Windows в данном случае естественно загружаться не будет.
Попробуем восстановить испорченную MBR-запись загрузчика Windows. Загрузимся с установочного диска на проблемной машине.
При появлении мастера установки, нажимаем сочетание клавиш SHIFT+F10 , откроется командная строка.
Записать новую MBR-запись можно двумя способами, легким и не очень. Легкий выполняется с помощью команды bootrec , не очень, с помощью команды bootsect , совместно с командой bcdedit .
Рассмотрим сначала легкий способ. Восстанавливаем запись MBR.
Если сейчас выполнить перезагрузку машины, в надежде увидеть корректную загрузку Windows, то возможно вы получите ошибку загрузчика 0xc000000e (Your PC/Device needs to be repaired. A required device isn’t connected or cant’t be accessed. The application or operating system couldn’t loaded because a recuired file is missing ir contains errors. File: \Windows\system32\winload.exe).
Связана данная ошибка исключительно с конфигурацией загрузчика.
Устранить эту проблему можно выполнив исправление конфигурационного BCD-файла загрузчика Windows Boot Manager. Делается это, так же, с помощью команды bootrec .
Проверим параметры загрузчика после фикса.
Теперь способ второй, немного более сложный.
Для выполнения всех дальнейших операций, предварительно необходимо будет выяснить букву системного раздела, того на котором установлена ОС Windows. Помочь в этом могут следующие команды:
Каждая из этих команд выводит список всех подключенных разделов. Команда wmic предоставляет самую подробную информацию.
Получив информацию о подключенных томах, необходимо проверить какой из них содержит установленную копию ОС Windows. Делается это просто, с помощью команды dir , путем поочередного просмотра каждого тома на наличие соответствующих системных директорий/файлов.
Определив целевой системный раздел, в моем случае это диск D:\, можно перейти к восстановлению MBR-записи.
Проверяем конфигурацию загрузчика.
У дефолтной загрузочной записи не определены параметры device и osdevice . В качестве значений данных параметров должна быть указана буква диска с установленной ОС Windows. Без данных параметров система не сможет загрузиться корректно, и выдаст уже описанное ранее сообщение об ошибке. Поправим загрузочную запись.
Восстановление загрузчика выполнено.
Важным замечанием второго способа, является то, что конфигурация загрузчика не восстанавливается полноценно. Мы лишь поправили загрузочную запись по умолчанию ( ), отвечающую лишь за запуск ОС Windows, другие записи конфигурационного файла загрузчика будут и прежде содержать параметры со значением unknow .
Ручное исправление которых, может оказаться не такой простой задачей, ввиду необходимости проверить все имеющиеся записи конфигурационного файла загрузчика. Поэтому, этот вариант восстановления лучше рассматривать как аварийный, при невозможности, по какой-либо причине, выполнить восстановление загрузчика первым способом.
Восстановление Загрузчика Windows (BIOS/MBR)
Усугубим тестовую ситуацию. Представим, что после определенных манипуляций, был удален загрузочный раздел ОС Windows. Что необходимо делать в данной ситуации?
1. Заново создать загрузочный раздел.
2. Записать на созданный раздел файлы загрузчика Windows.
3. Записать на созданный раздел файлы среды восстановления Windows (не обязательно).
По поводу третьего пункта, почему он не обязателен? Работа загрузчика, и в общем ОС в целом, никак не зависит от среды восстановления. Она используется лишь при аварийных ситуациях. Запускается данная среда загрузчиком при определенных условиях, например, пара прерванных загрузок ОС. То есть, если не будет загрузчика, то и среда восстановления не будет работать.
Приступим. На тестовой машине был намерено удален загрузочный раздел.
Попытка загрузки на данном этапе, ожидаемо приведет к ошибке.
Загружаем установочный диск OC Windows.
Запускаем командную строку, нажав сочетание клавиш SHIFT+F10 .
Создадим загрузочный раздел. Особых требований к загрузочному разделу нет. Это должен быть раздел с файловой системой NTFS (желательно, но не обязательно), с достаточным объемом свободного пространства, чтобы вместить файлы загрузчика и среды восстановления.
Раздел создан. Запоминаем букву под которой он смонтирован, в моем случе диск E:\. Эта информация потребуется для выполнения последующих команд.
Выполним установку загрузчика на созданный раздел. Но, предварительно нужно выяснить, под какой буквой скрывается раздел с установленной ОС Windows. Узнать данную информацию можно, так же, на предыдущем шаге ( diskpart — list volume ), либо по способам описанным в предыдущем разделе. В моем случае это диск C:\.
Загрузчик установлен. Если сейчас выполнить перезагрузку машины, то ОС Windows благополучно загрузится.
Если загрузка по-прежнему не возможна, то скорее всего имеются проблемы с загрузочной записью MBR. О том, как ее восстановить, написано в предыдущем разделе.
Тема возврата среды восстановления, будет рассмотрена в последующих статьях.
Восстановление Загрузчика Windows (UEFI/GPT)
Рассмотрим восстановление UEFI-загрузчика ОС Windows. ОС использующие загрузку в UEFI режиме не нуждаются в загрузочных записях, на подобии MBR. Поэтому, рассмотрен будет сценарий с утраченным загрузочным EFI-разделом.
Что из себя представляет загрузочный EFI-раздел? Это обычный раздел, отформатированный в файловую систему FAT.
Перейдем к делу. Удалим на тестовой машине загрузочный EFI-раздел.
Попытка загрузки системы на данном этапе, приведет к ошибке, либо к загрузке UEFI Shell.
Загружаемся с установочного диска ОС Windows.
Открываем командную строку, нажав сочетание клавиш SHIFT+F10 .
Создадим утраченный загрузочный EFI-раздел.
Раздел создан. Запоминаем букву созданного раздела, в моем случае это диск F:\.
Установим загрузчик на созданный раздел. Предварительно, выясняем букву раздела с установленной ОС Windows. Как это сделать, было описано в предыдущих разделах. В моем случае, это диск D:\.
Загрузчик установлен. Проверяем его работу. Перезагружаем машину и наблюдаем.