Mortscript - Backup/Restore nach Hardreset

  • Aufräumarbeiten... alter Text im nächsten Post.


    SaveReg, Version 3.2
    savereg3.zip als Anhang, Registry speichern/wiederherstellen:
    Benutzung: savereg option Dateiname
    option:
    s (save / sichern),
    r (restore / rücksichern), d (dialog, nur in Verbindung mit r, optional),
    c (correct / korrigieren, optional),
    x (reverse order / Reihenfolge umdrehen, optional)
    h (hive based operation preferred / Hive basierende operation bevorzugt)
    l (log / Logfile mitschreiben "\SaveReg.log")
    f (flash / Logfile auf Flash Disk -sofern sie gefunden wird- schreiben, nur in Verbindung mit l)


    Im Prinzip versucht das Programm anhand der Sicherung zu erkennen, welche Art von "Restore" angebracht ist. Eine Änderung der Aufrufparameter ist nicht nötig.
    Hinweis zum Hive-basierten Registry: Die Werte unter HKCU sind an den jeweiligen User gebunden (falls es Geräte geben sollte, die verschiedene Profile ermöglichen).
    Der Parameter h ist bei der Rücksicherung überflüssig, da anhand der Sicherungsdatei entschieden wird, welche Routine für die Rücksicherung einzusetzen ist. Beim Sichern der Registry ist es so, daß sinnigerweise undokumentiert (zumindest habe ich dazu nichts gelesen) die RegCopyFile Methode auch bei hive-basierten Geräten funktioniert und bereits System-Hive UND User-Hive in eine Datei sichert. Sollte dies mißlingen, oder der Parameter h gesetzt sein, wird direkt mit RegSaveKey gearbeitet.


    Es wird jeweils die gesamte Registry (System und User Einstellungen) gesichert/wiederhergestellt.


    Beispiele:

    savereg s \Storage Card\Backup\reg.rbk

    Standard, um eine Sicherung zu erstellen (save)
    savereg rd \Storage Card\Backup\reg.rbk
    Standard, um eine Sicherung wiederherzustellen (restore mit anschließender Aufforderung zum Soft-Reset)


    savereg r \Storage Card\Backup\reg.rbk
    (der zwingend nötige Soft-Reset muß/kann von einem Programm/Skript/User vorgenommen werden)
    savereg c \Storage Card\Backup\reg.rbk
    ermöglicht eine anschließende Analyse mit fdf2reg.pl, ohne der Registry zu schaden (nur für RAM-basierendes Registry)
    savereg rxd \Storage Card\Backup\reg.rbk
    das weiter unten beschriebene Problem der MS-eigenen Routinen wird ausgetrickst indem die Abfolge der Registry-Einträge umgekehrt wird (nur für RAM-basierendes Registry)



    Nach der Wiederherstellung ist ein SOFTRESET nötig, um die Werte zu übernehmen, dieser wird im Dialog (Parameter "d") vorgeschlagen.


    Kurze Erklärung zu den Parametern c und x (haben bei hive-basierten Geräten keine Auswirkung):


    Wird mit c und/oder x kein r oder s Parameter kombiniert, wird versucht die angegebene Datei (Dateiname) zu bearbeiten, diese wird dann überschrieben.


    Korrigieren c:
    - die High-Bytes zu recordsize, recordtype, hive, valuetype und keylength werden auf 0 gesetzt (es sind nur Werte < 255 zulässig)
    - Bei Keynamen werden keylength und recordsize berichtigt (anhand des Stringende '\0')
    (danach sollte die Datei problemlos von fdf2reg.pl verarbeitet werden)


    Reihenfolge umdrehen:
    Die verwendete Methode von MS führt zu einem umgedrehten physikalischen Reihenfolge der Registry, in Ausnahmefällen kann das zu Problemen führen.
    Der Parameter x dreht jetzt die Reihenfolge um. Allerdings ist das Ergebnis noch nicht dasselbe wie nach zweimaligem SAVE/RESTORE - falls es noch immer zu Problemen kommt, bitte melden.


    Wird der Parameter x sowohl beim Sichern als auch beim Rücksichern verwendet, sollte er seine Funktion neutralisieren, ist also wenig sinnvoll und sollte nur entweder/oder verwendet werden. Auch der Parameter c ist nur einmal (also entweder beim Sichern ODER Rücksichern) sinnvoll.
    Den Parameter x mag ich nicht "automatisieren", da er ja nur für "nachlässig gestrickte" RAM-Registries nötig ist, und doch die Registry-Datei gnadenlos durcheinandergewirbelt wird. Darum wird das nur gemacht, wenn ausdrücklich gewünscht - wobei es nicht schadet.


    Hier noch etwas Hintergrundwissen zu der benutzten Methode RegCopyFile und RegRestoreFile und zum Problem Registry Key Order Reversed.
    Die hive-basierende Methode benutzt RegSaveKey und RegRestoreKey.


    Historie:
    V3.2:
    - Fehlerbereinigte Version, funktioniert auch wenn kein Hardreset vorausging
    - (f) Logfile wird auf Flash Disk geschrieben
    V3:
    - (h) hive-basierende Methode integriert (automatisch)
    - (l) mitschreiben eines Logfile (optional)
    V2:
    - (c) korrigieren (optional)
    - (x) umkehren der Reihenfolge (optional)
    V1:
    - (s) speichern
    - (r) wiederherstellen
    - (d) dialog soft-reset (optional)

  • (hier der ursprüngliche Threadbeginn)


    Nachdem doch ab und an ein Hardreset nötig wurde, hier ein mortscript mit dem sich ein gespeicherter Zustand schnell wieder herstellen läßt.


    Nicht für Wiederherstellung nach Skin-Manipulationen gedacht!
    (Wenn die entsprechenden Dateien im ZIP-File mitgesichert sind, sollte das aber auch möglich sein. Wobei ich nicht weiß, ob mortscript beim auspacken automatisch überschreibt. Meine Verwendung ist das Rückspeichern sämtlicher Shortcuts und der im Hauptspeicher installierten Programme und zusätzlicher Dateien im Windows Verzeichnis.)


    Voraussetzung sind Mortscript (ich verwende Version 4 RC9 ) und savereg.exe.


    Für die direkte Ausführung der Scripte sollte die autorun.exe von Mortscript zweimal kopiert und in backup.exe (für backup.mscr) sowie restore.exe (für restore.mscr) umbenannt werden.


    Vorgehensweise:


    BACKUP
    1) Zip-File mit allen benötigten Dateien die NICHT in "My Flash Disk" oder "Storage Card" gespeichert sind anlegen und auf der Speicherkarte ablegen ( im Beispiel "\Storage Card\Backup\backup.zip")
    2) Mit dem PHM Registry Editor ein Backup der Registry anlegen, dann auf die Storage Card verschieben
    ...oder Script weiter unten!


    RESTORE
    1) Hardwarereset - jetzt irgendwie an den explorer
    (Taskleiste, angepaßte menue.xml)
    2) restore.exe aufrufen


    savereg.zip als Anhang, Registry speichern/wiederherstellen:
    Benutzung: savereg option Dateiname
    option: s (save/sichern), r (restore, rücksichern), d (dialog, nur in Verbindung mit r, optional)



    Beispiele:
    savereg s \Storage Card\Backup\reg.rbk
    savereg r \Storage Card\Backup\reg.rbk
    savereg rd \Storage Card\Backup\reg.rbk




    Hier ist noch mein Backup-Skript (frei nach Vorlage...)


    und hier ist meine Sav_list.txt als Beispiel:
    Für das Sichern eines Unterverzeichnisses müssen die übergeordneten Verzeichnisse ebenfalls (und vorher) gesichert werden - oder direkt den Code anpassen.

  • :applaus Irgendwie ist mir dieser Thread bisher durch die Lappen gegangen! Gut das Du ihn wieder nach oben gepusht hast! ;D


    Nachdem ich ein ähnliches Vorgehen mittels cab-file mal angedacht hatte, aber diese Vorgehensweise nicht generisch umgesetzt werden kann (zumindest nicht mit minimalstem Aufwand und ständiger Pflege), scheint mir das ein sinnvolles Vorgehen zu sein.


    Nur vor der Skriptsprache hatte ich bisher ziemlichen Respekt, obwohl sie große Ähnlichkeit mit VB hat. Die in kurzer Zeit und nur zum Zwecke eines Backups zu erlernen (eine andere Vewendungsmöglichkeit hätte ich zur Zeit nicht), schien mir auch nicht grade sinnvoll.
    Aber mit Deiner Vorlage sollte eine Adaption an meine vorh. Verz.-struktur recht einfach möglich zu sein.


    Ich habe aber auf meinem 465 bisher nur die RC3-Version zum Laufen gebracht, trotz mehrerer Versuche. Das ist aber auch schon wieder etwa 6 Wochen her und ich denke, daran sollte es nicht scheitern.

  • hallo,


    also ich hab auf pc immer ein genaues abbild meines programme ordners auf dem navi. ebenso vom skin, allerdings müssen diese nach einem hard rest nicht wiederhergestellt werden, da sie ja im flash liegen.


    in windows hab ich nur die deutschen bluetooth dll's, eine verknüpfung zu hotkey, und die reg infos und settings meiner programme.



    wenn ich ein komplettes registry backup des navi als neue .cab auf das navi legen will, dann mach ich das so:


    1. pna an pc anschließen.
    2. mob reg edit öffnen, reg backup ziehen.
    3. cab manager öffnen, altes projekt laden.
    4. neue reg backup importieren.
    5. speichern.
    6. die fertige .cab auf pna kopieren.


    diese .cab brauch ich dann nach einem hardreset nurnoch doppelklicken, und die komplette registry ist inklusieve aller dateien, die ich sonst noch so haben will wiederhergestellt.



    Thy

    Wer mit den ganzen zusätzlichen programmen bei dem navi an dessen grenzen stösst, der kauft sich halt einfach [URL=http://www.winfuture.de/news,29417.html]das hier.[/URL] :P


    Hier gehts zu meinem Skin für den PNA470, und hier zu meinem Start Menü Skin

    Einmal editiert, zuletzt von Thylormex ()

  • Hi Thy!


    Genau so hatte ich mir das auch vorgestellt. Aber Du bist halt immer gezwungen, bei Veränderungen (z.B. den Favs, etc.) das cab-file wieder neu aufzubauen, und das in mehreren Schritten. Der Ablauf selber ist dann natürlich easy!


    Mittels MS wäre aber auch das Erstellen eines BU-Files recht einfach zu handeln und darauf wäre es mir angekommen.

  • Danke, auch ne möglichkeit. :)


    Ich mach einen Klick auf den Backup Link, ganz ohne PC, und das PNA speichert mir die gewünschten Dateien in ein zip-file, schiebt das dann auf die Speicherkarte. Wenn ich will, macht der PHM Registry Editor noch ein aktuelles Backup der Registry, das Skript schiebt das dann auch auf die Speicherkarte.


    Ein Klick auf den Restore-Link (in der menu.xml), und der Hard-Reset ist vergessen.


    Aber - der cab-Manager würde mich schon interessieren, ist das eine Freeware, gibt's da einen Link dazu?

  • ja, ich geb zu deine methode ist komplett unabhängig vom pc :-)



    dabei fällt mir wieder ein, ich hab da so mein problem mit dem phm reg editor, bei mir ist der eintrag zum importieren einer registry .reg datei deaktiviert. (siehe bild) find ich schade.
    ist das bei dir auch so??



    mortskript interessiert mich jetz auch, weil, das scheimt mir eine sehr mächtige möglichkeit zu sein, einfach alles zu automatisieren.


    der cabmanager ist leider nicht freeware, aber man hat 20 starts gut.


    http://www.ocpsoftware.com/products.php?nm=cecabmgr



    Thy


    edit: oops, bild vergessen :gap

  • Auch hier, kein Import. Aber Backup/Restore Registry funktioniert prima.


    Oha, DER cab Manager - hat bei mir keine 20 Versuche mehr gut.


    Nochwas: sollte es beim Backup Skript zu Fehlermeldungen kommen, muß etwas mehr Speicher über das Control Panel / System / Memory für Storage Memory zugeteilt werden (ich hab bei mir den Wert von 10000 auf ca 15000 erhöht).


    Das kann auch mittels SetMem automatisiert werden!


    Das Restore Skript macht nur Probleme, wenn man schreibgeschützte Dateien oder Systemdateien im zip-file hat (das kann bei einem vond Hand erstellten Zip-File schon passieren).

  • Hier ist noch ein kleines Programm, das das Speichern / Wiederherstellen der Registry übernehmen kann:


    EDIT: savereg.zip: Fehler bei Leerzeichen im Pfad behoben
    EDIT2: savereg.zip: Problem beim Speichern auf Storage Card behoben
    EDIT3: savereg.zip: Handling temporärer Datei überarbeitet, Download im ersten Post von diesem Thread.



    Benutzung: savereg option Dateiname
    option: s (save/sichern), r (restore, rücksichern), d (dialog, nur in Verbindung mit r, optional)
    Beispiele:
    savereg s \Storage Card\Backup\reg.rbk
    savereg r \Storage Card\Backup\reg.rbk
    savereg rd \Storage Card\Backup\reg.rbk


    Bei falschen oder fehlenden Eingaben wird ohne Fehlermeldung abgebrochen.


    Damit ist der PHM Registry Editor nicht mehr nötig, das Mortscript kann entsprechend vereinfacht werden.


    Gruß,
    m.g


    Edit: noch ein Bildchen vom "Dialog"...