Заметки о Windows и других программных продуктах Microsoft...

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

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

В Windows XP загрузочная информация хранилась в файле boot.ini, и для внесения изменений в меню загрузки достаточно было просто отредактировать этот файл в текстовом редакторе. Начиная с Windows Vista все поменялось, и теперь меню загрузки операционной системы находится в хранилище загрузки (Boot Configuration Data, BCD). Некоторые параметры меню загрузки можно изменить привычным способом, используя графический интерфейс, но полный доступ к BCD возможен только из командной строки.

Мы рассмотрим несколько способов внесения изменений в загрузочное меню. Итак, способ первый.

Апплет панели управления Свойства системы.

Для того чтобы добраться до параметров, отвечающих за загрузку системы, идем в меню Пуск — Панель управления — Система. Откроется окно свойств системы, в котором нужно выбрать пункт «Дополнительные параметры системы».

меню свойств системы

 

Затем, из дополнительных свойств системы выбираем раздел «Загрузка и восстановление» и нажимаем кнопку Параметры.

дополнительные свойства системы

 

В открывшемся окне мы можем:

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

И все, не добавить новую запись, не изменить или удалить существующую отсюда не получится (в XP была еще кнопка «Правка», при нажатии на которую можно было вручную отредактировать загрузочное меню в Блокноте).

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

 

Настроек явно маловато, попробуем другой способ.

Оснастка Конфигурация системы.

Чтобы открыть окно Конфигурация системы, набираем сочетание клавиш  Win+R , в строке Выполнить вводим команду msconfig и нажимаем ОК.

запуск оснастки Конфигурация системы

 

В открывшемся окне конфигурации системы переходим на вкладку Загрузка. Здесь мы можем проделать следующие действия:

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

Добавить или изменить запись мы по прежнему не можем.

окно Параметры системы

 

А что же делать, если нужно, например изменить положение записи в меню загрузки или переименовать ее? В этом нам поможет третий способ:

Утилита командной строки bcdedit

Утилита bcdedit.exe находится в системной папке Windows\System32. Для работы ей необходим административный доступ к компьютеру, поэтому оболочку командной строки запускаем от имени администратора (иначе при попытке запустить программу будет выдана ошибка).

запуск командной строки с правами администратора

 

Если просто ввести команду bcdedit без параметров, то на экран будет выведена информация, хранящаяся в BCD. Информация представлена в виде двух столбцов: слевав расположены названия параметров, справа – их значения.

результат выполнения команды bcdedit

 

Вот основные параметры, отвечающие за загрузку:

  • идентификатор — идентификационный номер, указывающий на запись в меню загрузки. Представляет из себя 32-значный буквенно-цифровой код, заключенный в фигурные скобки. Для стандартных идентификаторов используются названия, например {current} — текущая система, {default} — система по умолчанию;
  • device — указывает раздел, на котором расположен загрузчик операционной системы;
  • osdevice — указывает раздел, на котором находится сама операционная система. Как правило, значения device и osdevice идентичны;
  • path — остальной путь к загрузчику операционной системы;
  • description — описание операционной системы, отображающееся в меню при загрузке;
  • default — операционная система, загружаемая по умолчанию;
  • timeout — время ожидания перед загрузкой ОС по умолчанию;
  • displayorder — порядок, в котором системы отображаются при загрузке.

А теперь рассмотрим варианты применения  bcdedit:

bcdedit /default {ID} — задаем систему, загружаемую по умолчанию.

bcdedit /displayorder  — управляем порядком размещения записей в меню загрузки:

  • bcdedit /displayorder {ID} /addlast — добавляем систему в конец списка;
  • bcdedit /displayorder {ID} /addfirst — добавляем систему в начало списка;
  • bcdedit /displayorder {ID2} {ID1} — указываем порядок отображения систем в списке;
  • bcdedit /displayorder {ID} /remove — удаляем запись из меню загрузки.

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

bcdedit /timeout XX — задаем таймаут в секундах.

bcdedit /set {ID} description ″Название системы″ — изменяем название системы, отображаемое в меню загрузки.

bcdedit /create /d ″Windows Vista″ /application osloader —  создаем новую загрузочную запись.

bcdedit /create {ntldr} /d ″Windows XP″ — создаем загрузочную запись для ОС предыдущих версий (XP и старше).

bcdedit /copy {ID} /d ″Новая система″ — копируем  загрузочную запись. Таким образом тоже можно добавить новую запись в меню загрузки.

bcdedit /delete {ID} /cleanup — удаляем  загрузочную запись. При этом удаляется вся информация об установленной операционной системе из BCD и меню загрузки. У этой команды есть одна особенность — если в качестве ID указывается название, например {default}, то команда должна выполняться с ключом /f, если же ID записывается в буквенно-цифровом коде, ключ /f не нужен.

bcdedit /export ″C:\Backup\bcd″ — экспортируем содержимое хранилища в указанный файл.

bcdedit /import ″C:\Backup\bcd″  — восстанавливаем состояние системного хранилища из резервной копии, созданной с помощью команды /export.

Ну и несколько наиболее «жизненных» примеров

Добавление новой загрузочной записи, для мультизагрузки:

bcdedit /copy {current} /d ″New Windows 7 ″ — копируем текущую запись и называем ее по новому;
bcdedit /set {ID} device partition=D: —  указываем местоположение загрузчика системы;
bcdedit /set {ID} osdevice partition=D: — указываем местоположение операционной системы;
bcdedit /displayorder {ID} /addlast — добавляем запись о системе  в меню загрузки, в конец списка.

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

bcdedit /copy {current} /d ″Загрузка с VHD″ — копируем текущую запись;
bcdedit /set {ID} device vhd=[X:]\DIR\filename.vhd — указываем местоположение загрузчика системы;
bcdedit /set {ID} osdevice vhd= [X:]\DIR\filename.vhd — указываем местоположение операционной системы;
bcdedit /set {ID} detecthal on — включаем принудительное обнаружение аппаратно-зависимого уровня (Hardware Abstraction Layer, HAL);
bcdedit /displayorder {ID} /addlast — добавляем запись о системе  в меню загрузки, в конец списка.

Примечание. [X:]\DIR\filename.vhd – это полный путь к VHD-файлу и указание имени файла.

Добавление загрузочной записи для загрузки Windows XP:

bcdedit /create {ntldr} /d ″Microsoft Windows XP″ — создаем новую загрузочную запись;
bcdedit /set {ntldr} device partition=\Device\HarddiskVolume1 — указываем расположение файлов загрузки системы;
bcdedit /set {ntldr} path \ntldr — указываем путь к загрузчику системы;
bcdedit /displayorder {ntldr} /addlast — добавляем запись о системе  в меню загрузки.

 
 
Комментарии

Удалил из диспетчера строку несуществующей ОС с помощью второго способа. До третьего способа буду пробовать по необходимости…
Спасибо за отличный документ!

Спасибо. Коротко, толково, черезвычайно понятно. осталось только выучить на зубок.

Александр

Ёмко, доступно, всё получилось! Большое спасибо!

Большое спасибо! Легко и понятно!

Спасибо БОЛЬШОЕ!!!!!

Дмитрий

Спасибо, первый-же вариант помог.

Спасибо

В общем удалился у меня загрузочник. Через диск сделать не удалось, так как там не предлагалось восстановить систему. Пришлось установить еще винду на другой диск. Через нее создал загрузочную запись как описано выше. Все работает спасибо!!! И кстати там опечатка bided it set Id osdevice device partition d, слово device лишнее в этой строке. Благодаря тебе автор я задолбался Id печатать))) не думал что получится, спасибо еще раз!!!

Действительно лишнее 🙂
Поправил.

Максим

06.03.2016 at 13:25

Добрый день, Кирилл.
Очень толковая статья, спасибо.
Но есть один вопрос: как сделать так, чтобы диск с которого загрузилась ОС становился системным, т.е. становился диском C: по факту. А то система работает с диска D:, а образ ОС скопирован с установленными программами по пути C: и тут начинается котовасия)

Не буду оригинальным, просто скажу спасибо за толковое разъяснение. Хоть написано и давно, актуальность не утеряна, по крайней мере для меня.

Алексей

А как указать расположение файлов загрузки системы Windows XP, если они находятся на другом физическом диске?
Спасибо.

bcdedit /set {ntldr} device partition=\Device\HarddiskVolume1 — здесь \Device\HarddiskVolume1 это раздел с установленной XP. Посмотреть разделы можно в оснастке Disk management или утилитой diskpart из командной строки.

Соломон

https://www.youtube.com/watch?v=HuhY97w_zaw — Как отредактировать меню загрузки windows 7

Максим

Добрый день, Кирилл.
Очень толковая статья, спасибо.
Но есть один вопрос: как сделать так, чтобы диск с которого загрузилась ОС становился системным, т.е. становился диском C: по факту. А то система работает с диска D:, а образ ОС скопирован с установленными программами по пути C: и тут начинается котовасия)

Проще всего назначить диску нужную букву. Сделать это можно из оснастки управления дисками diskmgmt.msc.

Денис

Добрый день.
Установил вторую систему Windows 7 на новый хард. На другом харде стоит Windows XP. Обе ОС работают и грузятся если в BIOS переключать очередность загрузки HDD. Хотелось бы сделать меню выбора, но затык с определением пути для XP. Несколько вариантов попробовал что Вы предлагаете, но XP не грузится, при попытке выбора пишел не может найти файл либо перегружается по новой.
Подскажите как точно настроить путь к Windows XP которая лежит на другом жестком диске на одном из разделов.

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

Денис

У меня 2 активных жестких диска на обоих область для записи загрузки, видимо по этому 7-ка не создала сама загрузочную запись для XP, а ошибка простая — не могу найти \ntldr пишет мне загрузчик )

Валерий

Здравствуйте, Кирилл! У меня следующая ситуация: стояло на компе 4 винды — две ХР и две 7-ки 32-х битные. Захотелось установить 7-ку 64-битную на место одной из ХР. После установки другие системы пропали. Вернул только старую ХР после переустановки 64-битной 7-ки обратно на ХР и отредактировав boot.ini файл. Но старые 7-ки так и не смог вернуть. Затем, очистив один из свободных от винды разделов, установил туда 7-ку 64 битную. Теперь могу загрузить две ХР и эту 7-ку. Порывшись нашел Ваш сайт и попробовал через cmd отредактировать загрузчик, что б вернуть старые 7-ки. Но из всех предложенных Вами действий сработало только bcdedit /copy {current} /d ″New Windows 7 ″. Изменить расположение загрузчика и системы так и не смог. В результате при загрузке вижу Windows 7 и New Windows 7, но по обоим грузится только эта 7-ка 64 битная. Подскажите пожалуйста, что я сделал не так и как это все исправить.

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

Валерий

64 битка переименовала раздел куда я ее устанавливал из G в C. При загрузке присутствует надпись «Предшествующая версия виндовс», где я могу выбрать к загрузке одну из двух ХР. В командной строке загрузчика вин7 записана инфа только об одной 7-ке, последней установленной. Вот я и хотел ввести запись о двух старых 7-ках, но не получилось

Валерий

проблема решилась за 5 минут после просмотра этого ролика https://www.youtube.com/watch?v=q5GG1KFZ7lg и сейчас у меня установлено 5 систем 🙂

Ну да, видео то понагляднее будет 🙂
Если не секрет, то зачем может потребоваться 5 систем на одном компе?