Registry-Patch-Probleme nach der Installation von Service Pack 3 (Windows XP)
Bei der Installation von SP3 wird der Registry-Zweig
[HKEY_LOCAL_MACHINE\System\ControlSet002\Services\Tcpip\Parameters\]
nach
[HKEY_LOCAL_MACHINE\System\ControlSet003\Services\Tcpip\Parameters\]
verschoben. Dabei habe ich schon beobachtet dass ein Teil des ControlSet002-Zweigs erhalten bleibt, was eigentlich nicht stört, wenn man den Zweig nicht verändert. Wenn der LINBO-Registry-Patcher jedoch den ControlSet002-Zweig entdeckt, versucht er dort hineinzupatchen, was zu einer kaputten Registry führt und schließlich beim Start des Betriebssystems in einem sog. Bluescreen endet.
Den Fehler kann man nur beheben, wenn man den ControlSet002-Zweig aus der Registry entfernt. Das klappt aber nicht im laufenden Betrieb. Man muss also die Registry offline bearbeiten, indem man z.B. mit einer LiveXP-CD bootet1.
Eine andere Möglichkeit besteht darin, den Registry-Editor, den LINBO bereits mitbringt, einzusetzen.
Man bootet LINBO auf dem Client und loggt sich mit linbo-ssh ein2.
In der LINBO-Konsole mountet man die Betriebssystempartition
~ # mount /dev/sda1 /mnt
und öffnet dann mit reged den System-Hive der Registry
~ # reged -e /mnt/windows/system32/config/system
Der Registry-Editor meldet sich mit einem Eingabe-Prompt. Die Eingabe von ? gibt eine Übersicht der Editorbefehle aus:
reged version 0.1 100627, (c) Petter N Hagen Hive </mnt/windows/system32/config/system> name (from header): <SYSTEM> ROOT KEY at offset: 0x001020 * Subkey indexing type is: 686c <lh> Page at 0xb04000 is not 'hbin', assuming file contains garbage at end File size 11796480 [b40000] bytes, containing 2696 pages (+ 1 headerpage) Used for data: 151415/8564728 blocks/bytes, unused: 6923/2895624 blocks/bytes. Simple registry editor. ? for help. > ? Simple registry editor: hive [<n>] - list loaded hives or switch to hive numer n cd <key> - change current key ls | dir [<key>] - show subkeys & values, cat | type <value> - show key value dpi <value> - show decoded DigitalProductId value hex <value> - hexdump of value data ck [<keyname>] - Show keys class data, if it has any nk <keyname> - add key dk <keyname> - delete key (must be empty) ed <value> - Edit value nv <type#> <valuename> - Add value dv <valuename> - Delete value delallv - Delete all values in current key rdel <keyname> - Recursively delete key & subkeys ek <filename> <prefix> <keyname> - export key to <filename> (Windows .reg file format) debug - enter buffer hexeditor st [<hexaddr>] - debug function: show struct info q - quit >
Mit dem Befehl ls wird der Inhalt des aktuellen Verzeichnisses ausgegeben:
> ls
Node has 8 subkeys and 6 values
key name
<ControlSet001>
<ControlSet002>
<ControlSet003>
<LastKnownGoodRecovery>
<MountedDevices>
<Select>
<Setup>
<WPA>
size type value name [value if type DWORD]
20 REG_SZ <ComputerName>
4 REG_DWORD <DisablePasswordChange> 1 [0x1]
4 REG_DWORD <MaximumPasswordAge> 1000000 [0xf4240]
4 REG_DWORD <RefusePasswordChange> 1 [0x1]
4 REG_DWORD <requiresignorseal> 0 [0x0]
4 REG_DWORD <DisableAutoDaylightTimeSet> 1 [0x1]
>
Der Befehl rdel ermöglicht nun das rekursive Löschen des ControlSet002-Zweiges:
> rdel ControlSet002
Der Befehl q beendet den Registry-Editor. Mit y muss man schließlich das Anwenden der Änderungen bestätigen:
> q Hives that have changed: # Name 0 </mnt/windows/system32/config/system> Commit changes to registry? (y/n) [n] : y
Danach hängt man die Betriebssystempartition wieder aus
~ # umount /mnt
und verlässt die LINBO-Konsole mit exit.
Erzeugt man nun ein Image von der so behandelten Betriebssysteminstallation, sollte der anschließende synchronisierte Start mit Registry-Patch wieder funktionieren.
1) Anleitung zur Erstellung einer LiveXP-CD: http://winbuilder.net/help/projects/livexp.html.
2) Siehe LINBO-Fernsteuerung per SSH.
