Hallo,
was wolltest du mit der Win.ini? Diese ist für den Bootvorgang von XP nicht relevant und auch dein Win98 wird über den Bootmanager von XP aufgerufen, falls du nicht einen anderen verwendest.
Wenn die hal.dll trotz erfolgreicher Neuinstallation angeblich immer noch fehlt, könnte es auch an einer fehlerhaften Boot.ini liegen. Die hal.dll ist nur die erste von etlichen DLLs, welche zum Booten geladen werden müssen und wird deshalb auch immer dann als fehlend gemeldet, wenn diese DLLs insgesamt an der falschen Stelle gesucht werden.
Eine Boot.ini kann z.B. dadurch fehlerhaft werden, wenn man Änderungen an den Laufwerken vornimmt und sich dadurch ihre Reihenfolge ändert. In dem Fall wird zwar die Boot.ini gefunden, aber diese verweist dann auf eine Platte und eine Partition, in welcher sich keine Verzeichnis 'System32' von XP befindet.
Sowas kann auch unbemerkt geschehen, ich hab es z.B. bei SATA-Platten schon erlebt, dass sich deren Reihenfolge im BIOS verstellt hat, nur weil kurzfristig mal eine abgezogen war. Du könntest also mal überprüfen, ob die Reihenfolge der Platten in deinem BIOS noch korrekt eingestellt ist. Bei IDE-Platten kann ähnliches passieren, wenn man im Rahmen irgendwelcher Aktionen, die Datenkabel mal abgezogen hat und dann beim erneuten Anstecken die Steckplätze auf dem Board vertauscht. Auch sowas ließe sich über die Anzeigen im BIOS kontrollieren.
Eine weitere Möglichkeit besteht darin, über die
Windows XP-Wiederherstellungskonsole mit Hilfe des Befehles
bootcfg (siehe Erläuterungen in vorstehendem Link) die Boot.ini reparieren bzw. anpassen zu lassen.
Gruß
Kalle