您的位置:首页 > 其它

解决系统hal.dll文件丢失问题

2010-10-09 14:49 507 查看
 
今天去给一个朋友修电脑,主要解决的是系统hal.dll文件的丢失问题,但到最后也没有解决掉。现将整个解决过程以及遇到的问题记录如下,希望高手能够指导。
问题描述:系统启动过程提示系统windows\sysytem32\hal.dll丢失
解决办法:
首先想到的办法是利用Windows XP 光盘运行故障恢复控制台,步骤操作如下:
将 Windows XP 光盘插入 CD-ROM 驱动器,然后重新启动计算机。出现“欢迎使用安装程序”屏幕时,按 R 键启动故障恢复控制台。
进入故障恢复控制台之后,
方法一:将系统光盘中的hal.dll文件拷贝到C:\windows\sysytem32\下。执行命令如下:
一般提取文件的方式是:
expand G:\i386\hal.dl_ C:\windows\system32\hal.dll (G为光驱)
但是在这里不行,
因为HAL.DLL文件在XP光盘内的原型是halacpi.dll
所以执行如下命令
expand G:\i386\halacpi.dl_ C:\windows\system32\ #提取文件
ren C:\windows\system32\halacpi.dll hal.dll #重命名文件
注意:由于丢失的文件hal.dll是压缩过的,所以就要用到EXPAND命令,例如halacpi.dl_(后缀名最后一个是下划线的就是压缩过的)。
但是执行时出现如下错误:访问被拒绝

方法二:从别的正常系统中用U盘拷贝一个hall.dll文件到该系统中,
执行如下命令:
例如:COPY H:\i386\hal.DLL C:\Windows\System32\ (H:为U盘)
但是仍然出现如下错误:访问被拒绝
查找原因后,原来是:
默认情况下故障恢复控制台只能访问系统根目录、Windows安装目录、CMDCONS等文件夹,当访问其它文件夹时会收到 “访问遭到拒绝”;也不能将硬盘文件复制到软盘。这些限制可以用“Set”命令来修改相关变量的取值来突破。
输入set命令后,果然出现如下界面:
AllowWildCards = False
AllowAllPaths = False
AllowRemoveableMedia = False
NoCopyPrompt = False
这时就想输入set AllowAllPaths = true ,不就可以解决“访问被拒绝”的问题了嘛。正在高兴时,却发现又出现如下错误:
SET命令目前处于停用状态,SET命令是一个可选的故障恢复控制台命令,只能通过安全配置和分析管理单元来启用。
这是彻底崩溃!!……
通过在网上查询才知道,只能在系统正常运行时,在“运行”框中输入“gpedit.msc”,确定后在组策略窗口中依次点击“本地计算机策略”→“计算机配置”→“Windows设置”→“安全设置”→“本地策略”→“安全选项”,在右边窗口中找到“允许对所有驱动器和文件夹进行软盘复制和访问”并双击(如图),弹出对话框后选择“已启用”,然后确定。再次进入故障恢复控制台,使用“Set”命令将上述四个变量都赋值为“True”即可。



以上两种方法都失败!!!
下面想到用winpe进入系统,看能否启用组策略窗口,可是仍然失败。
再想能不能在winpe系统下,将u盘中的hal.dll文件拷贝到C:\windows\system32\下,可出现如下错误:system32文件和目录已经破坏,无法访问。再次失败!!!
到此我实在已经无力了,无言了!只能建议在winpe下将c盘需要的文件保存到d盘,然后重装系统。
后记:
事后想想是不是出现hal.dll文件丢失问题, hal.dll文件实际上并没有丢失,只是BOOT.INI不正确的原因,通过把boot.ini恢复到正常(或者说之前)的状态,就OK了呢???没有试过,不知道,希望高手指教!!!!
09-10-27 23:36
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: