因以下文件的损坏或丢失 windows无法启动:<windows root>\system32\hal.dll

怎么解决
我开不了机

你是什么系统,根据你的系统
到网上下载一个HAL.DLL文件 放到system32文件夹里面就可以搞定;

开不了机?那么就用U盘或光盘引导进入DOS系统 下面是方法
hal.dll是Windows硬件提取层模块,该用于解决硬件的复杂性。
开机后,系统无法进入,出现错误提示:请重新安装以上文件的拷贝:windwos root\system32\hal.dll
出现这种情况,一般可能有两种原因:
1,boot.ini文件出了问题;
由于现在的一键还原,矮人DOS或者多系统,都会改变boot.ini文件的。解决的方法其实也很简单,在这种情况下,其实还是可以进入安全模式的。进入安全模式,把boot.ini恢复到正常(或者说之前)的状态,就OK了!
附注:还有可能你的是品牌机,很多品牌机都有一个隐藏的分区,如果你使用GhostXP安装盘,如电脑公司特别版7.8等版本安装,恢复出来的boot.ini文件肯定与你的机子不匹配!这种方式安装的系统,第一次自动重启是可以顺利进入系统的,再重启的话就会提示hal.dll丢失,这是因为boot.ini文件试图通过第一个硬盘的第一个分区引导系统,但由于隐藏分区的存在,我们安装的系统是在第二个分区(第一个分区不可见)!品牌机如果没有重新分区过硬盘,安装好Ghost系统后一定要手动修改boot.ini文件,否则会出错!
一般的boot.ini通常是这样的:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS //rdisk(0)指第一块物理硬盘partition(1)指第一分区
[operating systems]
multi(0)disk(0)rdisk(0)partition(1) //rdisk(0)指第一块物理硬盘partition(1)指第一分区\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
windows xp 系统启动,出现hal.dll丢失问题的解决:
其一,如果是GHOST造成的,一般是一些品牌机,默认有一个隐藏的主分区,而我们安装的实际是第二个主分区,那样GHOST完以后,BOOT引导顺序为默认主分区,所以会提示文件丢失。
解决办法:电脑启动以后会出现引导菜单,第一个为WINDOWS XP,第二,一键GHOST,如果再往下按会发现有一个没有任何文字显示的一项菜单,它即为我们装系统的第二个分区,选择它,即可进入XP,然后进入系统编辑BOOT.INI,
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS //rdisk(0)指第一块物理硬盘partition(1)指第一分区
[operating systems]
multi(0)disk(0)rdisk(0)partition(1) //rdisk(0)指第一块物理硬盘partition(1)指第一分区\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
把partition(1)改成(2),保存即可。
2,是hal.dll文件的版本不对或者丢失;
由于不同的计算机对应不同的hal.dll文件,但是现在的ghost系统往往出现误判,导致hal.dll文件与实际不符。hal.dll文件和相应的计算机类型:acpi multiprocessor pc halmacpi.dl_ ; acpi uniprocessor pc halaacpi.dl_ ; advanced configuration and power interface(acpi)pc halacpi.dl_ ; mps multiprocessor pc halmaps.dl_ ; mps unitprocessor pc halapic.dl_ standard pc hal.dl_ ; compaq systempro multiprcessor or 100% compatible halsp.dl_。这个可以通过设备管理器的计算机项目可以看到,或者看hal.dll的版本信息。如果由于系统无法进入,无法知道究竟是那种类型。可以逐个测试,哪个能启动就是哪个^_^(笨办法)
解决办法:
(1)从其他机子上复制C:盘根目录下面的系统/隐藏文件,拷到出问题的机子上(可以通过DOS启动盘或者WinPE引导系统)这种方法适合由于断电,死机等异常关机造成的无法引导系统,这时只是引导区根目录下面的引导文件丢失,hal.dll文件并没有问题。
(2)插入XP安装盘重新启动电脑,选择故障恢复控制台。依提示进入winnt目录。
在DOS提示符下输入: expand x:\i386\driver.cab /f:hal.dll c:\windows\system32\(x:为光驱盘符.再次利用 expand 首先将halaacpi.dll拷贝至c:\winindows\system32\,并改名为hal.dll后重新启动电脑,再拷 halacpi.dll(因为hal.dll的源文件名是halacpi.dll).改名(ren)后重启,restart即可
或者尝试进入安全模式,然后再提取文件相对应的文件。
【关于hal.dll丢失,hal.dll损坏问题的解决】
解决"systemroot\\system32\\hal.dll文件非法或该文件已损坏,系统无法启动"
当电脑重新启动进入WinXP时,系统提示:“systemroot\\system32\\hal.dll文件非法或该文件已损坏,系统无法启动”。可以利用将故障恢复控制台来修复损坏的文件。
插入xp安装盘重新启动电脑,选择故障恢复控制台。依提示进入Windows dos目录。
在DOS提示符下输入:expand x:\\i386\\driver.cab /f:hal.dll c:\\windows\\system32\\(x:为光驱盘符.再次利用expand 首先将halaacpi.dll拷贝至c:\\windows\\system32\\,并改名为hal.dll后重新启动电脑,再拷halacpi.dll(因为hal.dll的源文件名是halacpi.dll).改名(ren)后重启,restart即可. 当然也可以在别的机子上expand出hal.dll,然后拷贝到这个机子上.
提示hal.dll丢失也可能是 C: 盘的 boot.ini 文件的问题
boot.ini设置的启动分区不正确当然就找不到hal.dll
我记得我有一次装了双系统
重装windows时发现
不知道怎么在C盘前加了个分区
结果就提示hal.dll丢失,
原因是以前的C盘已经成了现在的D盘,
windows 当然找不到boot.ini,所以提示错误
将前面的分区删除就好了
总之,提示hal.dll丢失,hal.dll损坏不见得就是hal.dll的问题
很有可能是启动设置不正确
关于hal.dll丢失,hal.dll损坏问题的解决
解决"systemroot\\system32\\hal.dll文件非法或该文件已损坏,系统无法启动"
当电脑重新启动进入WinXP时,系统提示:“systemroot\\system32\\hal.dll文件非法或该文件已损坏,系统无法启动”。可以利用将故障恢复控制台来修复损坏的文件。
插入xp安装盘重新启动电脑,选择故障恢复控制台。依提示进入Windows dos目录。并不知道hal.dll文件位于安装光盘的哪一个压缩包中,于是键入如下命令:
expand /G:\i386\driver.cab(G:为光驱盘符),列出Windows安装光盘上的驱动程序CAB压缩包中的所有文件,发现hal.dll在driver.cab压缩包中。

再次利用expand 首先将halacpi.dll拷贝至c:\\windows\\system32\\,并改名为hal.dll后重新启动电脑, 当然也可以在别的机子上expand出hal.dll,然后拷贝到这个机子上.
命令如下:
expand G:\i386\driver.cab /f:halacpi.dll c:\windows\system32\
rename c:\windows\system32\halacpi.dll c:\windows\system32\hal.dll
提示hal.dll丢失也可能是 C 盘的 boot.ini 文件的问题
boot.ini设置的启动分区不正确当然就找不到hal.dll
【遇到了经典的hal.dll丢失问题】
缘起是收到了大老远从荷兰寄过来的Ubuntu 6.06 LTS光盘和贴纸(已经贴在本本上啦),相比之前索取的5.04和自己下载的6.10,至少这一个版本可以在俺的盒子上安装了!带来的一点点hal.dll麻烦不算啥了。
关于这个问题网上有不少误导的帖子,这里予以澄清:
1. 提示hal.dll丢失,99%的情况下都不是hal.dll的问题,表傻乎乎的跑到别的同学的机器上拷贝一个回来,覆盖掉本地的那一个(是的,它在那里),或者使用XP安装光盘恢复:
启动故障恢复控制台;
cd X:\i386(X是你的光驱)
expand hal.dl_ c:\windows\system32\hal.dll
这样做的结果常常是还是会提示同样的错误,即使启动了机器,会有大量的驱动文件丢失。
2. 解决这个问题的方式通常很简单,重新编辑c:\boot.ini。
例如在俺的机器上,在装Ubuntu的过程中修改了分区表,目前Windows所在的分区是hda2,因此只要:
type c:\boot.ini
copy con c:\boot.ini
照着原来的样子,一行一行的输入:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows XP Recovery Console" /cmdcons
^Z
回车,重启。
P.S. 在这个版本的Ubuntu中,自动识别了全部硬件(包括迅驰),自动识别了NTFS分区(虽然是只读的),自动识别了插入的U盘,赞一个!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-03

亲,出现这种情况主要是因为系统引导项出了问题。

1、症状

此问题的具体表现如下图:

2、修复方法

a、进入PE系统打开硬盘分区工具DiskGenius检查一下系统盘C盘是否是活动状态。若不是,右击激活即可。

激活后状态如下图:

b、选择系统盘C盘,点击菜单栏的硬盘--重建主引导项MBR。

c、关闭DiskGenius硬盘分区工具,打开PE桌面上的修复系统引导项的工具(医药箱图标),选择系统所在盘符,开始修复直到修复完成即可。

d、重新启动即可正常进入系统,问题解决。


(PS:系统修复系统引导项之前,要检查一下系统盘是否是活动状态。这点很重要很重要!

就没因为没有注意到这里,所以怎么修复系统引导项都是出现同样的问题。将系统盘激活后问题解决!根本不需要重装系统的。)

第2个回答  2010-10-07
关于hal.dll文件丢失的问题,以下内容为百度知道操作系统分类管理员Ctangel整理,均为个人日

常工作中所遇到并且验证的原因和方法。如需转载请注明出处。
很多时候我们能遇到开机系统无法启动,提示hal.dll丢失的错误。一般这种问题有那么三种

可能性下面一一阐述。
一、hal.dll文件确实丢失
开机提示这文件丢失,找pe进去,打开c:\windows\system32\这个目录发现缺失没有这个文件

,这种情况有可能是误删文件或者杀毒造成的,也有可能非正常关机造成。这个坚决方法比较简单

,找别人机器上的同名文件复制过来就好了。当然如果是严重的病毒造成的,那就够呛能管用,那

时候只能重新做系统了。
二、hal.dll文件并没有丢失,而且大小和别人机器上的一样
开机提示着文件丢失,找pe盘进pe发现这个文件并没有丢失,这种情况有两种可能,一般的兼

容机而且只有一个主分区的机器,很可能是硬件造成的,主要怀疑对象是内存。找其他内存插上测

试。如果是内存的问题,插上没有问题的内存之后就可以正常进入系统了。记住,这时候不要考虑

复制这个文件,你复制了这个文件还会报其他文件丢失的。如果换内存还不能启动,复制该文件后

提示其他文件错误,也可以考虑病毒造成的,开机按F8,选择最后一次正确的配置,然后进系统杀

毒,进不去系统的话那就重新安装吧。
还有一种情况,有些品牌机,会有两个主分区,比如DELL的机器,来的时候有一个47M的隐藏

主分区。以前比较老的一些ghost XP版本安装完后就会提示hal.dll文件丢失.还有人再清理了C盘

文件之后出现这种情况。这种情况是和boot.ini有关。我们打开一般正常机器的boot.ini看一下,

主要有以下内容:

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

看到没,disk(0)rdsk(0)partition(1) 就是说启动的是磁盘0分区1的系统
所以有2个主分区的品牌机才会造成启动的时候失败提示hal.dll丢失的情况,那么我们只需要进PE

改一下位于C盘根目录下的隐藏文件boot.ini的内容就好了,就是把分区1改成分区2,改完就是下

面这样子的,大家可以直接复制下面的内容到你的boot.ini
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional"

/noexecute=optin /fastdetect

改完之后重新启动您的计算机吧,您会发现问题已经解决了。记得以后不要再删这个文件了。
第3个回答  2008-05-28
当电脑重新启动进入WinXP时,系统提示:“systemroot\\system32\\hal.dll文件非法或该文件已损坏,系统无法启动”。可以利用将故障恢复控制台来修复损坏的文件。
插入xp安装盘重新启动电脑,选择故障恢复控制台。依提示进入Windows dos目录。
在DOS提示符下输入:expand x:\\i386\\driver.cab /f:hal.dll c:\\windows\\system32\\(x:为光驱盘符.再次利用expand 首先将halaacpi.dll拷贝至c:\\windows\\system32\\,并改名为hal.dll后重新启动电脑,再拷halacpi.dll(因为hal.dll的源文件名是halacpi.dll).改名(ren)后重启,restart即可
第4个回答  2011-09-05
因以下文件损坏或者丢失,Windows 无法启动;(Windows root)\system32\hal.dll.请重新安装以上文件的拷贝

对电脑新手的回答:1、XP Professional系统 2、XP Professional +一键还原GHOST系统

此问题跟hal.dll无关,是C盘下的boot.ini文件被改写了 (路径:C:\boot.ini )

1、针对XP系统:(XP装在C盘)

(如果你将XP装在其他盘(比如D盘)请将partition(1)改成partition(3) 或者4 ……看你分区多少个了,一共两处。)

用WIN PE进入电脑(u盘、光盘都可以),将C盘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 /usepmtimer

保存,重新启动,若故障依旧,将partition(1)改成partition(2)或partition(3),(一共两处)保存启动。就OK了

2、针对XP系统加一键GHOST还原系统(XP在C盘,GHOST在C盘)

(如果你将XP装在其他盘(比如D盘)请将partition(2)改成partition(3) 或4或……,看你分区多少个了,一共两处。)

用WIN PE进入电脑,将C盘boot.ini文件的属性中的“只读”去掉,写入

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer

保存启动。就OK了
相似回答