闪光灯中基于蜂巢的注册表
-
01-10-2019 - |
题
首先,我要说我已经阅读了帖子 这里 而且我仍然遇到麻烦。
我正在尝试使用基于Hive的注册表来创建CE6图像,该注册表实际上通过重新启动来存储结果。
- 我已经在目录项目中勾选了Hive设置。
- 在CONCOR.REG中,我将Hive的位置设置为([HKEY_LOCAL_MACHINE init bootvars]“ SystemHive”)“ SystemHive”)为“ Hard Drive Registry”(注意:闪存显示为称为“硬盘驱动器”的设备))
- concom.reg,我在同一地点设置了“ flags” = dword:3,以使设备管理器与存储管理器一起加载
- 我已经确认这些设置包裹在“; Hive Boot”部分中
这就是它开始倒塌的地方。这一切都很好地编译了,但是在目标系统上,当它启动时,我会得到:
- 一个名为“硬盘”注册表的目录,称为“硬盘”
- 一个名为“硬盘2”的设备,永久闪光灯是
- 重新启动时,对注册表的任何更改都会丢失
我仍然想念什么?为什么注册表不存储在闪光灯上?
奇怪的是,如果我在注册表目录中创建一个随机文件/目录,它仍在重新启动后仍在那里,因此即使该目录不在另一个分区(我尝试放置)上,它似乎是永久的。如果是永久的,为什么不保存注册表设置(即以太网适配器IP地址?)
我没有使用任何特定的配置文件,因此我对将该蜂巢注册表成为永久商店的最后一步感到茫然。
解决方案
首先,我希望您不要更改常见。 您永远不要更改公共代码. 。如果要更改公共注册表密钥,则需要在您的project.reg或Platform.REG中设置它们,它们将覆盖公共设置。
SystemHive
应该设置为要存储Hive文件的目录的名称 没有设备的名称。在您的情况下:"SystemHive"="Registry\\system.hv"
引用 MSDN源:
请勿包括存储文件的文件系统的名称。该系统将根据其他注册表设置确定要使用的文件系统。
有关您的第二个评论的更新(来源):
如果此值在HKEY_LOCAL_MACHINE下存在,则表明系统Hive已成功恢复。如果在HKEY_CURRENT_USER下存在,则表明用户Hive已成功恢复。
您正在冲洗自己的更改吗?
检查您是否没有奇怪的实现 IOCTL_HAL_GET_HIVE_CLEAN_FLAG
(来源) - 您的系统可能会返回一个真实值,以清洁每个启动的系统注册表。
您可以添加一个可以定期汇总您注册表的线程(尽管我建议您将其排除在外,并让每个应用程序进行自身更改) - prj_enable_regflush_thread