Вы наверняка знаете что система запуска для Windows хранится в чём-то с названием Boot Configuration Database (BCD, База данных конфигурации запуска). В Windows 11 его можно редактировать, но зачем это кому-то нужно? Существуют обстоятельства, например, когда у вас имеется конфигурация с двойным запуском или когда что- то в этой базе данных изменяется или разрушается. Даже в этом случае для Вас не все потеряно!
Для редактирования этой базы данных откройте Командную строку или Терминал Windows от имени Администратора и наберите команду BCDEdit. Она отобразит текущую конфигурацию в этой базе данных.
Все записи в этой базе данных начинаются со своих Идентификаторов. Это может быть некое техническое название, текстовая строка или даже шестнадцатеричный GUID (General Unique Identifier, Глобально уникальный идентификатор). Он поставляется в установленном формате {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.
Полный список идентификаторов показан ниже:
- {badmemory} Глобальный список дефектной памяти
- {bootloadersettings} Подлежащие наследованию всеми записями начального загрузчика глобальные настройки
- {bootmgr} Диспетчер запуска Windows
- {current} Основная операционная система в этом ПК
- {dbgsettings} Глобальные настройки отладчика
- {default} Идентификатор для записи запуска по умолчанию
- {emssettings} Глобальные настройки EMS
- {fwbootmgr} Запись запуска диспетчера запуска встроенного ПО, хранится в NVRAM систем UEFI
- {globalsettings} Подлежащие наследованию всеми записями начального загрузчика глобальные настройки
- {memdiag} Утилита диагностики памяти
- {ntldr} Наследуемый загрузчик Windows, NTLDR; применяется для выпущенных до Windows Vista версий Windows
- {ramdiskoptions} Необходимые для RAM дисков дополнительные параметры
- {resumeloadersettings} Подлежащие наследованию всеми записями восстановления из гибернации Windows глобальные настройки.
Для манипуляций содержимым этой базы данных существуют различные команды, которые вы можете применять в BCDEdit:
- bcdedit [/store filename] /bootdebug [id] { ON | OFF } используется для включения или отключения имеющегося отладчика для заданной записи запуска. В определяемом данной командой файле сохраняется журнал отладки. Она должна применяться в формате bcdedit /store C:\BootDebugLog /bootdebug {current} ON.
- bcdedit [/store filename] /bootsequence id […] [ /addfirst | / addlast | /remove ] определяет последовательность запуска для одноразовой загрузки. Может применяться в формате bcdedit /bootsequence { e397815a-15a9-11e5-9622-fc025c6ab93c } {current} {ntldr}
- bcdedit [/store filename] /copy id /d description создаёт копию заданной записи запуска. Может применяться в формате bcdedit /copy { e397815a-15a9-11e5-9622-fc025c6ab93c } /d "Copy of Windows 11"
- bcdedit [/store filename] /create [id] /d description [/application apptype | /inherit [apptype] | /inherit DEVICE | /device] создаёт новую запись запуска с заданным идентификатором. Поддерживаемыми типами являются BOOTSECTOR, OSLOADER и BOOTMGR, а наследуемыми поддерживаемыми типами являются BOOTSECTOR, FWBOOTMGR, MEMDIAG, NTLDR, ORLOADER и RESUME. Может применяться в формате bcdedit /create {ntldr} /d "Compatibility OS"
- bcdedit [/store filename] /debug [id] { ON | OFF } включает или отключает отладчик соответствующего ядра для заданной записи запуска. Может применяться в формате bcdedit /debug ON
- bcdedit [/store filename] /default id устанавливает для данного ПК запись запуска по умолчанию. Может применяться в формате bcdedit /default { e397815a-15a9-11e5-9622-fc025c6ab93c }
- bcdedit [/store filename] /delete id [/f] [/cleanup | /nocleanup] удаляет заданную запись запуска и может (не обязательно) вычищать её из отображаемого порядка. Может применяться в формате bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /cleanup
- bcdedit [/store filename] /deletevalue [id] datatype удаляет элемент или значение из записи запуска. Может применяться в формате bcdedit /deletevalue {bootmgr} bootsequence
- bcdedit [/store filename] /displayorder id […] [ /addfirst | /addlast | /remove ] устанавливает порядок отображения своего диспетчера запуска. Может применяться в формате bcdedit /displayorder { e397815a-15a9-11e5-9622-fc025c6ab93c } /addlast
- bcdedit [/store filename] /enum [type | id] [/v] перечисляет все имеющиеся записи запуска в заданном хранилище BCD. Может применяться с перечисляемыми типами ACTIVE, ALL, BOOTAPP, BOOTMGR, FIRMWARE, INHERIT, OSLOADER и RESUME. Может применяться в формате bcdedit /enum OSLOADER
- bcdedit /export filename создаёт резервную копию данного хранилища BCD в заданный файл. Может применяться в формате bcdedit /export "C:\BCD Backup"
- bcdedit /import [/clean] filename импортирует содержимое экспортированной резервной копии BCD. Может применяться в том же самом формате что и команда экспорта. Переключатель /clean используется только в системах UEFI и принуждает своё встроенное ПО удалять все применяемые в Безопасном запуске (Secure Boot) имеющиеся записи запуска.
- bcdedit [/store filename] /set [id] datatype value [ /addfirst | /addlast | /remove ] создаёт или изменяет элемент в записи запуска. Может применяться в формате bcdedit /set { e397815a-15a9-11e5-9622-fc025c6ab93c } path \windows\system32\winload.exe
- bcdedit /sysstore partition определяет тот раздел, который применяется для хранилища BCD. Данный переключатель используется исключительно в системах UEFI и может применяться в формате bcdedit /sysstore C:.
- bcdedit [/store filename] /timeout timeout определяет как долго должен выполнять ожидание в меню загрузки ОС начальный загрузчик перед выбором установленной по умолчанию записи. Может применяться в формате bcdedit /timeout 30, где значение числа представлено в секундах.
Вряд ли вы когда-либо будете использовать все команды из списка но один рабочий случай я вам покажу ниже. Итак, как BCDEdit применяется на практике?
Хотя вы можете редактировать содержимое Boot Configuration Database и манипулировать им, может быть непонятно как вы можете это осуществлять в реальной жизни. Давайте рассмотрим несколько примеров того, зачем вы можете применять команду BCDEdit:
1. Для изменения установленной по умолчанию операционной системы, той которая появляется первой в списке выбора ОС и которая грузится автоматически когда там не выбран ни один из вариантов, воспользуйтесь командой BCDEdit /default {id}.
2. Когда операционная система обладает неверным связанным с нею диском или разделом, это можно поправить при помощи команды BCDEdit /set {id} device partition=X:, где X: представляет тот диск или раздел, в котором установлена данная операционная система. Вы также можете воспользоваться командой BCDEdit /set {id} osdevice partition=X:
3. Для добавления вручную наследуемой операционной системы, которая не появляется в имеющемся перечне, воспользуйтесь такими командами со значением нового индивидуального идентификатора {legacy}:
a. BCDEdit /create {legacy} /d "Legacy OS Name"
b. BCDEdit /set {legacy} device partition=D: или значение буквы для того раздела, в котором установлена эта наследуемая ОС
c. BCDEdit /set {legacy} path /ntldr
d. BCDEdit /displayorder {legacy} /addlast
4. Если вы хотите добавить в своё меню запуска установку Linux следуйте данным инструкциям:
a. Загрузитесь в Linux и запустите сеанс Терминала с полномочиями root.
b. При помощи команды fdisk -l (lowercase "L") отыщите в каком разделе установлена Linux. Установка Linux будет в разделе, помеченном как dev/sda1 или /dev/hda1.
c. Установите в этом разделе Диспетчер запуска GRUB (Grand Unfied Boot Loader) воспользовавшись командой grub-install /dev/sda1.
d. При помощи команды dd if=/dev/sda1 of /tmp/linux.bin bs=512 count=1 скопируйте сектор запуска Linux.
e. В качестве резервной копии скопируйте файл linux.bin на флеш носитель USB.
f. Установите в своём ПК Windows 11.
g. Чтобы открыть меню администратора нажмите Win+X и запустите Командную строку (от Администратора) или Терминал Windows (как Администратор).
h. Для входа в утилиту управления диском наберите diskpart.
i. Наберите select disk=0, где скорее всего расположен ваш раздел запуска.
j. Наберите list volume и отыщите Активный или Системный раздел;
Тут вы ищете на диске раздел "System".
k. Вам требуется временно назначить букву устройства своему разделу System. Наберите assign letter=n и воспользуйтесь следующей доступной буквой диска.
l. Скопируйте во своего флеш накопителя USB файл резервной копии linux.bin в корень (активного) раздела.
m. Для удаления этой буквы диска наберите remove letter=n .
n. Создайте запись GRUB при помощи команды BCDEdit /create /d "GRUB" /application BOOTSECTOR. Она вернёт уникальный идентификатор: запишите его себе. Для всей остающейся части этого примера я буду именовать его как {linuxid}.
o. Наберите BCDEdit /set {linuxid} устройство_запуска.
p. Набеите BCDEdit /set {linuxid} PATH /linux.bin.
q. Наберите BCDEdit /displayorder {linuxid} /addlast.
Вот и все на сегодня.
No comments:
Post a Comment
А что вы думаете по этому поводу?