Reanimation

Windows XP neue Festplatten-Hostadapter bekannt machen

Praxis & Tipps | Praxis

Neuere Windows-Versionen verweigern den Systemstart, wenn sie den Festplatten-Adapter nicht erkennen. Deshalb sind einige Tricks nötig, um etwa nach einem Mainboard-Defekt mit einer neuen Platine weiterarbeiten zu können.

Anders als alte „Legacy“-Betriebssysteme wie DOS, die Festplatten über BIOS-Routinen ansprechen, bringen moderne Windows-Versionen eigene Treiber für die Hostadapter mit. Viele erkennt das Windows-Setup automatisch. Für SCSI-, (Serial-ATA-)RAID- und SATA-AHCI-Adapter dagegen muss man bei der Installation einen Treiber einspielen (Taste F6), der auf einer Floppy-Disk vorliegen muss, sofern man sich keine „Slipstream“-Setup-CD gebastelt hat [1].

Windows 2000 Professional, XP und Server 2000/2003 legen sich also auf einen bestimmten Hostadapter für das Laufwerk mit der Systempartition (%Systemroot%, meist C:\) fest. Das führt zu Problemen, wenn eine bestehende Windows-Installation beispielsweise wegen eines Defektes auf einem neuen Mainboard mit einem anderen Hostadapter weiterarbeiten soll. Das gelingt noch am wahrscheinlichsten, wenn auf dem neuen Mainboard ein Chipsatz desselben Herstellers sitzt. Aber selbst dann kann der Bootvorgang scheitern (Bluescreen STOP 0x0000007B Inaccessible_Boot_Device).

Microsoft hat in der Online-Support-Datenbank (Knowledge Base, [2) einen Trick veröffentlicht, wie man einer vorhandenen Windows-Installation fremde Hostadapter bekannt machen kann. Das gelingt leicht, solange das ursprüngliche System noch läuft, denn dann lässt sich dessen Registry mit einer Liste von Hostadaptern und Verweisen auf die passenden Treiber impfen. Die nötigen Treiberdateien sind meist vorhanden, notfalls extrahiert man sie aus den Installationsarchiven und kopiert sie in die richtigen Verzeichnisse [3].

Wesentlicher Bestandteil dieser Hostadapter-Schutzimpfung ist die über die Knowledge Base erhältliche Datei MergeIDE.reg (engl. to merge = zusammenführen). Sie enthält pro Hostadapter-Modell einen Abschnitt, der dem Betriebssystem diesen Adapter anhand seiner PCI-Identifikationsnummer bekannt macht und einem von drei „Services“ zuordnet. Diese wiederum verweisen letztlich auf die Standard-Treiberdateien atapi.sys, intelide.sys oder pciide.sys/pciidex.sys, die im Systemverzeichnis unter System32\Drivers zu finden sein müssen.

Die digital auslesbare PCI-Gerätekennung heißt auch Plug-and-Play-(PnP-)ID und besteht aus zwei vierstelligen Hexadezimalwerten, der Hersteller- und der Gerätekennung (Vendor- und Device-ID). Ein typischer Absatz der Datei mergeide.reg lautet:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_2421] "ClassGUID"= "{4D36E96A-E325-11CE-BFC1-08002BE10318}" "Service"="intelide"

Hier geht es um den IDE-Hostadapter des Bausteins ICH2 (dev_2421) vom Hersteller Intel (ven_8086).

Im Falle eines geplanten Umzugs genügt ein Doppelklick auf die Datei mergeide.reg, wonach die darin beschriebenen Ergänzungen in den Registry-Zweig HKEY_LOCAL_MACHINE\System\CurrentControlSet übernommen werden. Die Services-Beschreibungen landen hier im gleichnamigen Unterschlüssel, die PCI-IDs unter Control\Critical-DeviceDatabase. Den Registry-Zweig HKLM\System speichert Windows in der Datei System32\Config\System.

Lässt sich das System nicht mehr starten, kann man diesen Zweig auch nach Umbau der Festplatte von einem anderen Windows-2000/XP-System oder einer BartPE-CD-Installation aus durch Import der Struktur in den Registry-Editor bearbeiten [4]. Unerschrockenen Kommandozeilen-Tüftlern gelingt die Impfung auch per Wiederherstellungskonsole [5] mit dem Werkzeug reg.exe durch den Befehl

reg import mergeide.reg 

Die von Microsoft veröffentlichte Datei mergeide.reg ist mittlerweile veraltet und enthält die Kennungen neuerer Chipsätze wie Intels i865 oder Nvidias nForce3 nicht. Außerdem kann das tückische Problem auftreten, dass eine Windows-Installation auf ein und demselben Mainboard nicht mehr starten will, nämlich falls man dabei etwa den „F6-Treiber“ für einen im AHCI-Modus laufenden SATA-Hostadapter eingespielt hat, später aber den zu IDE softwarekompatiblen Nicht-AHCI-Modus nutzen will (etwa um gleichzeitig auch ein älteres Betriebssystem ohne AHCI-Treiber von derselben Festplatte booten zu können).

In solchen Fällen kann helfen, die Datei mergeide.reg um eigene Einträge zu erweitern. Man dupliziert dazu am besten einen der bereits vorhandenen Schlüssel-Abschnitte mit dem gewünschten Service-Verweis und ändert die PnP-ID am Ende der langen, in eckige Klammern gesetzten Dachzeile. Viele IDE- oder SATA-Hostadapter laufen mit dem Standard-Service pciide, sogar die in Intel-Chipsätzen eingebauten, für die man probeweise auch intelide verwenden kann.

Die Vendor- und Device-IDs des neuen Hostadapters bekommt man unter DOS mit Hardware-Systeminfo-Tools heraus [6], unter Linux/Knoppix mit dem Kommandozeilen-Befehl

less /proc/pci 

Manchmal hilft eine Online-Datenbank weiter [7]. Öffentliche Chipsatz-Datenblätter mit genauen Device-IDs gibt es nur von AMD und Intel. Jeder Chipsatz-Hersteller verfolgt seine eigene Namensstrategie: Während etwa AMD, Intel und Nvidia den IDE-Hostadaptern ihrer verschiedenen Chipsatz-Southbridges unterschiedliche Device-IDs geben, verwendet beispielsweise VIA immer dieselbe Kennung für ähnlich funktionierende Adapter verschiedener Chipsätze. Möglicherweise muss man also mit mehreren Dev_ID-Einträgen experimentieren. Die Vendor-Kennungen der wichtigsten Chipsatzfirmen lauten: 10B9 (ALi/ULi), 1022 (AMD), 1002 (ATI), 8086 (Intel), 10DE (Nvidia), 1039 (SiS) und 1106 (VIA).

Der SATA-Adapter des Intel ICH6R läuft übrigens mit dem „intelide“-Service, wenn man seine Dev_ID 2652 einträgt - aber nur, wenn er im Nicht-AHCI-Modus arbeitet. Andernfalls benötigt er einen speziellen („F6“-)Treiber.

Wenn das System wieder startet, sollte man als erstes die aktuellen Chipsatz-Treiber von der Hersteller-Webseite einspielen. Die Treiber-Installer binden dann die wirklich korrekten Treiber ein, bei Nvidia-Chipsätzen etwa die Datei nvatabus.sys. Die nötigen Verweise finden sich anschließend im Registry-Zweig HKLM\System\CurrentControlSet\Control\Class unter dem Klassen-Schlüssel des jeweiligen Hostadapters beziehungsweise Controller-Chips und lassen sich alternativ per Geräte-Manager auslesen. In hartnäckigen Fällen der Boot-Verweigerung mag es helfen, den erwähnten Klassen-Schlüssel für den alten, nicht mehr vorhandenen Hostadapter zu löschen (Kopie aufheben!).

Wenn es mit keinem der beschriebenen Tricks gelingt, eine vorhandene Windows-Installation auf neuer Hardware zu starten, kann die so genannte Reparatur-Installation helfen. Diese beginnt zunächst wie eine Neu-Installation von der Setup-CD und erlaubt auch, die Wiederherstellungskonsole zu starten - für die Reparatur-Installation ist aber an dieser Stelle der mutige Schritt zum Start der Installation nötig. Erst später fragt das Setup-Programm nach, ob es eine auf der Festplatte gefundene Installation reparieren soll. Drückt man nun die Taste „R“, schiebt das Setup der vorhandenen Installation neue Treiber unter. Leider arbeitet dieser Reparaturmechanismus nicht immer einwandfrei und schafft es manchmal nicht, die Boot-Blockade zu lösen. Schlimmstenfalls geht anschließend gar nichts mehr - eine Sicherungskopie der Systempartition sollte deshalb bereits vorhanden sein.

Sofern die alte Hardware noch startfähig ist, mag ein weiterer Tipp helfen: Vor dem Tausch des Boards installiert man demnach manuell einen Windows-eigenen Standardtreiber für den IDE-Hostadapter. Dazu startet man aus dem Geräte-Manager von der Eigenschaften-Seite des IDE-Hostadapters mittels „Treiber aktualisieren“ den Hardware-Update-Assistenten. Anschließend erzwingt man die manuelle Treiberwahl, indem man zunächst mit der Option „Nein, diesmal nicht“ die Verbindung zu Windows Update ablehnt und dann die „Software von einer Liste oder bestimmten Quelle installieren“ lässt. Schließlich erhält man Zugriff auf eine Auswahlliste, wenn man für „Nicht suchen, sondern den zu installierenden Treiber selbst wählen“ optiert. Dort pickt man den „Standard-Zweikanal-PCI-IDE-Controller“ heraus - fehlt dieser im Angebot, zaubert ihn die Abschaltung der Option „Kompatible Hardware anzeigen“ herbei. Nach einem Neustart sollte das System mit dem Standardtreiber laufen.

Nun darf man die Festplatte an das neue Mainboard anschließen und sollte zunächst unbedingt im abgesicherten Modus starten, um die Installation der zuvor beschafften Treiber für den neuen Hostadapter zu starten. Erst der nächste Neustart darf in den Windows-Normalmodus führen.

Selbst wenn sich mit einem der beschriebenen Tricks eine alte Windows-Installation mit neuer Hardware weiternutzen lässt, sollte man bedenken, dass man möglicherweise nicht nur bei den Hostadapter-Treibern Leichen im Keller hat. Es drohen also weitere Probleme oder subtile Instabilitäten. In vielen Fällen ist es deshalb ratsam, doch lieber den langweiligen Weg einer Neu-Installation zu wählen. (ciw)

[1] Karsten Violka, Setup von Geisterhand, Windows unbeaufsichtigt und maßgeschneidert installieren, c't 11/04, S. 210

[2] MergeIDE.reg-Trick: Artikel 314082 unter http://support.microsoft.com

[3] Axel Vahldiek, Umzug mit Tücken, Windows 2000 und XP auf einen anderen PC retten, c't 18/02, S. 206

[4] Fremde Registry-Äste bearbeiten, c't 19/04, S. 170

[5] Lars Bremer, Klempner an Bord, Registry sichern und reparieren unter Windows 2000 und XP, c't 22/01, S. 146

[6] Systeminfo-Tool für DOS (Shareware): www.hwinfo.com und auf der bootfähigen CD-ROM zu c't 11/04

[7] Datenbank mit PCI-IDs

Kommentare

Anzeige