Oživujeme WinXP: File hal.dll is missing or corrupt

Nedávno som čvirikal, že opravujem PC, ktorý zjavne zdevastovala moja najmladšia sesternica (ako 5 ročná si vedela vytvoriť zaheslovaný WinXP profil a inštalovať hry, takže som na ňu vlastne pyšný). On ten problém nebol až tak komplikovaný, ale už som sa s ním za ten krátky čas, čo spolužijem s počítačmi stretol trikrát, takže poznámka, aby som nabudúce nemusel googliť.

Upozornenie:
Neručím za akékoľvek škody spôsobené postupovaním podľa tohto návodu. Je to len poznámka pre mňa.
Nie som Váš servisný technik a neplatíte mi, takže odpovedať na komentáre budem podľa nálady.
/Upozornenie.

Aký problém teda riešime?

Windows po zapnutí počítača nenabehne, vyskočí na nás škaredé čierne prostredie z Taiwanu a chyba:
Windows could not start because the following file is missing or corrupt:
C:\Windows\System32\hal.dll

Riešenie:
Zoženieme inštalačné Windows XP CD (na Home verziu Home, na Pro verziu Pro - v opačnom prípade nikto neručí za opravenie či správnu funkčnosť opraveného systému, neskúšal som). Nemusí to byť originál, nemusí to byť inštalačné CD k tomuto WinXP; požičiame si v mäsiarstve spoza rohu. Vložíme CD, reštartujeme PC, a nabootujeme cédečko.

Ak nemáme nastavené ako prvé bootovanie z CD, ale z HDD, reštart, odskočíme si do BIOSu a nastavíme to (ak text ukazujúci ako sa dostaneš do BIOSu mizne príliš rýchlo, skúsime použiť Pause/Break na zastavenie bootovania - na väčšine mašín v mojom okolí to funguje).

CD začne bootovať, opýta sa, či chceme inštalovať systém, spustiť Recovery Console, alebo odísť z CD setupu. Vyberieme Recovery Console (takže stlačíme R). Opýta sa nás to, ktorý systém chceme opraviť. Väčšina ľudí má len jeden (1. C:\Windows). V takom prípade stlačíme 1 a enter. Opýta sa na admin heslo. Ak nejaké máme, napíšeme + enter. Väčšina obyčajných ľudí, ale frčí bez admin hesla (jop prikak, ale to je iná téma. Tak či onak, ak človek opravuje u cudzích, tak je lepšie dúfať, že heslo nemajú, lebo v 99% prípadov ho aj tak nevedia).

Tak a teraz trochu hrania so systémom. Srandou na chýbajúcom hal.dll je väčšinou to, že nemusí byť chyba v hal.dll. Ak chýba v systéme, tak ho samozrejme treba pridať. Ale ak nechýba, tak nemusí byť na škodu, najprv nezamieňať, ale skúsiť len opraviť boot.ini, ktorý býva často príčinou tejto chyby.

1) Takže ideme na to - do konzoly píšeme
copy c:\windows\system32\hal.dll c:\windows\system32\hal.dll_bak
Ak to vyhodí chybu, že hal.dll nebol nájdený, nasledujeme krok 2). Ak bol súbor skopírovaný (teda sme našli aj originálny hal.dll), skúsime najprv opraviť len boot.ini - pokračujeme krokom 3)

2) Druhý krok je nakopírovanie súboru hal.dll do systému. Odporúčam najprv skúsiť krok 3. a v prípade, že to nepomohlo vrátiť sa sem a vykonať 2. aj 3. krok.
expand e:\i386\hal.dl_ c:\windows\system32
E: je označenie pre CDROMku, C: je disk/partícia so systémom. Ak si nie sme istý písmenkami, použijeme príkaz map. Vypíše nám používané disky/partície/cdromky.

Ak sa opýta na prepísanie súbory, či niečo také (nepamätám), dáme áno, teda yes, teda stlačíme Y.

3) Tento krok väčšinou rieši problém s hal.dll aj bez potreby expandovať z CDečka. Občas sa totiž stane, že boot.ini bol z čiehosi rozmaru pozmenený, a to spôsobí problém chýbajúceho hal.dll. Takže ho skúsime opraviť opravíme. Píšeme:
ATTRIB -H C:\BOOT.INI
ATTRIB -R C:\BOOT.INI
ATTRIB -S C:\BOOT.INI

Tieto príkazy zmenia (odoberú) atribúty súboru boot.ini. H - hidden, R - ReadOnly a S - system file. Podľa príspevok na nete a taktiež helpu v konzole som vyrozumel, že by sa mali dať napísať do jedného riadku, teda toto: ATTRIB -H -R -S C:\BOOT.INI, ale windows sám asi nevie, čo dokáže - tento príkaz totiž vyhodí chybu nevalidných atribútov. Možno je to chyba service packu 3, nezájem.

Keď už máme atribúty zmenené, zmažeme súbor boot.ini:
DEL C:\BOOT.INI

a vyžiadame si rebuild súboru:
BOOTCFG /REBUILD

Systém sa opýta, či chceme pridať inštaláciu Add installation to boot list?. Dáme Y ako áno.

Opýta sa ako to chceme nazvať: Enter Load Identifier V podstate je to jedno, ale neodporúčam nazvať svoj systém Kocúrkovo, mohlo by vás to neskôr zmiasť. Ja som opravoval XP Home, dal som teda Windows XP Home.

Popýta si nejaké ďalšie atribúty Enter Load options:. To je čisto na Vás, stačí to len odentrovať a nič nepridávať. Ja zvyknem písať /fastdetect, ale je to na Vás.

Ostáva už len fixnuť boot. Niektorí to nedávajú, niektoré hej. Netuším, čo je správne. Ja som fixol:
FIXBOOT

4) Napíšeme EXIT, dáme enter a vyhodí nás to do reštartu. Tento krát nebootujeme na CD, ale pokračujeme v systéme. Náš “opravený” boot je hneď prvý v zozname, takže berieme prvý a ideme do normálneho režimu. V prípade, že to nefunguje a pri práci sme preskočili krok číslo 2, zas sa vrátime do Recovery Console a prejdeme všetky kroky vrátane druhého.

Teraz by systém mal fungovať.

Ak windows nenabehne, chyba je niekde inde, než v hal.dll, či boot.ini.


Zdroj: google.com, na nete som sa prehrabával počas riešenia problému, pár dní dozadu, teraz sa mi nechce googliť.

PS: Ježkove oči, mám tu hroznú tému, maximálne nekompatibilnú s “code”. Dúfam, že ste si to užili.

Jeden komentár k “ Oživujeme WinXP: File hal.dll is missing or corrupt ”

  1. markophov drístar » Blog Archive » Oživujeme WinXP 2: Zaseknutý štart systému a SPTD.SYS, MUP.SYS hovorí:

    […] markophov drístar Krása života spočíva v tom, že neide o nič dôležité… len o život… « Oživujeme WinXP: File hal.dll is missing or corrupt […]

Pridaj svoj komentár