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.

:: Восстанавливаем MBR-запись диска
bootrec /fixmbr


Если сейчас выполнить перезагрузку машины, в надежде увидеть корректную загрузку 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.

:: Восстанавливаем конфигурационный BCD-файл
bootrec /rebuildbcd


Проверим параметры загрузчика после фикса.


Загрузчик восстановлен.



Теперь способ второй, немного более сложный.

Для выполнения всех дальнейших операций, предварительно необходимо будет выяснить букву системного раздела, того на котором установлена ОС Windows. Помочь в этом могут следующие команды:

:: Вывод точек монтирования системы с помощью различных команд

:: WMIC - более подробный вывод
wmic volume list brief

:: FSUtil - вывод только имен дисков
fsutil volume list

:: MountVol - вывод только имен дисков
mountvol

Каждая из этих команд выводит список всех подключенных разделов. Команда wmic предоставляет самую подробную информацию.



Получив информацию о подключенных томах, необходимо проверить какой из них содержит установленную копию ОС Windows. Делается это просто, с помощью команды dir, путем поочередного просмотра каждого тома на наличие соответствующих системных директорий/файлов.


Определив целевой системный раздел, в моем случае это диск D:\, можно перейти к восстановлению MBR-записи.

:: Восстановление MBR-записи диска
bootsect /nt60 D: /mbr /force


Проверяем конфигурацию загрузчика.

:: Вывод загрузочных записей загрузчика Windows
bcdedit


У дефолтной загрузочной записи не определены параметры device и osdevice. В качестве значений данных параметров должна быть указана буква диска с установленной ОС Windows. Без данных параметров система не сможет загрузиться корректно, и выдаст уже описанное ранее сообщение об ошибке. Поправим загрузочную запись.

:: Указываем системный раздел для загрузочной записи по умолчанию
bcdedit /set {default} device "partition=D:"
bcdedit /set {default} osdevice "partition=D:"

:: Выводим параметры загрузочной записи по умолчанию
bcdedit /set {default}


Восстановление загрузчика выполнено.


Важным замечанием второго способа, является то, что конфигурация загрузчика не восстанавливается полноценно. Мы лишь поправили загрузочную запись по умолчанию ({default}), отвечающую лишь за запуск ОС Windows, другие записи конфигурационного файла загрузчика будут и прежде содержать параметры со значением unknow.

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


Восстановление Загрузчика Windows (BIOS/MBR)


Усугубим тестовую ситуацию. Представим, что после определенных манипуляций, был удален загрузочный раздел ОС Windows. Что необходимо делать в данной ситуации?

1. Заново создать загрузочный раздел.
2. Записать на созданный раздел файлы загрузчика Windows.
3. Записать на созданный раздел файлы среды восстановления Windows (не обязательно).

По поводу третьего пункта, почему он не обязателен? Работа загрузчика, и в общем ОС в целом, никак не зависит от среды восстановления. Она используется лишь при аварийных ситуациях. Запускается данная среда загрузчиком при определенных условиях, например, пара прерванных загрузок ОС. То есть, если не будет загрузчика, то и среда восстановления не будет работать.

Приступим. На тестовой машине был намерено удален загрузочный раздел.


Попытка загрузки на данном этапе, ожидаемо приведет к ошибке.


Загружаем установочный диск OC Windows.


Запускаем командную строку, нажав сочетание клавиш SHIFT+F10.


Создадим загрузочный раздел. Особых требований к загрузочному разделу нет. Это должен быть раздел с файловой системой NTFS (желательно, но не обязательно), с достаточным объемом свободного пространства, чтобы вместить файлы загрузчика и среды восстановления.

:: Запускаем программу diskpart
diskpart

rem Выводим список дисков системы
list disk

rem Выбираем диск под номером 0
select disk 0

rem Выводим список разделов выбранного диска
list partition

rem Создаем первичный раздел в начале диска, размером в 550МБ
create partition primary offset=1 size=550

rem Помечаем созданный раздел как активный
active

rem Форматируем созданный раздел
format fs=ntfs quick label="Sytem Reserved"

rem Монтируем созданный раздел
assign

rem Узнаем букву под которой смонтирован созданный ранее раздел
list volume



Раздел создан. Запоминаем букву под которой он смонтирован, в моем случе диск E:\. Эта информация потребуется для выполнения последующих команд.

Выполним установку загрузчика на созданный раздел. Но, предварительно нужно выяснить, под какой буквой скрывается раздел с установленной ОС Windows. Узнать данную информацию можно, так же, на предыдущем шаге (diskpart - list volume), либо по способам описанным в предыдущем разделе. В моем случае это диск C:\.

:: Установка файлов BIOS-загрузчика для операционной системы
:: расположенной в директории C:\Windows, в загрузочный раздел E:
bcdboot C:\Windows /s E: /f BIOS


Загрузчик установлен. Если сейчас выполнить перезагрузку машины, то ОС Windows благополучно загрузится.


Если загрузка по-прежнему не возможна, то скорее всего имеются проблемы с загрузочной записью MBR. О том, как ее восстановить, написано в предыдущем разделе.

Тема возврата среды восстановления, будет рассмотрена в последующих статьях.


Восстановление Загрузчика Windows (UEFI/GPT)


Рассмотрим восстановление UEFI-загрузчика ОС Windows. ОС использующие загрузку в UEFI режиме не нуждаются в загрузочных записях, на подобии MBR. Поэтому, рассмотрен будет сценарий с утраченным загрузочным EFI-разделом.

Что из себя представляет загрузочный EFI-раздел? Это обычный раздел, отформатированный в файловую систему FAT.

Перейдем к делу. Удалим на тестовой машине загрузочный EFI-раздел.


Попытка загрузки системы на данном этапе, приведет к ошибке, либо к загрузке UEFI Shell.


Загружаемся с установочного диска ОС Windows.


Открываем командную строку, нажав сочетание клавиш SHIFT+F10.


Создадим утраченный загрузочный EFI-раздел.

:: Запускаем программу diskpart
diskpart

rem Выводим список дисков системы
list disk

rem Выбираем диск под номером 0
select disk 0

rem Выводим список разделов выбранного диска
list partition

rem Создаем EFI-раздел в доступном пространстве диска, размером в 99МБ
create partition efi size=99

rem Помечаем созданный раздел как активный
active

rem Форматируем созданный раздел
format fs=fat32 quick label="System"

rem Монтируем созданный раздел
assign

rem Узнаем букву под которой смонтирован созданный ранее раздел
list volume



Раздел создан. Запоминаем букву созданного раздела, в моем случае это диск F:\.

Установим загрузчик на созданный раздел. Предварительно, выясняем букву раздела с установленной ОС Windows. Как это сделать, было описано в предыдущих разделах.  В моем случае, это диск D:\.

:: Установка файлов UEFI-загрузчика для операционной системы
:: расположенной в директории D:\Windows, в загрузовчный раздел F:
bcdboot D:\Windows /s F: /f UEFI


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


Все Ok.


Итог


В статье было рассмотрено: Как восстановить загрузочную MBR-запись ОС Windows? Как выполнить восстановление BIOS-загрузчика ОС Windows? Как выполнить восстановление UEFI-загрузчика ОС Windows?

Комментариев нет :

Отправить комментарий