前几天店里来了台电脑,说是重装系统,装就装吧,结果发现复制完安装文件电脑重启屏幕上提示重启黑屏半天居然提示找不到hal.dll。

错误信息如下:
Error Message: Cannot Find \Windows\System32\hal.dll

解决方案1
重新用XP安装盘光驱启动,启动后在提示安装或修复那里选择R后就进入恢复控制台了,在“恢复控制台”下将光盘上i386目录中的HAL文件提取出来放到Windows\system32中。操作步骤如下:

Del C:\windows\system32\hal.dll
expand X:\i386\halaacpi.dl_ C:\windows\system32\hal.dll
exit

注意,这里假设C盘是你安装XP的盘,而X是光驱所在的盘。

XP里边自带的HAL文件很多一般就用上边提示的halaacpi.dl_就可以了,下边是计算机的描述文字 对应的 HAL 文件
ACPI Multiprocessor PC halmacpi.dl_
ACPI Uniprocessor PC halaacpi.dl_
Advanced Configuration and Power Interface (ACPI) PC halacpi.dl_
MPS Multiprocessor PC halmps.dl_
MPS Uniprocessor PC halapic.dl_
Standard PC hal.dl_
Compaq SystemPro Multiprocessor or 100% Compatible halsp.dl_

重新启动后还是提示找不到hal.dll,看来原因不是在这里

解决方案2
重新光盘启动,进入DOS环境,打开boot.int一看,居然在本来是multi的位置,出来一个signiture。肯定不对,改成multi(0),保存不了,呵呵,哦,文件是只读的。于是把boot.ini的只读属性去掉,改完保存,重启。呵呵,WinXP进度条终于出现了。

以下操作最好使用PE,XP自带的恢复控制台太难使了。

进入PE后,找到BOOT.INI,将signiture处换成multi(0)即可,一共两处,保存后重启即可

正常boot.ini 文件应该如下

[boot loader]
timeout=30
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