BCDEDIT: редактирование загрузчика Windows
Начиная с Windows Vista, корпорация Microsoft усложнила процесс редактирования загрузчика Windows. Мы уже касались утилиты bcdedit.exe. Эта статья посвящена ей подробнее.
Для начала разберемся, почему Microsoft решила отказаться от столь простого понятного текстового файла boot.ini. Дело, как это часто водится, в безопасности.
Для усложнения получения доступа к параметрам загрузчика было придумано специальное хранилище данных конфигурации загрузчика (BCD). В Windows Vista и более поздних версиях данные конфигурации загрузчика хранятся в виде специальных программных объектов, которые уже не являются простыми текстовыми элементами. Каждый объект в хранилище имеет уникальный идентификатор (GUID) и хранится в специальном формате. Каждый идентификатор является уникальным для конкретной копии операционной системы. Для удобства редактирования параметров загрузчика некоторым из объектов помимо идентификаторов присвоены псевдонимы, по которым к ним и можно обращаться посредством утилиты bcdedit.exe. Вот список основных псевдонимов:
Указание записи диспетчера загрузки Windows. | |
Указание записи диспетчера загрузки микропрограмм в энергонезависимой ОЗУ, часто используемых в системах с UEFI. | |
Указание записи приложения диагностики памяти. | |
Указание на загрузчик Ntldr, используемых в прошлых версиях ОС (до Windows Vista). | |
Виртуальный идентификатор, обозначающий загрузочную запись запущенной в данной момент операционной системы. | |
Виртуальный идентификатор, обозначающий используемую по умолчанию загрузочную запись. | |
Включает в себя параметры диспетчера загрузки при работе с электронными дисками (т.е. располагающимися в оперативной памяти). | |
Содержит глобальные параметры отладки, которые наследуются любой записью в приложении загрузки. | |
Содержит глобальные параметры служб аварийного управления, которые наследуются любой записью в приложении загрузки. | |
Включает в себя общий список дефектов оперативной памяти, который наследуется любой записью в приложении загрузки. | |
Общие параметры, которые наследуются всеми записями в приложении загрузки. | |
Набор общих параметров, наследуемых всеми записями приложений загрузки Windows. | |
Набор общих параметров, наследуемых всеми возобновлениями работы Windows из спящего режима. | |
Параметры гипервизора, которые могут наследоваться любой записью в приложении загрузки. |
Коснемся команд, доступных в утилите bcdedit.exe. Для получения списка команд запустите командную строку и введите
Для получения более подробной информации по каждой команде используйте
Для просмотра текущих параметров загрузки Windows достаточно вызвать утилиту в командной строке:
если же Вы хотите сохранить параметры загрузки в текстовый файл, то достаточно ввести
Путь для сохранения и имя можно, конечно, указать и другие.
Если же вместо псевдонимов Вы хотите видеть GUID, то команду можно видоизменить:
Можно использовать и другие форматы для экспорта информации. Например rtf, doc (не docx) или csv. Это позволяет не отвлекаться на проблемы с кодировками.
Перед редактированием загрузчика всегда разумно сделать его резервную копию. Делается это командой:
Путь и имя файла здесь тоже можно выбрать любые. Если в пути встречаются пробелы, в команде надо использовать кавычки:
Восстановление загрузчика производится командой
Разберем изменение основных настроек загрузчика Windows при помощи утилиты bcdedit.exe.
Приведенная выше команда устанавливает время вывода списка загрузки равным 15 секундам.
Если помимо современных версий Windows, на компьютере также установлены старые версии ОС, относящиеся к семейству NT (2000, XP, Server 2003 и пр.), установить такую ОС в качестве загружаемой по умолчанию можно командой
Если же в качестве загружаемой по умолчанию нужно использовать текущую ОС, используйте команду
Вообще, ничто не мешает Вам использовать и GUID системы, для того, чтобы указать её в качестве загружаемой по умолчанию. GUID Вы можете посмотреть в текстовом файле, который мы до этого сохраняли на жесткий диск. Команда в таком случае будет выглядеть следующим образом:
В данном случае в конце должен содержаться GUID в виде набора букв и цифр. Помните, что GUID должен быть заключен в фигурные скобки (<>).
Вы можете также отредактировать местоположение операционных систем в списке загрузки. Делается это следующей командой
В таком примере первой в списке будет отображаться устаревшая версия Windows, затем текущая, из-под которой вводилась эта команда. Вместо псевдонимов можно использовать и GUID систем.
Теперь разберем как создавать новые записи в загрузчике Windows при помощи утилиты bcdedit.exe. В общем виде команда создания новой записи выглядит так:
bcdedit.exe /create [< >] /d [/application |/inherit [ ] | /inherit DEVICE | /device]
разберем синтаксис команды подробнее.
ID — идентификатор, который будет использоваться для новой записи загрузки. В качестве идентификатора может быть использован GUID или псевдоним;
описание — то, как новая запись загрузки будет отображаться в списке;
application — указание на то, что новая запись является записью приложения, в данном случае тип_приложения может принимать один из следующих вариантов: BOOTSECTOR, OSLOADER, RESUME, STARTUP.
inherit — указание на то, что новая запись является наследуемой записью. тип_приложения может принимать одно из следующих значений: BOOTMGR, BOOTSECTOR, FWBOOTMGR, MEMDIAG, NTLDR, OSLOADER, RESUME. Если тип_приложения не указан, то новая запись может наследоваться от любой записи.
inherit DEVICE — указание на то, что новая запись является наследуемой и может быть унаследована только записью параметров устройства.
device — указание на то, что новая запись является дополнительной записью параметров устройства.
Добавить новую запись загрузки ОС семейства Windows NT данной командой довольно просто. Мы уже знакомы с псевдонимом ntldr , поэтому сгенерировать нужную команду не составит труда.
Прежде чем приступать к созданию новой записи, нам нужно скопировать файлы ntldr, boot.ini, ntdetect.con, bootfont.bin из раздела со старой ОС на тот раздел, где лежит загрузчик Windows. Им может быть как раздел, куда установлена свежая версия Windows, так и отдельный скрытый раздел, который может не отображаться в проводнике, но отображаться в консоли Управление дисками. Такой раздел будет носить описание Зарезервировано системой (System reserved).
Чтобы увидеть его в проводнике, можно временно присвоить ему букву. Делается это щелчком правой кнопкой мыши и выбором в меню пункта Изменить букву диска или путь к диску.
Далее достаточно нажать Добавить и выбрать подходящую букву.
После копирования файлов создаем новую запись загрузки:
Создаем параметры передачи загрузчику Windows NT:
x в данном случае это имя раздела, где лежит загрузчик Windows NT. Если раздел является скрытым и не имеет буквы, то его нужно указать в том виде, в котором он отображается в текущей конфигурации ОС, например:
Далее требуется указать путь к загрузчику ntldr:
И добавить этот пункт в конец списка загрузки:
Но и это еще не всё. Ведь нам надо убедиться, что загрузчик ntldr находит ОС. Если что-то идет не так, то первым делом убедитесь, что в файле boot.ini прописаны верные пути к ядру Windows NT. Например, если речь идет о первом разделе второго жесткого диска, то путь будет выглядеть так:
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS=»ОС семейства Windows NT» /fastdetect
Помните, что нумерация дисков в загрузчике ntldr начинается с нуля, а разделов с единицы.
Разберем синтаксис команды удаления записи загрузки.
bcdedit.exe [/store ] /delete < >[/f] [/cleanup | /nocleanup]
файл_хранилища — указание на используемое хранилище. Если параметр не задан явно, используется хранилище текущей ОС;
ID — идентификатор записи, которую требуется удалить. В качестве идентификатора может быть использован GUID или псевдоним;
f — параметр удаления указанной записи. Без этого параметра утилита bcdedit.exe не удаляет записи, имеющие известные псевдоним;
cleanup — удаление записи загрузки с удаление также и из списка загрузки. Кроме того, будет удалены и все ссылки на данную запись из хранилища. Параметр используется по умолчанию, если не задан nocleanup;
nocleanup — удаление записи загрузки без удаления из списка загрузки.
Например, загрузчик ОС семейства Windows NT имеет известный нам псевдоним ntldr , а потому запись загрузки не удалится без параметра f . Пример удаления:
Если у записи нет псевдонима, а только GUID, то достаточно указать его в фигурных скобках и не дописывать параметр f .
Как восстановить загрузочный сектор — Master Boot Record
MBR , который также определяется как Master Boot Record или Главная загрузочная запись , является сектором жесткого диска, содержащим информацию о его разделах и служащим загрузчиком операционной системы.
Главная загрузочная запись представляет собой первые 512 байт (4096 бит) вашего HDD и создается в момент первой установки Windows. Если MBR повреждается, вы больше не сможете запустить операционную систему и продолжить работу в ней привычным образом. Данный факт касается следующих версий Windows: XP, Vista, 7 и 8.
Симптомы повреждения MBR:
1. Operating System not found (Операционная система не найдена).
2. Error loading operating system (Ошибка при загрузке операционной системы).
3. Invalid partition table (Неверная таблица разделов).
4. FATAL: No bootable medium found (Загрузочный носитель не найден).
5. Reboot and Select proper Boot device (Перезапустите систему и выберите подходящее загрузочное устройство.
Мы привели лишь основные ошибки, сообщения о которых могут возникнуть при запуске операционной системы. На самом деле их существует большое множество и разбирать каждую не имеет смысла, поскольку путей решения всего несколько на необъятное число возможных сбоев.
Причины повреждения MBR:
- Вредоносное программное обеспечение, вирусы.
После восстановления загрузочного сектора не забудьте проверить жесткий диск на наличие возможных вирусов. Некоторые из них способны заменить код MBR своим собственным, что неизбежно приведет к его повреждению. - Наличие двойной загрузки.
Предположим, что на условном ПК установлены операционные системы Windows и Linux. В этом случае возможно возникновение непреднамеренной ошибки и повреждения MBR. - Сторонний софт.
Не всегда причиной сбоя в загрузочном секторе являются вирусы или ошибки в работе двух одновременно установленных операционных систем. Иногда повреждение MBR может вызвать даже популярный софт. Например, Acronis заменяет драйвера загрузки дисков своими, что вполне может испортить исходную запись MBR.
Итак, разобравшись с тем что же собой представляет MBR, узнав возможные причины возникновения сбоев и их симптомы мы, наконец, готовы приступить к непосредственному восстановлению Главной загрузочной записи.
Восстановление загрузочного сектора
Восстановление MBR в Windows 10
1. Резервное копирование MBR.
Перед тем как приступать к ремонту главной загрузочной записи, настоятельно рекомендуем совершить ее резервное копирование. Чтобы это сделать, воспользуйтесь следующей командой:
dd if=/dev/sda of=/path-to-save/mbr-backup bs=512 count=1
Замените фрагмент /path-to-save/ на путь, по которому сохранится старая версия загрузочного сектора.
2. Восстановление MBR командой bootrec.
Для дальнейшей работы вам понадобится загрузочное устройство с предустановленной версией Windows 10.
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. На приветственном экране кликните по параметру Восстановление системы .
- 3. Перейдите в раздел Поиск и устранение неисправностей .
- 4. Откройте утилиту Командная строка .
- 5. Введите в ней приведенные ниже команды, подтверждая выполнение каждой нажатием клавиши Enter .
По завершению, командную строку не закрывайте.bootrec /FixMbr
bootrec /FixBoot
bootrec /ScanOs
bootrec /RebuildBcd - 6. Извлеките загрузочное устройство.
- 7. Введите exit и нажмите Enter .
- 8. Перезапустите компьютер.
Если данная инструкция по восстановлению главной загрузочной записи оказалась бессильна, воспользуйтесь следующей:
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. На приветственном экране кликните по параметру Восстановление системы .
- 3. Перейдите в раздел Поиск и устранение неисправностей .
- 4. Откройте утилиту Командная строка .
- 5. Введите в ней приведенные ниже команды, подтверждая выполнение каждой нажатием клавиши Enter .diskpart
sel disk 0
list vol
Эти команды позволят выбрать для работы первый диск компьютера и отобразят список его логических разделов. - 6. Найдите элемент тома со столбцом Fs FAT32 . Раздел EFI должен быть строго с форматом FAT32 . Если раздел тома обозначен цифрой 2 , введите следующую команду:sel vol 2
Если номер тома не равен 2 , замените 2 на любую другую доступную цифру. - 7. Присвойте разделу новую букву, букву которая отличается от той, которая уже доступна на вашем компьютере. Например r:\ . Для выполнения этой задачи, воспользуйтесь следующей командой:assign letter-r:
- 8. Дождитесь появления приведенного ниже сообщения:Diskpart successfully assigned the drive letter or amount point.
- 9. Введите exit , чтобы покинуть утилиту DiskPart .
- 10. Следующая команда понадобится для того, чтобы заменить r:\ буквой, которая ранее была присвоена разделу EFI :cd /d r:\EFI\Microsoft\Boot\
- 11. Введите приведенную ниже команду, чтобы восстановить том диска:bootrec /fixboot
- 12. Теперь необходимо сделать резервную копию старого BCD:ren BCD BCD.backup
- 13. Введите следующую команду, чтобы создать новый BCD и замените r:\ назначенной ранее буквой:bcdboot c:\Windows /l ru-ru /s r: /f ALL
- 14. В приведенной выше команде мы указали букву операционной системы — c:\ . Если вы устанавливали Windows на диск с другим путем, укажите корректную букву.
- 15. Извлеките загрузочное устройство.
- 16. Введите exit .
- 17. Перезапустите компьютер.
Восстановление MBR в Windows 8 и 8.1
Для дальнейшей работы вам понадобится загрузочное устройство с предустановленной версией Windows 8.
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. На приветственном экране кликните по параметру Восстановление системы .
- 3. Перейдите в раздел Поиск и устранение неисправностей .
- 4. Откройте утилиту Командная строка .
- 5. Введите в ней приведенные ниже команды, подтверждая выполнение каждой нажатием клавиши Enter . По завершению, командную строку не закрывайте.bootrec /FixMbr
bootrec /FixBoot
bootrec /ScanOs
bootrec /RebuildBcd - 6. Извлеките загрузочное устройство.
- 7. Введите exit и нажмите Enter .
- 8. Перезапустите компьютер.
Если данная инструкция по восстановлению главной загрузочной записи оказалась бессильна, воспользуйтесь следующей:
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. На приветственном экране кликните по параметру Восстановление системы .
- 3. Перейдите в раздел Поиск и устранение неисправностей .
- 4. Откройте утилиту Командная строка .
- 5. Введите в ней приведенные ниже команды, подтверждая выполнение каждой нажатием клавиши Enter .diskpart
sel disk 0
list vol
Эти команды позволят выбрать для работы первый диск компьютера и отобразят список его логических разделов. - 6. Найдите элемент тома со столбцом Fs FAT32 . Раздел EFI должен быть строго с форматом FAT32 . Если раздел тома обозначен цифрой 2 , введите следующую команду:sel vol 2
Если номер тома не равен 2 , замените 2 на любую другую доступную цифру. - 7. Присвойте разделу новую букву, букву которая отличается от той, которая уже доступна на вашем компьютере. Например r:\ . Для выполнения этой задачи, воспользуйтесь следующей командой:assign letter-r:
- 8. Дождитесь появления приведенного ниже сообщения:Diskpart successfully assigned the drive letter or amount point.
- 9. Введите exit , чтобы покинуть утилиту DiskPart .
- 10. Следующая команда понадобится для того, чтобы заменить r:\ буквой, которая ранее была присвоена разделу EFI :cd /d r:\EFI\Microsoft\Boot\
- 11. Введите приведенную ниже команду, чтобы восстановить том диска:bootrec /fixboot
- 12. Теперь необходимо сделать резервную копию старого BCD:ren BCD BCD.backup
- 13. Введите следующую команду, чтобы создать новый BCD и замените r:\ назначенной ранее буквой:bcdboot c:\Windows /l ru-ru /s r: /f ALL
- 14. В приведенной выше команде мы указали букву операционной системы — c:\ . Если вы устанавливали Windows на диск с другим путем, укажите корректную букву.
- 15. Извлеките загрузочное устройство.
- 16. Введите exit .
- 17. Перезапустите компьютер.
Восстановление MBR в Windows 7
Для дальнейшей работы вам понадобится загрузочное устройство с предустановленной версией Windows 7.
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. Укажите язык операционной системы.
- 3. Выберите раскладку клавиатуры.
- 4. Нажмите Далее .
- 5. Выберите операционную систему и еще раз нажмите Далее .
- 6. На экране Параметры восстановления системы выберите утилиту Командная строка .
- 7. Как только командная строка будет запущена, введите следующую команду:bootrec /rebuildbcd
- 8. Нажмите Enter .
- 9. Далее введите:bootrec /rebuildbcd
- 10. Нажмите Enter .
- 11. Извлеките загрузочный носитель и перезапустите компьютер.
Если данные команды по восстановлению главной загрузочной записи оказались бессильны, воспользуйтесь приведенной ниже инструкцией:
- 1. Определите букву вашего загрузочного устройства, последовательно введя следующие команды:diskpart
select disk 0
list volume - 2. Теперь введите:exit
F:
cd boot
dir
Букву F: замените на букву под которой определяется загрузочный носитель. - 3. Введите команду:bootsect /nt60 SYS /mbr
- 4. Подтвердите операцию, нажав Enter .
- 5. Извлеките загрузочное устройство.
- 6. Введите команду exit .
- 7. Теперь нажмите Enter , чтобы перезапустить компьютер.
Восстановление MBR в Windows Vista
Для дальнейшей работы вам понадобится загрузочное устройство с предустановленной версией Windows Vista.
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. Выберите язык и раскладку клавиатуры.
- 3. На приветственном экране выберите параметр Восстановление системы .
- 4. Выберите операционную систему и нажмите Далее .
- 5. Откройте утилиту Командная строка .
- 6. Как только приложение запустится, последовательно введите следующие команды:bootrec /FixMbr
bootrec /FixBoot
bootrec /RebuildBcd - 7. Дождитесь завершения каждой операции.
- 8. Извлеките загрузочный накопитель.
- 9. Введите exit.
Альтернативно команде bootrec, вы можете попробовать восстановить MBR автоматически:
- 1. Совершите запуск компьютера при помощи загрузочного носителя.
- 2. На приветственном экране выберите параметр Восстановление системы .
- 3. Выберите параметр Восстановление запуска .
- 4. Дождитесь завершения процесса и перезапустите компьютер.
Существует еще одна, более сложная, альтернатива восстановления MBR. Ее концепция вращается вокруг непосредственного ремонта BCD. Запустив Windows при помощи CD/DVD, откройте командную строку и введите в следующие команды:
bcdedit /export C:\bcdbackup
C:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.backup
bootrec /rebuildbcd
Подтвердите выполнение каждой команды нажатием клавиши Enter .
Восстановление MBR в Windows XP
Для дальнейшей работы вам понадобится загрузочное устройство с предустановленной версией Windows XP.
- 1. Для дальнейшей работы вам понадобится загрузочное устройство с предустановленной версией Windows Vista.
- 2. В момент появления приветственного экрана нажмите клавишу R, чтобы открыть Консоль Восстановления
- 3. На вопрос о дальнейших действиях, ответьте системе, введя цифру 1 и подтвердите операцию нажатием клавиши Enter .
- 4. При необходимости введите пароль администратора.
- 5. Введите команду fixmbr .
- 6. Когда появится запрос системы о подтверждении ваших действий, нажмите клавишу Y и Enter .
- 7. Дождитесь завершения операции.
- 8. Извлеките загрузочный накопитель.
- 9. Введите команду exit .
- 10. Нажмите Enter , чтобы перезапустить компьютер.
Надеемся статья оказалась для вас полезной и помогла восстановить загрузочный сектор вашего диска.