[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
BCDimpex /BCD Import-Export/ - утилита для слияния двух BCD меню. Утилита может использоваться для:
Быстрой правки и подгонки пунктов меню визуально по ширине (если в системе есть шрифт Courier, ширина всех символов одинаковая).
Переноса (или копирования) пунктов меню из основного меню в меню инструментов (и обратно).
"Высушивания" BCD меню (т.е., удаления мусора от прежних правок).
"Высушивания" кустов реестра ядра WinPE или ОС (неактивной). Производится удаление мусора от прежних правок и дефрагментация.
Экспортирования выбранных записей одного меню в другое (слияние двух меню).
 
Назначение кнопок: 1. Кнопка для выбора меню донора (т.е., меню, пункты из которого по выбору будут импортированы в новое меню). Также можно открыть меню, перетащив его из окна проводника на окно пути (п.2.).
2. Окно отображения пути к меню донора.
3. Открыть проводник, открываемая папка определяется п.9.
4. Чекбокс для выбора запуска 'BCD Edit' в Easy-режиме. Если не отмечено, запускается в режиме Professional.
5. Кнопка запуска BCD Edit (из состава BootICE), зависит от п.9.
Примечание: Возможен множественный запуск BCD Edit/BCDtool. Редактирование меню производится для его копии в папке %Temp%. При этом результат работы последней открытой копии заменит исходный файл.
6. Кнопка запуска пересборки донорского меню (открытого в п.1.). Неактивна, если "донор" не выбран. Результатом работы будет файл BCD.rebuild в папке программы.
7. Кнопка для выбора меню реципиента (т.е., меню, пункты из которого будут использованы полностью в новом меню). Также можно открыть меню, перетащив его из окна проводника на окно пути (п.8.).
8. Окно отображения пути к меню реципиента.
9. Радиокнопки, определяющие поведение 3, 5, 10, 11. Т.е., если выбрана верхняя левая - все действия будут производится с меню донора (п.3 - открыть папку донора, п.5 - редактировать меню при помощи BCD Edit, п.10 - просмотр меню во вьювере, п.11 - редактировать меню в BCDtool). После отработки операций по перестройке или слиянию меню (6, 12) автоматически выбирается результат работы.
Примечание: Если соответствующее меню недоступно (не выбран донор/реципиент, или отсутствуют выходные файлы BCD.rebuild, BCD.impex), кнопки 5, 10, 11 блокируются. А 3 в такой ситуации открывает папку утилиты.
10. Кнопка просмотра выбранного BCD меню, определяется п.9. В окне просмотра доступна информация о содержании меню (без возможности редактирования). Если отмечен чекбокс "Autoupdate", то при выполнении действий (смена цели в п.9 или запуск обработки по 6/12) окно будет обновлено - открыт просмотр нового файла.
Примечание: Максимальное число отображаемых записей в окне просмотра зависит от разрешения экрана и меняется от 34 для разрешения 1024х768 до 51 - для 1920х1080.
11. Кнопка запуска BCDtool, определяется п.9.
12. Кнопка запуска слияния меню донора и реципиента. Результатом работы будет файл BCD.impex в папке программы.
13. Указание на пункты в главном меню донора (после загрузки меню автоматически отмечены все чекбоксы слева).
14. "Линейка" для подгонки меню по ширине (20--30--40--50--60).
15. Индикация количества отображаемых пунктов в меню донора и максимального числа отображаемых пунктов.
Примечание: Максимальное число зависит от разрешения экрана и меняется от 30 для разрешения 1024х768 до 47 - для 1920х1080.
16. Чекбоксы выбора для главного меню.
Примечание: Пункты из основного меню белого цвета, из меню инструментов - серого ("видимая" длина - 69 и 67 символов соответственно).
17. Дефолтный пункт запуска меню донора (зеленоватого оттенка).
18. Чекбоксы выбора меню инструментов и само меню инструментов донора (серого цвета).
Примечание: Чекбоксы выбора пунктов меню (16, 18) определяют, что и куда будет помещено при пересборке или слиянии. Неотмеченные пункты будут удалены.
19. Чекбокс для изменения идентичных идентификаторов Change identical IDs в меню донора. Дефолтное значение - включено.
Примечание: Если отмечено, тогда производится "умная" замена всех "Device options" -> {ramdiskoptions}. Также производится замена идентичных ID донора и реципиента - например, ID {24809d60-d80b-11e2-98a1-50e54938a1e5} будет заменен на {24809d60-XXXX-XXXX-XXXX-50e54938a1e5}, где XXXX-XXXX-XXXX - сгенерированные числа (полноценную генерацию 16-ти значных кодов лень было делать). Такой вариант замены имеет свои плюсы: первый блок дублирующихся идентификаторов останется тем же - поэтому впоследствии можно легко найти изначально идентичные по ID записи.
20. Чекбокс для добавления раздела {globalsettings} из меню донора в результат слияния. Дефолтное значение - включено.
21. Чекбокс для добавления настроек {ramdiskoptions} из меню донора в результат слияния. Дефолтное значение - выключено.
Примечание: чекбокс 19 влияет на результат операций пересборки и слияния, а состояние чекбоксов 20-21 влияют только на операцию слияния!
22. Указание на автора, при нажатии - переход на страничку утилиты.
Варианты применения утилиты:
1. Нужно подправить названия, удалить пару пунктов, перенести пункты из главного меню в меню инструментов и обратно, "высушить" меню. Открываем меню как донора, правим, жмем 'Rebuild only'. Результатом будет файл BCD.rebuild.
2. Нужно "высушить" и дефрагментировать незадействованные кусты реестра ОС/РЕ (WINDOWS\system32\config\*)."Бросаем" из проводника куст на окно отображения пути к донору или реципиенту (без разницы), либо открываем куст как импорт/экспорт. Если файл имеет размер больше 524288 байт (файлы меньшего размера воспринимаются как BCD-меню) и сигнатура указывает, что это куст реестра, файл будет обработан (во временной папке). Результат работы с дополнительным расширением .new будет помещен рядом с исходником. Если результат нас удовлетворил, переименовываем исходник в *.bak (на всякий случай... хотя у меня проблем после такой операции никогда не было), а у нового файла убираем .new.
3. Нужно "склеить" два меню в одно. Открываем меню донора (Import from...), отмечаем нужное, правим названия. Потом выбираем меню получателя "Export to...". Еще раз проверяем, и жмем "Start ImpEx". Операция добавления может длиться пару десятков секунд (зависит от количества добавляемых пунктов), так что ждем сообщения.
Примечание: Исходные меню не затрагиваются, работа ведется с их копиями (рабочая папка %Temp%\BCDimpex.XXXXXXXXXXXXX, расширение генерируется для каждого запуска - это позволяет работать одновременно с несколькими копиями запущенной утилиты). Результаты работы - файлы BCD.rebuild и BCD.impex.

Примечание: что такое {ramdiskoptions} и ''Device options''?

Этот раздел нужен для указания пути к boot.sdi. Последний файл необходим для организации РАМ-диска в памяти и загрузки WinPE. Различие между {ramdiskoptions} и ''Device options'' небольшое - только идентификатор ID. Если идентификатор - {ae5534e0-a924-466c-b836-758539a3ee3a}, тогда раздел относится к {ramdiskoptions} (т.е., ему присваивается псевдоним). Если из него сделать копию, для неё идентификатор станет другим и раздел будет отнесен к "Device options". Соответственно, {ramdiskoptions} может быть только один, а "Device options" - несколько. Обычная строчка для загрузки РАМ-сборки в меню BCD:
ramdisk=[boot]\2k10\WinPE\W7x86PE.WIM,{ramdiskoptions}
Но возможен и такой вариант:
ramdisk=[boot]\2k10\WinPE\W7x86PE.WIM,{7619dcc8-fafe-11d9-b411-000476eba25f}
Оба они рабочие при условии, что имеется соответствующий раздел {ramdiskoptions} и {7619dcc8-fafe-11d9-b411-000476eba25f} соответственно.
Итак, что делает "умная" замена:
а) все посылки к "Device options" заменяются на {ramdiskoptions}, т.е.,
ramdisk=[boot]\2k10\WinPE\W7x86PE.WIM,{7619dcc8-fafe-11d9-b411-000476eba25f} -> ramdisk=[boot]\2k10\WinPE\W7x86PE.WIM,{ramdiskoptions}
б) если отсутствует раздел {ramdiskoptions}, тогда все имеющиеся "Device options" сканируются на наличие текста .sdi, и, если найдено соответствие, то такой "Device options" преобразуется в {ramdiskoptions}
в) все разделы "Device options" удаляются.
При слиянии двух меню (обычно от двух разных сборок) {ramdiskoptions} может быть лишь один. Единственное требование - в этом разделе должен быть указан валидный путь к boot.sdi, и неважно, из какой сборки будет использоваться этот файл (в большинстве сборок он идентичен... за исключением сборок, в которых используется подправленный /уменьшенный/ вариант этого файла).
Небольшой видеоурок по применению BCDimpex от SunOK
Утилиту можно распространять без ограничения. Желательно указывать ссылку на эту страничку (мало ли - вдруг обновление утилиты или глюки будут).
Скачать: версии: 1.0 / 1.1
Attachments

Скачать BCDimpex v1.0 из usbtor



Last edited by conty9 on 2018-01-28 14:08; edited 49 times in total

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
Версия 0.2. Изменения:
1. Интегрированы BootICE (урезанный до BCD-редактора) и BCDtool. Запуск BootICE возможен как в professional-режиме (настройка по-умолчанию, чекбокс Pro), так и в упрощенном. Выбор пациента для редактирования - посредством радиокнопок (<< и >>). Верхние - "импортное" меню и результата Rebuild (файл BCD.upd в папке утилиты). Нижние - "экспортное" меню и результата слияния (BCD.exp в папке утилиты). Редактируется копия соответствующего меню в подпапке темпового каталога утилиты с произвольным именем (5 цифр). После окончания редактирования (выхода из BootICE или BCDtool) оригинал переименовывается (добавляется расширение .bak), и оригиналом становится новый файл. Если редактируется "импортное" меню, тогда также обновляется окно программы (перечитывается заново). Есть возможность множественного запуска BootICE / BCDtool, причем даже с одним меню (точнее, его копиями). В таком случае нужно учитывать, что результат будет использован из копии, закрытой ПОСЛЕДНЕЙ. Также можно открыть разные меню ("импортное", "экспортное", и результирующих).
2. Изменен алгоритм расчета позиции окна. Теперь последняя позиция (если производилась ЛЮБАЯ операция) хранится в реестре (HKLM\SOFTWARE\BCDimpex) и используется при последующем запуске. Если окно выходит за рамки (слева или сверху), тогда значение корректируется (20 пикселей слева или сверху соответственно).-Судя по количеству скачиваний версии 0.1 за несколько часов, утиль заинтересовала народ.

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
Интерфейс шапки утилиты уже несколько раз переделывался. Вот текущий вариант.

Радиокнопка 1 означает, что BCDtool и BootICE будут работать с "импортным" файлом, а ".\" откроет папку с ним; 2 - то же, но с экспортным файлом; 3 - с обновленным файлом (.upd); 4 - с результатом слияния (.exp). Если соответствующий файл не выбран (для 1-2) или отсутствует (для 3-4), тогда BCDtool и BootICE не запускаются, а ".\" откроет папку утилиты. Чекбокс "Изя" - для запуска BootICE в упрощенном режиме (по-умолчанию - профессиАнальный).
Такой вот круговорот радиокнопок в природе.
По поводу работы под ХР - посмотрю, в чем загвозка. Под С9РЕ работает (текущий вариант), хотя есть еще парочка нюансов. И с множественным запуском BCDtool и BootICE пока не все проблемы решил.


Last edited by conty9 on 2015-11-14 11:24; edited 1 time in total

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
Версия 0.3. Вроде, стабильная получилась. Что исправлено: работа с "неудобными" путями (если в пути есть запятая), под С9РЕ работает (ХР под руками нет), работает повторное слияние (раньше работал только первый запуск), подправлен интерфейс, множественный запуск BootICE/BCDtool (теперь, если работаем с одним и тем же меню, после работы остается результат из ПОСЛЕДНЕЙ запущенной утилиты), и прочее. Редактор из BootICE теперь называется в меню BCD edit (поскольку BootICE урезан именно до него).


Last edited by conty9 on 2015-11-13 09:41; edited 1 time in total

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
BCDimpex v0.4.
Изменения:
1. Добавлено окно просмотра. Доступно автообновление окна на результат последней операции (чекбокс "Autoupdate") или изменение настроек радиокнопок выбора "цели". Положение окна и состояние чекбокса сохраняются в реестре при выходе.
2. Немного изменен интерфейс главного окна. Добавил подсвечивание пункта автозапуска (светло-зеленым).
3. Размер максимального окна BCDimpex теперь рассчитывается, исходя из разрешение экрана по вертикали. Поэтому количество обрабатываемых пунктов будет разным при различных разрешениях. С правого края над списком (в основном окне и окне просмотра) индицируется кол-во пунктов меню | максимальное кол-во видимых пунктов. На скриншоте это 17|47 и 21|51, т.е. для разрешения 1920х1080 максимальное кол-во отображаемых пунктов 47 и 51 для главного окна и окна просмотра соответственно (для 1024х768 это 30 и 34). Если цифры совпадают, есть вероятность, что не все пункты меню отображаются (ну ОЧЕНЬ длинное меню).
4. Подправлена повторная обработка (если после первой обработки были изменения).
5. Переделана обработка для совместимости с ХР. Проблема под ХР заключалась в том, что reg.exe от ХР не воспринимает ключ /y при сохранении.

Скриншот (слева - главное окно, справа - окно просмотра с результатом слияния)



Last edited by conty9 on 2015-11-13 09:44; edited 2 times in total

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
Версия 0.4.1. Подправлен первый запуск (теперь должно открывать просмотр нормально, спасибо SV-2k10 за определение условий возникновения бага). Также теперь при отсутствии перемещения окон изменения в реестр не пишет (т.е., пишет только измененные данные).
Нижние чекбоксы ({globalsettings}/{ramdiskoptions}/{xxxxxxxxxxxxxx}) пока нерабочие.

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
Версия 0.5. Изменения: новая иконка, реализовал возможность добавления {globalsettings}, {ramdiskoptions} и Device options. Как это все работает: настройки донора (Import from...): {globalsettings}, {ramdiskoptions} и Device options (если отмечено птичкой соответствующий пункт) "перекрывают" настройки реципиента (Export to...). Если что-либо отсутствует у донора, соответствующий чекбокс неактивен. Если имеется - активен и по умолчанию отмечен.
Примечание: Уточню, что Device options - это тот же {ramdiskoptions} для "неправильных" BCD (в обеих описывается путь к boot.sdi, необходимому для создания RAM-диска при загрузке WinPE). При этом {ramdiskoptions} - это псевдоним (и может быть лишь один), а вот у "Device options" нет псевдонима, и он может использоваться только по идентификатору (причем допускается несколько вариантов "Device options"). BCDimpex обработает только первый (по идентификатору) вариант "Device options"! В общем и целом, правильнее привести все посылки к "Device options" на {ramdiskoptions}.
По идее, теперь при слиянии должен получиться полностью рабочий вариант объединенного меню без дополнительной правки.


Last edited by conty9 on 2015-11-21 09:32; edited 1 time in total

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
Версия 1.0. Изменения: добавил возможность "высушить" файлы кустов реестра - т.е., кусты (SOFTWARE, SYSTEM, DEFAULT, NTUSER, ...) будут дефрагментированы, а "мусор" от предыдущих правок будет из них удален. Можно применять как для кустов из ядра WinPE (WINDOWS\system32\config\*), так и для кустов неработающей ОС (под WinPE). Как это работает: "бросаем" из проводника куст на окно отображения пути "импортного" или "экспортного" файла, либо открываем куст как импорт/экспорт. Если файл имеет размер больше 524288 байт (файлы меньшего размера воспринимаются как BCD-меню) и сигнатура указывает, что это куст реестра, файл будет обработан (во временной папке). Результат работы с дополнительным расширением .new будет помещен рядом с исходником. Если результат нас удовлетворил, переименовываем исходник в *.bak (на всякий случай... хотя у меня проблем после такой операции никогда не было), а у нового файла убираем .new. Зачем это нужно? Дефрагментация и "усушка" положительно влияют на упаковку файла (уменьшение wim-ядра WinPE) и скорость работы (это уже больше относится к ОС).

[Quote]

    helg14
  • 1607
  • Longevity: 3 years 8 months
  • Posts: 14
  • REPUTATION:0

    [+] [-]
  • Location: Ptg
Очень нужная весчь, я такую еще на старом форуме С.Стрельца вопрошал.
Потестил 1.0.7. Запускал на Win10 x64 и Win7 x86. Долго не мог врубиться в назначение чекбоксов п.16 - ну нигде ведь не написано, что они для ПЕРЕМЕЩЕНИЯ пунктов из основного раздела меню в раздел инструментов, причем эти манипуляции проводятся исключительно с меню донора. А если обе птички поставить, что будет? А я вот поначалу подумал, что это отображается уже макет результата слияния обоих меню (и манипулировать тоже можно содержимым обоих меню) - а это было бы круто, согласитесь?
Еще обнаружил один маленький баг - утилита никак не реагирует на совпадающие ID, просто тихо игнорирует такие пункты из меню донора. Я сливал родственные сборки и целый час не мог понять, почему один пункт не хочет вливаться, пока не сделал для каждого меню и не сравнил
bcdedit /store BCD.81 /v /enum all
с опцией /V, иначе без нее одинаковые IDы в обоих меню маскировались под алиасами "default"
Соответственно, смею предложить добавить в утилиту опции "Перегенерить все IDы при импорте", "Перегенерить IDы для дублей" или что-то вроде.

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
18668Смею предложить добавить в утилиту опцию "Перегенерить IDы" или что-то вроде.
Предлагать можно очень многое. Но нужно иметь возможность проделать это с помощью bcdedit. Мелкомягкие считают, что вполне достаточно того, что идентификатор каждой записи, созданной bcdedit - уникален... и, соответственно, менять его не нужно.

[Quote]

    helg14
  • 1607
  • Longevity: 3 years 8 months
  • Posts: 14
  • REPUTATION:0

    [+] [-]
  • Location: Ptg
Мелкомягкие считают, что ... идентификатор каждой записи, созданной bcdedit - уникален... и, соответственно, менять его не нужно
Людям свойственно ошибаться, и сборкоделы - не исключение. К примеру, была некая сборка на Win8.1, переделал автор на Win10 - в BCD по быстрому bootice-ом название и имя образа перебил, а ID остался старый.
нужно иметь возможность проделать это с помощью bcdedit ...
если нехороший ID известен, то перед слиянием полечить меню донора как-то так
bcdedit /copy {нехороший-ID} /d "Наименование-дубля"
bcdedit /delete {нехороший-ID} /cleanup
Впрочем, и BootIce и BCDtool умеют копировать пункты меню (а при копировании генерится новый ID) - я так и проделал, пользуясь исключительно функционалом вашей утилиты.


Last edited by helg14 on 2016-02-11 12:57; edited 1 time in total

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
helg14, в принципе, нарисовалась идейка, как сменить. Но - пока загружен, где-то через недельку попробую реализовать.

[Quote]

    gera_serg
  • 1171
  • Longevity: 3 years 10 months
  • Posts: 1281
  • REPUTATION:-7

    [+] [-]
conty9,
Хотелось бы где-то видеть сообщение или метку "ВCD изменен"

[Quote]

    helg14
  • 1607
  • Longevity: 3 years 8 months
  • Posts: 14
  • REPUTATION:0

    [+] [-]
  • Location: Ptg
Слегка не в тему, но случайно выплыл неприятный косяк BOOTICE (и вашего "BCD Edit" соответственно тоже).
Если произвести такую последовательность действий:
- на пункте BCD меню кликнуть "Duplicate this entry", создается полная копия этого пункта (естессно ID другой).
- на этом же пункте BCD меню кликнуть "Delete this entry", пункт удалится.
И тут ! внимание !- вдруг мы видим, что заодно удалился пункт "Device options"! Круто !!!
Проверка (ну вдруг это чисто "морда" глючит)
bcdedit /store BCD.81 /v /enum all
подтверждает - увы, таки удалился.
Причем эти действия по отдельности не приводят к такому печальному результату.
PS. вряд ли iPauly кинется исправлять свой BOOTICE ...

[Quote]

    conty9
  • 100
  • Longevity: 4 years 5 months
  • Posts: 1028
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
helg14, я предпочитаю использовать BCDtool, самый "правильный" инструмент. Хотя у тего есть один существенный недостаток - сортировать меню очень неудобно (без знаний почти нереально).

Page 1 of 3


Display posts:    

Current time is: 26-May 18:24

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum