Редактирование меню загрузчика Windows

05.05.2021 Windows

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

Сегодня займемся непосредственно редактированием конфигураций вариантов загрузки Windows. Речь пойдет о современном диспетчере загрузки Bootmgr, который впервые появился в Windows Vista, а точнее, о сопутствующем ему редакторе системного хранилища BCD (Boot Configuration Data) — bcdedit.exe и его командах.

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

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

Возможности графического интерфейса Windows по редактированию меню загрузчика

До того, как мы начнем разбирать основные команды консольного редактора bcdedit, посмотрим какие графические утилиты предоставляет Windows для редактирования меню загрузчика и убедимся, что они предельно ограничены.

Если открыть элемент “Система” в “Панель управления” или, что то же самое, «Свойства» в контекстном меню (по правой кнопке мыши) «Компьютер» и дальше “Дополнительно” –> “Загрузка и восстановление” –> “Параметры”, откроется окно “Загрузка и восстановление” >

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

Вторым вариантом редактирования BCD с использованием GUI (Graphical user interface) является оснастка «Конфигурация системы». Для ее запуска нужно в окне «Выполнить», или в командной строке, набрать и запустить msconfig >>

Дополнительно к тем немногочисленным возможностям, которые предоставляет апплет «Система» из «Панель управления», на вкладке «Загрузка» в «Конфигурация системы» можно еще удалить любой неактивный вариант загрузки. Это уже кое-что, но явно недостаточно для полноценного редактирования BCD.

Поэтому, придется о GUI забыть и обратиться к консольным командам редактора .

Консольное редактирование меню диспетчера загрузки Windows

Сложного ничего нет. Главное понимать, что и зачем делаешь. Редактор bcdedit.exe, который находится в папке …\Windows\System32, нужно запускать с правами администратора — клик правой кнопкой мыши на «Командная строка» –> «Запуск от имени администратора».

Без параметров bcdedit выведет всю информацию о вариантах загрузки, записанную в хранилище BCD >

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

идентификатор - заключенный в фигурные скобки {} (скобки в командах писать обязательно) 36-символьный, 32-значный, номер записи, в которой прописаны параметры загрузки операционной системы. Для системы, загруженной в данный момент, номер заменяется на {current}. Система, загружаемая по умолчанию, обозначается как {default}.

Для того, чтобы не набирать на клавиатуре такой длинный идентификатор, очень удобно воспользоваться текстовой копией выдачи bcdedit. Для этого нужно кликнуть правой кнопкой мыши в любом месте окна командной строки, в появившемся контекстном меню выбрать «Выделить все» и нажать на клавиатуре «Enter». Аналогичного, но выборочного, результата можно добиться, выбрав в контекстном меню «Пометить» и выделив далее нужные строки. Далее запускаем текстовый редактор «Блокнот» и вставляем в новый файл содержимое буфера обмена.

device - раздел, на котором расположены файлы загрузчика операционной системы. Соответственно, для секции «Диспетчер загрузки Windows» это активный системный раздел, для секции «Загрузка Windows» — загрузочный раздел конкретной операционной системы;

description – название операционной системы, отображаемое в списке во время загрузки;

path - путь к загрузчику ОС;

displayorder, timeout – соответственно, порядок отображения вариантов в меню загрузки и время в секундах показа самого списка до начала загрузки дефолтной ОС.

Для того, чтобы изменить значение любого параметра, нужно запустить bcdedit с соответствующими ключами. Например, изменяем название операционной системы в меню:
bcdedit /set {ID} description "Новое название системы" где {ID} – идентификатор записи для данной ОС (вот тут очень пригодится подстановка из сохраненного текстового файла);

bcdedit /displayorder {ID1} {ID2} {ID3}… указываем порядок отображения вариантов загрузки в меню.

Возможны действия с одной записью:
bcdedit /displayorder {ID} / addlast |addfirst |remove| – добавить запись в конец | начало списка | удалить (только из меню);

bcdedit /timeout XX – время отображения меню в секундах;

bcdedit /default {ID} - указываем систему, которая будет загружаться по умолчанию.

Наиболее вероятные варианты применения команд редактора bcdedit

Первое, что имеет смысл сделать до начала любых операций с BCD, это создать копию содержимого системного хранилища конфигурации загрузки:
bcdedit /export "C:\Backup\bcd-backup" где C:\Backup\ – произвольно выбранная для хранения папка, а bcd-backup – произвольное имя файла копии хранилища.

bcdedit /import "C:\Backup\bcd-backup" – противоположная команда. Восстанавливает содержимое хранилища конфигурации загрузки из его копии.

Создать новую загрузочную запись можно различными командами. Если тип новой системы аналогичен уже существующей, то имеет смысл воспользоваться командой копирования:
bcdedit /copy {ID} /d "Название новой системы"

Если в качестве «образца» выступает текущая операционная система, то команда будет выглядеть так:
bcdedit /copy {current} /d "Название новой системы" Эта команда сразу добавит новую запись в загрузочное меню.

Если новая загрузочная запись создается «с нуля», то нужно использовать:
bcdedit /create /d "Название новой системы" /application osloader где/application задает тип приложения.

Для создания загрузочной записи NTLDR для загрузчика ОС прежних версий, например, Windows XP:

bcdedit /create {ntldr} /d "Microsoft Windows XP"

Дополнительно нужно указать на каком разделе диска находится загрузчик системы:
bcdedit /set {ntldr} device partition=X: где Х: — буква диска раздела, на котором находятся файлы загрузчика, и путь к нему:
bcdedit /set {ntldr} path \ntldr

Запись можно добавить в конец списка ОС в меню:
bcdedit /displayorder {ntldr} /addlast

Создание записи для системы, загружаемой с виртуального диска (VHD):

bcdedit /copy {current} /d "Система на VHD" — создаем новую запись на основе текущей;

Запускаем bcdedit без параметров и копируем новый {ID}.
bcdedit /set {ID} device vhd=\DIR\filename.vhd - указываем полный путь к виртуальному диску, на котором лежат файлы загрузчика (системный раздел). Буква диска указывается в ;
bcdedit /set {ID} osdevice vhd= \DIR\filename.vhd - указываем местоположение виртуального диска с основными файлами операционной системы (загрузочный раздел);
bcdedit /displayorder {ID} /addlast - добавляем новую запись о системе в конец списка.

В , посвященной установке Windows 8.1 на виртуальный диск, представлен альтернативный способ создания соответствующей загрузочной записи в BCD.

В заключении рассмотрим команды удаления:

bcdedit /delete {ID} – удаление записи из хранилища;

bcdedit /deletevalue {ID} <тип_данных> – команда удаляет элемент данных из записи в хранилище данных конфигурации загрузки, где <тип_данных> — параметр, который следует удалить из указанной записи.