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

 

今天去给一个朋友修电脑,主要解决的是系统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”即可。

clip_image002

以上两种方法都失败!!!

下面想到用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

你可能感兴趣的:(系统,dll,文件,解决,hal)