Domanda

Per iniziare con Dirò ho letto il post qui e sto ancora problemi.

Sto cercando di creare un'immagine CE6 con un registro hive-based che in realtà memorizza i risultati attraverso un riavvio.

  • Ho spuntato le impostazioni alveare negli articoli del catalogo.
  • In Common.reg, ho impostato la posizione dell'alveare ([HKEY_LOCAL_MACHINE \ init \ bootvars] "SystemHive") per "Disco rigido \ Registro di sistema" (Nota: gli spettacoli in flash come un dispositivo chiamato "Disco rigido ")
  • In Common.reg, ho impostato "Flags" = dword: 3 nello stesso posto per ottenere il manager dispositivo caricata insieme con il direttore di stoccaggio
  • Ho verificato che queste impostazioni sono avvolti in "; HIVE BOOT SEZIONE"

Questo è dove inizia a cadere. Il tutto compila bene, ma sul sistema di destinazione, quando gli stivali, ottengo:

  • Una directory, denominata "Hard Disk", dove un Registro di sistema viene messo
  • Un dispositivo, nome chiamato "Hard Disk2" in cui il flash permanente è
  • Tutte le modifiche apportate al Registro di sistema si perde su un riavvio

Che cosa mi manca ancora? Perché non è il Registro di sistema viene memorizzato sul flash?

Strangly, se creo un file / cartella casuale nella directory di Registro di sistema, è ancora lì dopo un riavvio, quindi, anche se questa directory non si trova l'altra partizione (dove ho cercato di metterlo), lo fa apparire essere permanente. Se è permanente, perchè non Registro Salvare le impostazioni (ad esempio indirizzi Ethernet adattatore IP?)

Non sto usando alcun profilo specifico, quindi sono ad una perdita quanto a ciò che l'ultimo passo è quello di rendere questo registro hive un negozio permanente.

È stato utile?

Soluzione

Per prima cosa, spero che non sta modificando direttamente Common.reg. Non si dovrebbe mai modificare il codice pubblico . Se si desidera modificare le chiavi di registro pubbliche che ne avete bisogno di impostare nel vostro Project.reg o Platform.reg e saranno sovrascrivere le impostazioni pubblici.

SystemHive dovrebbe essere impostato il nome della directory in cui si desidera memorizzare i file hive senza il nome del dispositivo . Nel tuo caso: "SystemHive"="Registry\\system.hv"
Citazione dal MSDN fonte :

  

Non includere il nome del file system su cui è memorizzato il file. Il sistema determina quale file system da utilizzare in base su altre impostazioni di registro.


Aggiornamento per quanto riguarda il secondo commento ( fonte ):

  

Se questo valore è presente in HKEY_LOCAL_MACHINE, indica che l'hive di sistema è stato ripristinato con successo. Se è presente in HKEY_CURRENT_USER, indica che l'alveare utente è stato ripristinato correttamente.

Stai vampate di calore le modifiche apportate?
Controllare che non si dispone di un'implementazione di strano IOCTL_HAL_GET_HIVE_CLEAN_FLAG ( fonte ) -. il sistema potrebbe essere di restituire un valore vero per pulire il registro di sistema ogni avvio


È possibile aggiungere un filo che periodicamente svuotare il registro (anche se io consiglierei di escluderlo e lasciare che ogni filo applicazione i propri cambiamenti) - PRJ_ENABLE_REGFLUSH_THREAD

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top