Первые версии Windows обходились без загрузчика, т. к. полноценными ОС их можно было назвать лишь условно. По сути это были графические оболочки – программируемые надстройки над MS-DOS. Загрузчик, появившийся в системах на базе технологии NT (Windows 2000 и Win XP) имел название NTLDR и обладал дополнительным конфигурационным файлом boot.ini, в котором перечислялись все загружаемые на машине ОС и указывался порядок их загрузки. Файл boot.ini – это обычный текстовый файл с понятной структурой, легко поддающийся редактированию.
Новый загрузчик Windows получила с выходом версии Vista. Он получил название «Windows boot manager» и имеет одну интересную особенность – прописывает информацию о себе в разделе загрузки Bios. Выглядит эта информация как указание на имя самого сервиса и имя раздела, из которого загружается операционная система. Примерно так, как это показано на рисунке ниже:
Как обычно, при старте компьютера BIOS читает эти сведения и формирует меню выбора операционной системы, которое и предъявляется в конечном счете пользователю. После целого ряда переустановок ОС типа Windows этот перечень захламляется, и разобраться в том, какая из систем соответствует конкретной строчке меню запуска, становится затруднительно.
Кроме того, длинный перечень неиспользуемых ОС выглядит крайне неэстетично и раздражает самим своим присутствием. В XP и Win 2000 данная проблема решалась очень просто: вы открывали файл boot.ini в блокноте и удаляли ненужные строчки. После сохранения правки из загрузочного меню исчезали пункты, соответствующие удаленным записям.
Можно было поступить иначе: воспользоваться системными инструментами редактирования перечня загрузки, но оба эти варианта совершенно равноценны и сводятся к корректировкам указанного файла.
В старших версиях Windows файл Boot.ini отсутствует. И нам, очевидно, придется иметь дело с БИОС, так как именно там содержатся записи, аналогичные тем, что ранее писались в файл. Как откорректировать этот список?
BCD и его параметры
Если покопаться в недрах файловой системы старших версий Виндовс, то можно обнаружить скрытый небольшой раздел с наличествующей в нем папкой Boot. Именно тут и располагается так называемое хранилище данных конфигурации загрузки, представленное файлом с именем BCD. В отличие от boot.ini этот файл не допускает прямого редактирования вручную.
Для управления данными, в нем содержащимися, используется интерфейс командной строки. Но прежде чем начинать вводить в консоль команды, нужно хотя бы в первом приближении ознакомиться со структурой хранилища.
На каждый пункт загрузки приходится отдельная запись BCD, содержащая поля следующего назначения (опишем только значимые для нас параметры):
- Идентификатор (ID) пункта – индивидуальный номер в формате GUID, который однозначно идентифицирует каждую установленную на диске ОС.
- Раздел жесткого диска, с которого запускается Виндовс (параметр device).
- Относительный путь к загрузчику (параметр path).
- Название пункта меню, видное пользователю при старте компьютера (параметр description).
- Язык, используемый меню (параметр locale).
- Идентификатор ОС загружаемой по умолчанию (параметр default).
- Порядок строки в меню (параметр displayorder).
- Таймаут ожидания выбора пользователя (параметр timeout).
Чтобы не просматривать записи хранилища на экране консоли, можно организовать их просмотр в более комфортных условиях. Для этого нужно ввести команду вроде BCDEDIT > C:bcd.txt, чтобы перенаправить вывод в документ текстового типа, и затем просматривать его содержимое любым редактором. Учтите, отредактировать BCD в текстовом редакторе нельзя!
Редактируем BCD в консоли
Теперь посмотрим, как можно удалить запись из BCD, не трогая все остальные. Это часто встречающаяся задача: допустим, мы не пользуемся больше ОС размещенной на каком-нибудь конкретном разделе (она может быть даже повреждена), при этом запись о ней в хранилище остается, а значит, в загрузочном меню остается соответствующая ей строчка. Такая же примерно информация остается и в BIOS компьютера. Если мы введем команду: bcdedit ID, где ID – идентификатор удаляемой винды, то все эти сведения пропадут. Мы не увидим их больше ни в меню, ни в БИОС, а это именно то, чего мы и добиваемся. Пример такой команды:
После нажатия клавиши «Ввод» мы можем снова запустить просмотр BCD по команде bcdedit и, как и следовало ожидать, мы не обнаружим больше записи с удаленным идентификатором. Для захламленного меню загрузки эту команду придется либо выполнять несколько раз подряд, либо изучить опции команды, позволяющие выполнять операции в пакетном режиме. Единственный минус – необходимость наличия у пользователя навыка работы с консолью.
Источник: