Вопрос

Начать с я скажу, что я прочитал сообщение здесь И у меня все еще есть проблемы.

Я пытаюсь создать изображение CE6 с реестром на основе улья, который фактически хранит результаты через перезагрузку.

  • Я отметил настройки улей в элементах каталога.
  • В Common.reg я установил местоположение улья ([HKEY_LOCAL_MACHINE init bootvars] «SystemHive») на «Hard Drive Registry» (Примечание: вспышка отображается как устройство под названием «жесткий диск»)
  • В Common.reg, я установил «флаги» = DWORD: 3 в том же месте, чтобы получить диспетчер устройств, загруженного вместе с менеджером хранения
  • Я проверил, что эти настройки обернуты в «; раздел загрузки улья»

Это то, где он начинает падать. Все это компилируется нормально, но на целевой системе, когда она сапоги, я получаю:

  • Каталог, называемый «жесткий диск», в котором поставлен реестр
  • Устройство, имя называется «жесткий диск2», где постоянная вспышка
  • Любые изменения, сделанные в реестре, теряются на перезагрузке

Что я до сих пор скучаю? Почему реестр не хранится на вспышке?

Strangly, если я создаю случайную файл / каталог в каталоге реестра, он все еще там после перезагрузки, поэтому, хотя этот каталог не находится в другом разделу (где я пытался его поставить), оно кажется постоянным Отказ Если он является постоянным, почему не сохраняют настройки реестра (то есть IP-адреса адаптера Ethernet?)

Я не использую какие-либо конкретные профили, поэтому я в потере от того, что последний шаг - сделать этот уют реестр постоянного магазина.

Это было полезно?

Решение

Во-первых, я надеюсь, что вы не меняете Common.reg напрямую. Вы никогда не должны изменять публичный код. Отказ Если вы хотите изменить клавиши публичных реестра, вам нужно установить их в вашем Project.reg или Platform .reg, и они переопределяют публичные настройки.

SystemHive должны быть установлены на имя каталога, к которому вы хотите хранить файлы Hive Без названия устройстваОтказ В твоем случае:"SystemHive"="Registry\\system.hv"
Цитата из MSDN Source.:

Не включайте имя файловой системы, на которую хранится файл. Система определит, какую файловую систему использовать на основе других настроек реестра.


Обновление относительно вашего второго комментария (источник):

Если это значение присутствует под HKEY_LOCAL_MACHINE, он указывает на то, что система Cive была успешно восстановлена. Если он присутствует под HKEY_CURRENT_USER, он указывает на то, что пользовательский улей был успешно восстановлен.

Вы промываете изменения, которые вы делаете?
Убедитесь, что у вас нет странной реализации IOCTL_HAL_GET_HIVE_CLEAN_FLAG (источник) - Ваша система может вернуть истинное значение для очистки системного реестра каждая загрузка.


Вы можете добавить нить, которая будет периодически промотана ваш реестр (хотя я рекомендую исключить его и позволить каждому приложению вспомогать свои собственные изменения) - Prj_enable_regflush_thread.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top