go41

Win XP von Standard-PC auf ACPI-PC umstellen

von Joern am 11. Dez. 2007 | 2 Kommentare

Problem: ich wollte eine Festplatte mit Windows XP von einem Rechner mit VIA Chipsatz in einen Rechner mit nVidia Chipsatz, anderem Prozessor und natürlich anderer Grafikkarte transferieren.

Einfach umbauen geht nicht, ich hab’s natürlich probiert und es gab auch gleich ’nen Bluescreen – Error Code: Stop: c000021a (Fatal System Error) oder so.

Also ganz wichtig: Backup in Form eines Festplattenimages machen!!

Beim Zurückbauen in den alten Rechner bootete die Platte dann auch nicht mehr! Ich hatte ein Image, also wieder drauf gespielt und mit dem alten Motherboard nochmal angefangen zu booten, jetzt gings auch wieder.

Nun habe ich mir vorsorglich neue nVidia Chipsatz- und Grafikkartentreiber auf der Platte bereitgelegt – man braucht die ganz bald…

Um Windows XP die Via und die Grafikkartentreiber zu entziehen, habe ich alle Programme unter Einstellungen Software entfernt, die irgendwas mit Via zu tun haben.

Die Grafikkarte habe ich per Rechtsklick auf „Arbeitsplatz“ – „Eigenschaften“ – „Hardware“ – „Geräte-Manager“ deinstalliert, dann nimmt Windows den Standard VGA-Treiber.

Auch im Gerätemanager habe ich bei „Computer“ von „ACPI-PC“ auf „Standard-PC“ umgestellt, indem ich den Treiber manuell ausgewählt habe.

Jetzt kann man Windows im alten Computer beenden und die Platte ohne nochmal zu booten an das neue Motherboard anschliessen.

Voila – bootet auch mit neuem Motherboard, sieht zwar mit den VGA Einstellungen dumm aus, aber alle sonstigen Einstellungen bleiben erhalten.

Nach der Installation der bereitgestellten Treiber sieht Windows aus wie vorher – läuft natürlich viel besser, man hat ja upgegraded!

Nur: Wenn ich jetzt abschalte, kommt die Anzeige: Sie können jetzt ihren Computer ausschalten – der läuft einfach weiter, bis man den Knopf drückt.

Das ist halt so bei Standard-PC, da weiß Windows nichts von ACPI und die Kiste beim Beenden abstellen.

Also wollte ich einfach wieder im Gerätemanager bei „Computer“ von „Standard-PC“ auf „ACPI-PC“ zurückstellen – denkste, das geht nun nicht mehr.

Eine Repair-Installation von der XP-CD ging nicht, die Seriennummer sollte irgendwie nicht passen.

Nach langem Googeln habe ich dann hereausgefunden, dass die hal.dll im Ordner C:\Windows\system32 die alles entscheidende File ist.

Davon liegen im Ordner C:\Windows\Driver Cache\i386\sp2.cab mehrere Versionen, nämlich:

Hal.dll – Standard-PC, ohne APIC
Halapic.dll – Standard-PC mit APIC
Halmps.dll – Standard-PC mit mehreren CPUs oder Hyperthreading
Halacpi.dll – ACPI-PC ohne APIC
Halaacpi.dll – ACPI-PC mit APIC
Halmacpi.dll – ACPI-PC mit mehreren CPUs oder Hyperthreading

Die passende muss man daraus extrahieren, zB. per: expand c:\Windows\Driver Cache\i386\halaacpi.dl_ c:\windows\system32\halaacpi.dll. (geht auch mit Winrar oder ähnlichem)

Dann habe ich die Datei im richtigen Verzeichnis und muss Windows nur noch zwingen, damit zu booten. Das geht so:

In der „Boot.ini“ ein neues Boot-Profil einfügen! Bei mir sieht die Boot ini jetzt so aus:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=“Microsoft Windows XP Professional“ /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=“Microsoft Windows XP acpi mode“ /noexecute=optin /fastdetect /HAL=halaacpi.dll

Das heisst ich habe die Zeile mit WINDOWS=“Microsoft Windows XP Professional“ ganz kopiert, unten nochmal angefügt und dann „Microsoft Windows XP acpi mode“ reingeschrieben und am wichtigsten: /HAL=halaacpi.dll hinten angehängt.

Bei neuem Booten hat man nun 5 Sekunden Zeit, auf XP im ACPI Mode umzustellen und dann mit der anderen hal.dll, hier der halaacpi.dll zu starten.

Nun möchte Windows wieder alle möglichen Treiber, die man ja hoffentlich noch zur Hand hat – es startet jedenfalls durch..

Nun hat man im Gerätemanager bei „Computer“ wieder „ACPI-PC“ stehen, und die Kiste geht auch wieder aus wie es sein soll!

Da das so gut ging, habe ich die hal.dll (das erste Profil bootet damit) gelöscht und die halaacpi.dll in hal.dll umbenannt. Den neuen Eintrag in der Boot.ini kann man dann auch wieder löschen.

Beim Wechsel auf eine Zweikern-CPU wie on Athlon 64 3000+ (Single-Core) auf einen X2 4400+ (Dual-Core) wird der zweite Kern oft auch nicht erkannt, weil Windows dann die Halmacpi.dll für ACPI-PC mit mehreren CPUs oder Hyperthreading benötigt.

Hier geht man wie oben beschrieben vor, fügt der boot.ini aber /hal=halmacpi.dll an.

Hoffe es hilft jemandem…

wichtig:

  • https://www google com/

Autor:

Du findest mich auch auf Twitter und Facebook!

2 Kommentare

  1. sergei sagt:

    perfect, alles läuft ohne neue installation und datenverluste wieder!

  2. Valerie sagt:

    Excellent weblog right here! Also your website a lot up very fast! What web host are you using? Can I am getting your associate link in your host? I want my site loaded up as quickly as yours lol

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.