Mainboardtauschen ohne Neuinstallation unter Windows 7
Wie schon geschildert, hatte mein altes Board im Windows Rechner ja das Problem, dass mit der Q8300 nur 2 GB Ram möglich waren – und das doch etwas wenig ist. Also musste ein neues Board her. Nach etwas rumklicken hatte ich mich dann für ein Asrock P45X3 Deluxe und 4 GB OCZ Speicher entschieden. Nach dem Einbau kam die erste Ernüchterung: Das Board zeigte auf dem Internen Debug-LED nur “4d” an, und bootete dann neu. Nach etwas rumsuchen war der Schuldige schnell identifiziert: Das Board und der Speicher mochten sich nicht. Also schnell in die Innenstadt geradelt, und zwei neue Speicherriegel gekauft, diesmal langsamer (DDR3-1333) und von Kingston. Diese gingen dann auch. Wundersamerweise gingen die OCZ Riegel dann auch, wenn man sie zusätzlich zu den Kingston Riegenl aufs Board steckt. Vermutlich haben die da mal wieder irgendwelchen Quatsch im SPD stehen. Aber gut, dann hab ich halt jetzt 8 GB.
Nun stellte sich aber gleich das nächste Problem: Mainboard tauschen ist unter Windows immer noch ein No-Go, dass ist in den letzten 20 Jahren auch irgendwie nicht besser geworden. Auf jeden Fall verabschiedete sich der Rehner beim Booten mit einer kryptischen Fehlermeldung in den Bluescreen (0x0CHastenichtgesehen). Neue Hoffnung kam aus, als beim nächsten Reboot der freundliche Reperaturassistent aufpopte, und mir anbot, mal flux das Problem zu beheben. Diese währte allerdings nicht lange, denn der Assistent verabschiedete sich ziemlich schnell mit “Unbekannter Fehler” im Nirvana – nicht ohne mir noch anzubieten, die Fehlermeldung doch an Microsoft zur Post Mortem Analyse zu schicken, und einen auf der etwas trostlosen Rettungskonsole zurückzulassen.
Nun gut, man kennt ja Windows schon eine ganze Weile, und weiss, dass der Fehler höchstwahrscheinlich durch einen fehlenden SATA-Treiber verursacht wird. Nur: Wie installiert man den nach? In der Rettungskonsole wird leider keine passende Option angeboten, und zur Windows Neuinstallation fehlte mir der passende DVD-Rohling.
Nach sehr langem Überlegen und rumprobieren bin ich auf die Idee gekommen, dass es evtl. die Möglichkeit gibt, einen generischen AHCI-Treiber zu verwenden, und so zumindest mal wider in die Lage zu kommen, den richtigen Treiber zu installieren.
AHCI aktiviert man unter Windows in der Registry, genauer gesagt unter
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci indem man den Wert “Start” auf den intuitiven Wert “0″ setzt.
Nun gut, aber wie editiert man von der Rettungskonsole aus die Registry? Netterweise wird zwar Regedit mitgeliefert, dieses editiert jedoch nur die Registry des Rettungs-Windows in der Ramdisk. Die Lösung ist die “Load Hive” (zu Deutsch: “Struktur Laden”) Option. Damit kann man Teilbäume der Registry der Windows Installation laden, editieren und später wieder exportieren. Allerdings: Wo zum Geier ist die Registry eigentlich gespeichert. Die Antwort:
c:\windows\system32\config
Dort befinden sich einige Dateien, welche die Unterhives von HKEY_LOCAL_MACHINE beinhalten. Wir laden also die Datei “SOFTWARE”. Nun kommt ein wenig intuitiver Dialog, der einen nach dem Namen des zu ladenden Hives fragt. Das ist schlichtweg falsch übersetzt, Regedit fragt nämlich eigenltlich, unter welchem Namen es das Ding einblenden soll. Gibt man da nun “FOO” ein, so findet man den Teilbaum unter HKEY_USER\FOO. Nun nimmt man die entsprechenden Einstellungen an HKEY_USER\FOO\CurrentControlSet01\Services\Msahci vor. Nun muss man den Teilbaum noch speichern, um die Änderungen zu persistieren. Hierzu klickt man auf HKEY_USER\FOO und wählt Datei->Struktur entfernen.
So, jetzt beim nächsten Reboot im Bios noch AHCI aktiviert, und schon hat man ein (fast) wieder funktionsfähiges – wenn auch Treiberloses – Windows.
Vielen Dank für den Tipp. Deine Anleitung hat wunderbar funktioniert und mir somit eine Neuinstallation von Windows erspart.