Загрузчик системы Windows 10 что то не нравится.
Неприятным открытием для пользователя ПК при установке Windows 10 на компьютер с множественным выбором загрузки различных предустановленных операционных систем может оказаться замена привычного загрузочного меню - на bootmgr windows 10 ... Этот новый, автоматически устанавливаемый загрузчик, хотя и не запрещает возможностей иного выбора прежних устаревших систем ОС, но делает это весьма своеобразным и непривычным образом, что не каждому оператору ПК может прийтись по душе ...
Поскольку файл загрузчика системный и скрытый - с ним трудно взаимодействовать напрямую ... Но, можно использовать сторонние программы, позволяющие просматривать системные файлы, например WinRar ... Вот такие текстовые строки можно найти в bootmgr windows 10 ( размер 416Кб ; 416842 байт ) ...
- Boot Parameters size is too big ...
- No physical memory is available at the location required for the Windows Boot
Manager ...
- The system can not continue ...
- The Windows Boot Manager is incompatible with this system ...
- BOOTMGR image is corrupt ...
- The system cannot boot ...
- The file is possibly corrupt ...
- The file header checksum does not match the computed checksum ...
- This program cannot be run in DOS mode ...
- String File Info 040904B0 ...
- Company Name Microsoft Corporation ...
- File Description Boot Manager ...
- File Version 10.0.19041.4291 (WinBuild.160101.0800) ...
- Internal Name bootmgr.exe ...
- Original Filename bootmgr.exe ...
- Product Version 10.0.19041.4291 ...
- и прочие, в подобном духе ...
В то же время бутлоадер windows 8 bootmgr ( размер 389Кб ; ) идентифицируется, как ...
- String File Info 040904B0 ...
- Company Name Microsoft Corporation ...
- File Description Boot Manager ...
- File Version 6.3.9600.16415 (winblue_gdr.130928-1658) ...
- Internal Name bootmgr.exe ...
- Original Filename bootmgr.exe ...
- Product Version 6.3.9600.16415 ...
Предположительно,
* WinBuild.160101.0800 - сборка Windows 10 выпуска 1 января 2016 года, одна из ранних версий ...
* winblue_gdr.130928-1658 - сборка Windows 8.1 выпуска 28 сентября 2013 года, обновление, которое добавляет улучшений и новых функций к исходной версии Windows 8 ...
Стоит отметить, что при загрузке пк через grubdos в связке с bootmgr win8, при выборе ос с загрузкой через bootmgr, варианты выбора отображаются, как - строковые (на экране) и при выборе загрузка системы происходит немедленно ... Однако, когда установлен bootmgr win10, сначала - грузится графическое меню выбора ос с иконками, а затем, после выбора системы для загрузки - снова происходит перезагрузка пк, где при выборе загрузчика bootmgr - уже подставлена требуемая система, что в общем-то - отнимает время , так как при каждой новой перезагрузке сначала снова попадаешь в основной экран выбора и опять приходится выбирать пусть даже и прошлую загруженную систему - с новой перезагрузкой пк ... это очень неудобно и затратно по времени ...
Порядок шагов загрузки ОС ПК.
Понятно, что поведение загрузчиков в разных версиях Windows может отличаться, тем более в системах с нестандартной конфигурацией использования иного загрузчика совместно с bootmgr ... Чтобы добиться желаемого и ожидаемого поведения загрузчиков компьютера при выборе и старте требуемой ОС нужно совмещать требования настроек к последовательности шагов загрузки ПК ...
- POST проверка BIOS оборудования ПК, при включении - инициализирует устройства и настраивает их ...
- Приоритет выбора загрузочных устройств / накопителей и дисков - задаётся вручную в разделе BIOS = Boot Order / Порядок загрузки ...
- Устаревший режим Legacy BIOS = читает первый сектор диска по указанному порядку загрузки и передает управление MBR - Master Boot Record, содержащий код начальной загрузки и таблицу разделов ... MBR ищет на диске раздел, помеченным флагами активный / загрузочный и передает управление PBR - Partition Boot Record ... Загрузочный сектор активного раздела содержит информацию о том, какой именно загрузчик следует запустить ... Ключевое различие между BIOS - ориентироваться на структуру MBR, требуя наличия активного раздела PBR, содержащего загрузочные данные ...
- Новый режим UEFI сканирует все подключённые устройства хранения данных и ищет раздел EFI System Partition (ESP), содержащий файлы загрузчиков для установленных операционных систем ... UEFI в энергонезависимой памяти NVRAM хранит список доступных систем и предлагает пользователю выбрать вариант загрузки ... Ключевое различие UEFI - работать с таблицей разделов GUID (GPT) и областью ESP хранения загрузчиков ... Это позволяет более гибко управлять процессом загрузки и поддерживать множественные операционные системы ... GUID диска / Globally Unique Identifier - это уникальный 128-битный идентификатор, разделенный на группы дефисом, подобно идентификаторам записей в реестре, но используемый в ином контексте ...
- Вспомним - про различия и ограничения ...
- MBR поддерживает до четырех первичных разделов, максимальный размер диска ограничен до 2 терабайт ; адресация секторов 32-битные числа ...
- GPT значительно превышает возможности MBR, теоретически поддерживая до 128 разделов на одном диске ... Максимальный размер диска до 9,4 зеттабайт, или = 11 триллионов терабайт ... адресация секторов 64-битные числа ... Старые MBR BIOS системы не могут распознавать GUID GPT UEFI диски ...
Различия между bootmgr в Windows 8 и Windows 10 ... В Windows 10 Microsoft добавила новый графический интерфейс для выбора операционной системы при загрузке ... Это может объяснять появление дополнительного экрана с иконками перед тем, как начнется непосредственная загрузка выбранной системы ... Возможно, bootmgr win10 выполняет дополнительные проверки или операции, прежде чем перейти непосредственно к загрузке выбранной системы, и именно эти требования создают условия необходимости повторной перезагрузки ПК после выбора требуемой ОС ... При использовании, Windows 8 bootmgr - руководствуется хранилищем загрузочных записей BCD, позволяя выбрать систему загрузки - без внимания на порядок очередности их установки на ПК ... Кроме того, BCD может работать как с традиционными BIOS-системами, так и с современными UEFI-системами, интегрируясь с NVRAM для хранения информации о загрузчиках ... Так, в чем же дело ? ... Каковы общность и различия хранения списков загрузки BCD и NVRAM ? ...
Хотя BCD и UEFI используют схожий подход к управлению загрузкой - они решают немного разные задачи ... BCD можно рассматривать как специализированный инструмент для управления загрузкой - тесно интегрированной с Windows и совместимых ОС, в то время как NVRAM в UEFI служит универсальным механизмом, платформа для хранения информации о загрузчиках всех установленных операционных систем, независимо от их типа (Windows, Linux, macOS и т.д.), обеспечивая общий механизм для выбора загрузчика любой ОС ...
Еще пару слов ... BCD хранится на HDD / SSD диске в директории \boot\bcd , включая дополнительные файлы поддержки и редактируется windows командой bcdedit или специализированными программами редактирования загрузочных записей, как например софт BootIce ... В то же время, список загрузочных записей NVRAM доступен для редактирования из UEFI BIOS - вне зависимости от состояния или наличия диска ...
Изменение порядка записи загрузчиков ... Почему происходит дополнительная перезагрузка ПК ? ... В том числе, возможно это связано и с переписывание NVRAM, чтобы UEFI применила новые настройки, указанные bootmgr ... Играет ли bootvhd.dll какую либо роль, особенно в случае именно загрузки системы из VHD файла - мне неизвестно (упоминается, что эта библиотека может использоваться с обоими загрузчиками, в том числе) ... Во время второй перезагрузки UEFI загружает выбранную ОС - напрямую, минуя графический интерфейс bootmgr ... Однако, по моему опыту и наблюдению - нет никаких явных необходимостей в двойной перезагрузке ПК, исключая эту явную особенность загрузчика Win 10 на UEFI / GPT и даже на BIOS / MBR ))) ...
Как избежать двойной перезагрузки ? ... Можно попытаться настроить UEFI, чтобы он напрямую загружал нужный загрузчик, минуя bootmgr ...
bcdedit /set {bootmgr} displaybootmenu no - попробовать отключить графический интерфейс bootmgr ...
bcdedit /set {current} bootmenupolicy legacy - попробовать изменить политику отображения меню загрузки ...
- оба эти способа требуют знать и вводить {GUID} ключ записи, что более подходит системным администраторам ПК и неинтересно обычным или продвинутым пользователям ))) ...
использовать точку входа GRUB GRLDR menuentry 'Windows 10' ; insmod part_msdos ; insmod ntfs ; set root='(hd0,msdos1) ; chainloader +1 ... Поскольку GRLDR более Linux ориентированный загрузчик ОС - этот способ более понятен линуксоводам ...
Использование других менеджеров загрузки, в настоящий момент - вообще неинтересно, тем более, что до установки Winfows 10 напрямую в VHD файл - загрузочное меню работало совершенно исправно ...
Смотрим на сухой остаток ))) ...
- если бы win10.vhd был просто скопирован на диск и подключен через BootIce к списку меню BCD - никакой проблемы с GRLDR загрузчиком - вообще бы не возникло ))) ...
- необходимость вынуждает устанавливать Windows на / в VHD файл, и за это мы получаем траблы с загрузкой остальных систем, поскольку Windows Installer во вторых - устанавливает бутлоадер win10 со всеми сопутствующими файлами, а во первых - изменяет флаги MBR / PBR раздела системного диска - на тип загрузчика = bootmgr ...
Нативный метод исправления и возврата к прежним настройкам ...
- windows.vhd без разницы откуда грузится, если путь загрузки прописан правильно ))) ...
- GRLDR не может грузить Win7+ напрямую, но может передать управление bootmgr win7+ ...
- bootmgr win7 не может грузить win8+ , но bootmgr win8 может грузить все windows 7 - 10 (и даже может быть 11, не проверено) ... поэтому категорически нужно применять bootmgr win8 ))) ... Причина ? : UEFI ; GPT ; Secure Boot ; драйверы ; универсальная обратная совместимость ...
* - ремарка : ... При загрузке win8 возникает ошибка 0xc0000428 (cannot verify digital signature for this file) ... Это происходит потому, что старый Bootmgr не поддерживает новый Winload.exe ... Однако, новый Bootmgr поддерживает старый Winload.exe ... Решение : заменить Bootmgr win7 на win8 ...
- чтобы вернуть загрузочное меню GRLDR нужно указать MBR / PBR, что тип / флаг загрузчика раздела = GRLDR ))) ... Открываем BootIce и просто / прямо указываем это, выбирая правильный носитель информации, где находится загрузчик и системный раздел ...
- антивирус может запретить изменение системных файлов - добавить BootIce в разрешения / исключения путей / файлов антивируса ... Если доступ к низкоуравневому редактированию дисков остается запрещённым - выполнить операцию из под системной загрузочной флешки, типа Hiren's Boot CD ...
- чтобы подключить загрузку новой системы win.vhd - снова открываем BootIce, выбираем текущий / системный BCD файл хранилище загрузочных записей, который обычно расположен на системном диске / разделе - далее кнопка Easy Mode / легкий режим и добавляем новую запись / подключаем New VHD Boot Entry ...
- различия, когда VHD система добавлена через BootIce или установлена Windows Installer ...
* - Type : VHD [ не отличается ] ...
* - Disk : Boot (VIM) / Locate (VHD) ... искать VHD в корне всех дисков ... [ Win Installer явно указывает HD0 / буква диска ] ...
* - Partition : не используется, так как VHD - сам является разделом / партицией ... [ Win Installer явно указывает 0 : на диске HD0 ] ...
* - File : win10.vhd [ название файла не отличается ] ...
* - SDI file : не используется в обоих случаях ...
* - OS GUID : назначается произвольно / автоматически ... Информация, зашифрованная в OS GUID, может включать ... Версия ОС ... Тип установки (base, home, pro, corp) ... Язык установки ... Дата и время установки ... Аппаратная информация ... Уникальный случайный код ...
* - Boot file : Windows\system32\winload.exe [ не отличается по имени, но может отличаться функционалом по версии системы ] ...
* - SafeBoot : Normal Mode ; PAE - ; NX - ... [ NX : OptIn ] ... не играет большой роли ... NX (No eXecute) - защита безопасности от некоторых типов хакерских атак ... Варианты : не установлено - отключено ... OptIn - защита только по запросу от самих программ / приложений (с поддержкой NX) ... OptOut - защита для всех программ, кроме явно запросивших её отключение ... AlwaysOn - включена защита для всех приложений без исключений (возможны траблы и глюки программ, не поддерживающих режим NX) ...
Практический опыт движения задним ходом ))) ...
Итак, поступило предложение вернуть привычное GRLDR строчное загрузочное меню, откатившись от графического ... Нет, конечно : графическое меню загрузки Win 10 - тоже позволяет предустановку выбора основной системы ... Но, когда их 5 и более, умноженное на двойную перезагрузку, то это уже становится неинтересно ...
# Boot Manager File Version 10.0.19041.4291 (WinBuild.160101.0800) предлагается заменить на ...
# Boot Manager File Version 6.3.9600.16415 (winblue_gdr.130928-1658) ...
Однако, кокос расти не начал, и графическое меню не ушло ... То есть, загрузчик восмерки - также продолжает работать в графическом режиме с \boot\ файлами от десятки ... Тогда я удалил bootuwf.dll ; bootvhd.dll ; прочие лишние бут файлы и логи, и это - никак не помогло ... Слегка вспотев и вспомнив, что когда-то строковое меню загрузки - работало (смотреть первое видео ), а что и когда сломалось, как то - не запомнилось ... Возможно, установочное меню Linux с GRUB2 нового образца - также имея встроенную поддержку UEFI / GPT - тоже как то может портить файлы [ явно не установлено ] ...
Текущая папка boot содержит 36 версий языков и дополнительно папки Fonts, qps-ploc, qps-plocm, Resources - всё это навалил сюда Win 10 Installer ... Время от времени, особенно при сбое и замене системного диска, проблемы работоспособности загрузчика - пытались выносить мозг, но всё как-то устаканивалось и решалось само собой, и я не придавал этому большого значения ... Теперь же - пришлось порыться в архивах / бэкапах, чтобы проанализировать, а что, собственно есть в наличии ... Как оказалось - негусто ... К тому же - совершенно непонятно, есть ли какая-нибудь зависимость от разрядности x32 / x64 ? ...
# v6.0.6000.16386 (vista_rtm.061101-2205) = 438kb ...
# v6.1.7000.0 (winmain_win7beta.081212-1400) ...
# v6.1.7601.17514 (win7sp1_rtm.101119-1850) = 383kb ... 23 языка + папка Fonts ...
# v6.3.9600.16415 (winblue_gdr.130928-1658) = 398kb ... Включая всего : en-us один язык ; fonts ; resources с bootres.dll ; bcd ; boot.sdi ; bootfix.bin ; bootmgr.efi ; bootsect.exe ; etfsboot.com ; memtest.exe ... В этой минимальной версии и то - много лишнего ...
Так, какая же из версий - работала в режиме строкового меню ? ... А, как оказывается - v6.3.9600.16415 от Win 8.1 ... Только / и не столько, всё зависит от bootmgr, сколько - от его окружения ... Например, что было сделано и что стало ... Видимо где то здесь и скрывается графическое меню win 10 с перезагрузкой ...
- удалён файл bootsect.dat ...
- удалены все файлы языков и прочее, кроме хранилища BCD и memtest.exe ...
+ из архива, кроме bootmgr - были скопированы только папки и файлы ...
+ en-us , содержащая bootmgr.exe.mui , bootsect.exe.mui , memtest.exe.mui ...
+ fonts , включая 16 шрифтов ...
+ resources , где лежит bootres.dll ...
+ ru-RU , с одним файлом bootmgr.exe.mui ...
+ memtest.exe 474kb запросила замену одноименного текущего файла 1мб, что и было разрешено ...
После перезагрузки ПК - меню вернулось к обычному строковому виду, с прямой / непосредственной загрузкой выбранной системы ... Так, в чем же прикол ? ... Bootmgr Win 10 получил дополнительную функциональность для работы с UEFI / GPT ... Но, как говорят специалисты, если у вас диск меньше 2 терабайт, то и GPT вам на фиг не сдался - будет достаточно MBR ... А раз нет GPT, то и UEFI не покажет всей своей функциональности, разве что для Secure Boot, и то, если на материнской плате установлен чип / модуль безопасности ...
Что касается непосредственно загрузки ОС из VHD, то ...
* если система ПК научена распознавать HDD / SSD любым способом из сочетания BIOS MBR UEFI GPT - это позволяет установить на жесткие диски, как непосредственно файловую операционную среду прямого доступа, так и виртуально эмулированную в контейнер файл VHD ...
* если в BCD точка входа и имя указаны правильно - загрузчик будет искать VHD в корне всех дисков, монтировать и передавать управление в него ...
* если VHD был создан и запускается на одном и том же компьютере - это не вызывает никаких проблем совместимости программ и железа ... никакие дополнительные файлы и boot функции с перезагрузкой - не требуются ...
* поэтому, можно считать доказанным, что в простых конфигурациях ПК / ноутбука, усеченная версия загрузчика - работает, и не только работает прекрасно, но ещё и экономит время на перезагрузках ))) ...
Декабрь, 2024 ...
Раздел computer : список всех страниц ...