Impossible de démarrer XP - BOOT.INI endommagé, réinstaller HAL.DLL

Depuis quelques temps mon ordinateur me faisais quelques écrans bleu en fonctionnement visiblement à cause des drivers pour la connexion à ma TI89 (avec l’interface série). Je les ai désinstallé et depuis, plus d’écran bleu pendant le fonctionnement de l’ordinateur, mais par contre, chaque fois que je l’éteignais…
Et un matin, ce que je redoutais est arrivé, l’ordinateur a catégoriquement refusé de démarrer.
Il m’annonce que le BOOT.INI est endommagé puis :
“Windows n’a pas pu démarrer car le fichier ci-dessous est manquant ou endommagé :
<racine windows>\system\hal.dll
Veuillez réinstaller une copie du fichier ci-dessus”

Je ne sais pas comment faire pour réinstaller ce seul fichier et j’aimerais autant que possible éviter de formater ma partition système sur laquelle j’avais tout de même quelques fichiers importants…
Pourriez vous, avant toute chose, m’assurer que je ne risque pas de perdre toutes mes données qui sont sur mes disques en RAID0 (normalement non, les plus importants sont sur la partition donnée et le RAID est indépendant du système d’exploitation, c’est bien ça ?)

Ah oui, j’ai oublié de préciser : j’ai exécuté memtest pendant 6heures avec mes deux barettes sans aucune erreur

:slight_smile: regarde ici les différentes méthodes (idem sur recherche/Google multi exemples)

Récupération du fichier HAL.DLL manquant ou endomagé
http://www.infos-du-net.com/modules/nsections/astuce-54.html

Error Message: Cannot Find \Windows\System32\hal.dll
http://www.kellys-korner-xp.com/xp_haldll_missing.htm

En fait je voudrais savoir si il était possible de faire reconnaitre mon installation de DD SATA en RAID0 par une version live de ubuntu. Ce serais la méthode la plus simple pour moi si elle était possible : Je démarre Ubuntu, je met la DLL sur une disquette et je la remet dans le dossier system… Mais pour ça il faudrais que Linux puisse voir mes disques… Et comme je suis un noob en linux, j’aimerais savoir si c’était possible…

Si ta partition système est en NTFS, ce ne sera pas possible.

Le plus simple serait de passer par la console de récup de Windows.

Oui ! L’ennui c’est que je ne sais pas du tout utiliser cette console…
Pourriez vous m’indiquer à peu près la marche à suivre ? Merci !

C’est simple. Tu boot sur le CD, choisir R (Réparer) à la première demande. Il va mouliner un peu puis t’afficher :

1: C:\Windows

Tu tapes 1 --> valider.
Il demande le mot de passe Admin, tu lui donnes ou valides directement si tu n’en as pas mis un.

Là tu atteins la console. Tu exécutes ces commandes successivement :

attrib -r -h -s system32\hal.dll
ren system32\hal.dll system32\hal.bak
expand X:\i386\hal.dl_ system32\hal.dll
fixmbr
fixboot C:
bootcfg /rebuild

–> remplace X par la lettre de ton lecteur CD.

Pour bootcfg /rebuild, quand il te demande l’identificateur de l’entrée, tu donnes n’importe quoi, “XP réparé” par exemple, et pour l’option, tu donnes
/fastdetect

Enfin, fais
exit
pour rebooter.

Fais attention de taper exactement comme indiqué.

Et regarde en bas de l’écran pour choisir le clavier français quand c’est demandé.

Oh je crois que tu vas me sauver la vie ! Merci beaucoup, j’essaye tout de suite !

Bon, il faut que je pose des question sur la syntaxe avant d’aller plus loin… Parceque ce que tu m’as donné ça marche pas top alors j’essaye d’autres trucs mais j’ai pas envie de me planter…
“attrib -r -h -s system32\hal.dll”
me donnais : “le paramètre n’est pas valide”
=>j’ai donc fait “attrib -r system32\hal.dll”; puis “attrib -h system32\hal.dll”; puis “attrib -s system32\hal.dll”
qui semble avoir marché (il ne m’affichais aucun messge d’erreur)

“ren system32\hal.dll system32\hal.bak”
me donnais : “le paramètre n’est pas valide”
=>j’ai donc lu l’aide et me suis apperçut qu’il n’était pas nécessaire de préciser le chemin pour le nouveau nom. Ce qui donne : “ren system32\hal.dll hal.bak”
là non plus, pas de message

Es-ce que je peux aller plus loin ou es-ce que je me suis déjà foutu dans la merde en ne suivant pas ta syntaxe à la lettre ?

UUUp, s’il vous plait, je suis bloqué là ! Je sais pas sur de moi et je progresse pas… J’ai même peurt d’étteindre mon ordi à ce point là…

ça doit être bon , pour l’instant
Nglechau est un connaisseur ( crois moi) et la syntaxe qu’il t’avait donnée était correcte

Donc, je ne comprends pas pourquoi ton Systeme s’obstine à dire ‘le paramètre n’est pas valide’ ’ pour tout ce que tu tapes. Tu mets bien des espaces entre les mots?

Pour t’assurer de l’état de la situation : taper:
CD C:\windows\system32
DIR hal.*
tu verras tes fichiers hal.quelquechose

En tapant : ATTRIB nom_du_fichier tout court, tu verras ses attibuts, s’il en a

la commande CD … ( point point) permet de remonter au dossier parent

Voilà . tu peux ensuite continuer la manip

Bon, je suis donc passé à l’étape suivante (expand machin) et windows continue de me faire des siennes ! Je commence à croire que je suis maudit
“expand X:\i386\hal.dl_ system32\hal.dll”
me donne “Impossible de créer le fichier hal.dll
0 fichier(s) décompressé(s)” Je précise que le lecteur DVD s’est mis en route quand j’ai tapé cette commande et qu’il m’affiche un autre message quand je remplace “hal.dl_” par un nom imaginaire.
Donc là je suis dans le caca… Es-ce que ça peut venir du CD de XP qui est un CD pas tout à fait original… Si le fichier n’y était pas il me le dirais…

Autre solution : choper la dll sur les liens qu’on m’a donné et le remettre à partir du lecteur disquette… Ca peut marcher ça ?

Excuse-moi j’étais pas là un moment.

As-tu remplacé X dans par la vraie lettre de ton lecteur CD ?

Merci Mike pour le coup de main :hello:

oui, je l’ai bien remplacé !

C’est quoi la lettre de ton lecteur CD ? (pour faciliter les commandes désormais).
Tu en as combien (de lecteurs CD) ?

j’ai deux partitions sur mon système RAID (lettres D (system) et C) et un lecteur DVD dont la lettre est E. Je suppose que la lettre de mon lecteur disquette est A.

Et si tu faisais :

dir E:\i386\hal*.*

ça donne quoi ?

il y a bien un fichier “hal.dl_”
il y a au total 9 fichier. il y a aussi un “hal.in_” et puis d’autres avec des noms bizar

Réessaie :

cd system32
attrib -r -h -s hal.dll
ren hal.dll hal.bak
dir /a hal*.*

Il faut que ça s’affiche
Fichier introuvable

et là réessaie :
expand E:\i386\hal.dl_ hal.dll

Bon c’est grave là, il trouve plus “hal.dll”
Ca se trouve il y était même pas depuis le début que je tente les manip…
Il est bien affiché à l’écran : “D:\WINDOWS\system32>”
ensuite je tape la ligne de commande “attrib -r hal.dll”
et là il me dit “… n’a pas pu trouver le fichier ou dossier spécifique…”
j’ai regardé tout ce qu’il y avait dans D\Windows\system32 et il y a pas “hal.dll”…
C’est grave docteur ?

Non, au contraire, ça veut dire que l’ancien fichier a été renommé.

Passe maintenant à :
expand E:\i386\hal.dl_ hal.dll