11 августа 2016 в последний день существования 14393.67, обновленной начиная с 12.08.16 01:00:00 на 14901, я занимался пересозданием BCD на двух своих ноутбуках в связи с тем, что файлы BCD стали уж очень матерыми, 350 000+ байт и я с самых первых инсайдерских билдов знал, что каждое обновление новым билдом приводит к появлению как минимум двух мусорных элементов, являющимися лишними. Пересоздание я выполнял загрузившись с внешника, на котором установлена стабильная 14393.51. Сама логика ручного пересоздания BCD описана в самом конце под спойлером и адресована лишь тем, кому это действительно интересно. После того, как завершилось создание нового BCD, была осуществлена загрузка с внутреннего диска. Было отображено меню из четырех элементов, как и планировалось. Для загрузки ОС из меню была выбрана инсайдерская 14393.67. Как только загрузка завершилась, немедленно на экран выскочило сообщение, которое я к сожалению не сфоткал. Но смысл сообщения был таков, что мол парень, у тебя проблемы с получением инсайдерских билдов. Так что ты мол загляни в Settings->Update and security->Windows Insider program. И когда я туда заглянул, то увидел многим из инсайдеров знакомую картинку с кнопкой Fix. Мне тоже эта картинка была знакома и кликнув Fix и еще раз подтвердив свои намерения, согласился на немедленную перезагрузку. И когда перегрузился, то описанная выше пробдема исчезла. Но мне гораздо интересней стало что же изменилось в BCD. К счстью ДО загрузки с внутреннего диска я успел сохранить полное отображение созданного BCD командой "bcdedit /store z:\Boot\BCD /v /enum all". Поэтому перехожу к самому интересному: что же именно было изменено в BCD после клика на кнопку Fix: Свойство "flightsigning YES" для главного элемента BCD Свойство "flightsigning YES" для элемента загрузки инсайдерской системы. И, наконец, свойство filedevice для элемента восстановления системы после hibernate. Как показывают представленные картинки, изменений совсем немного и ЗНАЙ Я о том, что эти свойства необходимы для инсайдерских систем, то вполне бы мог указать эти свойства при пересоздании BCD. Но отсюда следует еще один очень важный вывод: ОЧЕНЬ ОПАСНО работать с BCD сторонними программами типа EasyBCD, поскольку они-то наверняка ничего не знают и знать не хотят о специфических свойствах элементов BCD для ИНСАЙДЕРСКИХ систем.
При загрузке с внешника, буква Z соответствует тому System Reserved, хранящему в директории z:\Boot файл BCD. Directory of z:\boot
11-Aug-16 13:04 360,448 BCD 11-Aug-16 00:07 458,752 BCD.LOG 06-Nov-15 22:52 0 BCD.LOG1 06-Nov-15 22:52 0 BCD.LOG2 03-Aug-16 09:37 65,536 BOOTSTAT.DAT 5 File(s) 884,736 bytes 0 Dir(s) 335,339,520 bytes free Совершенно безжалостно удаляем директорию z:\Boot со всем ее содержимым. Административных прав для этого недостаточно и поэтому я использую свой бэтч-файл sysrmdir.cmd, который уже однажды выкладывал на этом форуме.
C:\totalcmd>sysrmdir z:\Boot
Далее с помощью утилиты bcdboot заново создаем z:\Boot, z:\EFI. При этом в созданном BCD будет прописан лишь один элемент меню загрузки, обеспечивающий загрузку с тома D:, у меня это инсайдерская система.
C:\totalcmd>bcdboot d:\Windows /s z: /f all Boot files successfully created.
Аналогичным образом создаются еще два элемента для загрузки Windows8.1 с тома F: и Windows 7 SP1 с тома G:. И в завершении посмотрим, каков размер нового BCD:
C:\totalcmd>dir z:\boot\b*.* Volume in drive Z is System Reserved Volume Serial Number is AC12-F0AE
ОЧЕНЬ ОПАСНО работать с BCD сторонними программами типа EasyBCD
sysprg, Спасибо за подробное описание .Но с этой прогой работаю на протяжении всех инсайдерских сборок .(ну и естественно до этого ) На экране загрузчика у меня отображается шесть вариантов загрузки . Постоянно приходится корректировать записи с помощью этой проги . Ни разу она меня не подвела .(просто ,быстро ,удобно ) И наверное это подтвердят многие .
Ни разу она меня не подвела .(просто ,быстро ,удобно )
Значит Вам не приходилось с ее помощью СОЗДАВАТЬ элемент загрузки инсайдерской системы. А изменить порядок элементов, добавить новый для НЕ ИНСАЙДЕРСКОЙ, удалить, так это функции, не предполагающие изменения СВОЙСТВ корневого элемента BCD, который всякий раз при установке инсайдерского билда, обновляется системой и потому записывается корректно. P.S: для меня главным является не ПРОСТОТА получения результата, а ПОНИМАНИЕ того, КАК он достигается, с детства любил все игрушки разбирать, чтобы узнать что у ней ВНУТРИ
sysprg , интересное сообщение. Я уже как-то привык создавать загрузчик с помощью BCDBOOT и BCDEDIT. Загрузчик побывал на всех разделах и на скрытом тоже и сейчас стоит на разделе С. Неудобств не испытываю, при желании его всегда можно поставить, как предписывается, на скрытый раздел. Сейчас посмотрел содержание BCD на C сразу после обновления, не удаляя папки $WINDOWS.~BT и Windows.old. Записей море - Windows Boot Manager (с параметром flightsigning - Yes), многочисленные Windows Boot Loader в том числе для recovery (сразу даже не разберешь, какие действующие, какие - мусор, оставшийся после старых обновлений), Resume from Hibernate (хотя гибернация отключена), Windows Memory Tester, EMS Settings, Debugger Settings, Global Settings, Boot Loader Settings, Hypervisor Settings, Resume Loader Settings, Device options. В общем зоопарк. Как понял, простая перезапись загрузчика командой bcdboot не удаляет старые ненужные записи, надо чистить радикально, как сделали Вы.
Цитатаsysprg ()
файлы BCD стали уж очень матерыми, 350 000+ байт
Но размер папки Boot на всех разделах (и на C также) у меня всего около 17 Mb, а основной объем на скрытом разделе занимает Winre.wim (около 300 Mb) в папке Recovery. Что же касается программы EasyBCD, я с ней не работаю и не знаю, может ли она создавать главный, корневой элемент BCD. Всегда использую BCDBOOT. Добавлено: Поправка по поводу размеров BCD, также раздулся на разделе С, как и у Вас. На остальных разделах размер BCD 28-35 KB
Цитатаsander23 ()
На экране загрузчика у меня отображается шесть вариантов загрузки
Раньше также было много элементов, теперь больше трех не держу, неудобно, начинаю путаться. При желании можно сделать разветвленное меню.
Уже давно узнал, что этот элемент создается заново при перезагрузке, если его удалить. Самый забавный элемент, который всегда создается при обновлении новым билдом, это элемент для ОТКАТА к предыдущей системе. По числу строк "ramdisksdipath \$WINDOWS.~BT\Sources\SafeOS\boot.sdi" в полном логе "bcdedit /v /enum all" можно судить о количестве установленных билдов. Так у меня на втором из ноутбуков количество этих строк составило 38, что в точности соответствовало количеству обновлений билдами на этом ноутбуке. Но рекордсменом являются элементы "Device options", которых при каждой установке нового билда создается два. Вот к примеру эта сладкая парочка, созданная при установке 14901: Device options -------------- identifier {3645a7db-60ac-11e6-b785-889437946554} description Windows Recovery ramdisksdidevice partition=C: ramdisksdipath \Recovery\WindowsRE\boot.sdi
Но теперь, имея чистый BCD, я уже знаю GUID'ы всех элементов BCD, которые надо будет удалить после установки нового билда.
ЦитатаV-Efremov ()
даже не разберешь, какие действующие, какие - мусор, оставшийся после старых обновлений
Есть простой способ разобраться в том, какой элемент активен, а какой нет: обратные ссылки в файлах ReAgent.xml, указывающие GUID соответствующего, активного элемента BCD, смотреть надо \Recovery\WindowsRE\ReAgent.xml и \$Windows.~BT\Sources\SafeOS\ReAgent.xml, \$Windows.~BT\Sources\ReAgent.xml. Но когда система пережила свыше 30-40 обновлений билдами, то выявление ручками всех неактивных элементов в BCD требует много времени и поэтому я предпочел радикальное решение, полное пересоздание BCD.
ЦитатаV-Efremov ()
не удаляя папки $WINDOWS.~BT и Windows.old.
К сожалению Cleandisk при удалении Windows.Old и $Windows.~BT не заботится о том, чтобы почистить BCD от ставших ненужными элементов
В связи с введением в действие Постановления Правительства Российской Федерации от 14.11.2023 № 1905 т.н. "о запрете популяризации VPN" с 1 марта 2024 года - любое обсуждение способов обхода блокировок и VPN на портале запрещено!