wiki:Registry-Patch-Probleme-SP3

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.