hal.dll是系统硬件抽象层的核心文件,在系统运行过程中是处于系统极其严密的保护之下的,所以应该不可能是由于病毒或其它恶意程序造成的。而且也没有听说有这样会删除这个文件的引导型病毒。
因为你更换过几次系统盘,所以应该不是光盘的问题;因为安装后可以正常使用,所以也不是光驱的问题;那么就只剩下硬盘了,另外你在装好系统后是否安装了什么软件?尤其是涉及到系统还原类或虚拟设备类的软件?如果都没有的话,恐怕就是硬盘的问题了,不过我不是很确定,因为你启动后的错误不是相同的,不像是有坏道的表现,你可以试一试找一个硬盘检测工具检测一下。
========================================================
对问题补充的答复:
如果你确定你的硬盘上有坏道的话,就应该立即送修,如果在保修期就换一个,如果坏道不多还好,如果很多的话建议你换掉它。而且即使“修好”了坏道,也不要将重要的东西存在这块硬盘上,因为完全修复坏道是不可能的,最普遍的做法是将有坏道的区域封闭起来不再使用,可是坏道还是会像病毒一样缓缓地扩散开来,当然,速度不会很快,可是难保有一天会扩散出维修时划定的保护区,如果坏道区经常被读写,它会扩散的非常快最终造成硬盘报废。
这里转一下大众硬件2003年的一片文章:
前面我已经提到过,其实返修盘和全新的硬盘还是有差别的,那么差别在哪里呢?很简单,在全新的硬盘中,扇区的物理损坏是在生产过程中产生的;而需要返修的硬盘,扇区物理损坏是在使用过程中产生的。而不同的物理损坏产生环境,直接影响到这个损坏的破坏力大小。
为了说明这个问题,我举一个电镀的过程做例子,虽然不一定完全是这样的,但这确实是材料学和工艺学的范畴,即使是磁盘盘面的加工也逃不出这个范围。如果电镀过程中因为某些原因,导致一些地方的镀层过薄或者根本没有镀上,那么这一部分就是缺陷部分,它会很容易氧化生锈。这部分的生锈会蔓延和扩展到原来镀得好、没有缺陷的部分,但是这个过程是非常慢的,因为这个缺陷是在生产过程中跟镀层一起同时形成的,镀层的边缘还封闭得非常好,所以这个缺陷是内敛性的,它的蔓延和扩展会比较慢。而如果原来的镀层是完好的,后来你用刀子刮去一部分镀层,那么就出现了一个发散性的缺陷。因为在这个缺陷中,你不但破坏了缺陷表面的镀层,而且连完好部分的镀层的边缘也被破坏掉。在这种缺陷中,氧化生锈的蔓延和扩展非常快,很快就可以在完好的部分中产生出一大片氧化生锈的区域。
硬盘盘片的生产原理也是一样的。大家都知道,坏的扇区是会蔓延的,即使封闭了这部分扇区不进行读写,它们同样会在盘面上蔓延。在生产过程中形成的坏扇区,周围的磁介质晶体仍然是均匀的和致密的,物理性质仍然相当稳定,在这样的环境中,坏扇区的蔓延是一个非常缓慢的过程,恐怕即使硬盘的使用寿命到了它还没有蔓延出多远。而在使用过程中因为碰撞、划伤而产生的坏扇区,周围的磁介质晶体是处于破碎和疏松的状态,这样,这个坏扇区的蔓延就会非常快,很可能你刚刚封闭了它不久,它就又蔓延到没有封闭的完好区域去了。由于有这样的潜在不稳定性,所以在北美,一般返修的硬盘都会打上返修标签,用非常便宜的价格出售(大概只有市价的1/2到1/3),甚至有一些公司就干脆把返修盘全部拿到亚洲或者一些第三世界国家的市场去卖了。
对于已经返修的硬盘,由硬盘厂商返修和给外面的维修人员通过软件修复,虽然在理论上是基于同样的原理,但是实际效果还是不一样的。用软件修复,需要硬盘的磁头不断读写每个扇区,以确定此扇区是否确实失去磁能力,这个读写过程可能要循环上百次甚至更多。这样一个个扇区不断地读写下去,花费的时间非常长,譬如MHDD,在默认参数下,随便对一个3.2GB的硬盘作扫描,很可能就需要48小时甚至5天的时间(根据坏盘情况的不同,时间有很大区别),而且必须连续工作不间断。这样对硬盘磁头和盘片本身的损害是非常大的,本来就已经不是好盘了,再经过这样的折腾,就算是修好了,你敢用来装一些有用的数据吗?
如果在硬盘厂商那里返修,他们会使用专门的机器,那些机器采用的是光学原理来对盘片表面查错(具体细节比较巧妙,就不说了,物理或者电子专业的朋友应该都知道),而不是用磁头真正地读写盘片的表面。在这种机器里面,当不同种类的扇区——完好的和有缺陷的:如盘面划伤、磁介质有杂质、磁介质疏松、磁性能不稳定等,通过检测点的时候,会产生不同的反馈光信号,机器会根据反馈的光信号记录下全部有缺陷的扇区记录和相应的扇区位置,编成硬盘缺陷列表。因为不是通过物理磁头读写,所以不但扫描检查的速度飞快,而且对硬盘的盘片伤害会小很多很多。
(ENDS)
所以,如果可能的话,尽量将硬盘返厂修理。
=======================================================
对12.11补充的答复:
你的这块硬盘坏道是比较多的。其实我强烈建议你换个硬盘的,可是说实话谁都不富裕,我也不想被人说是站着说话不腰疼。所以推荐个折中的办法:
我不知道你的D驱动器的坏道情况如何,你可以把你的系统装在D盘,看看会不会出现这样的情况,如果不会,那说明就是坏道的原因,你可以把D盘当作你的系统盘,用MMC里面的磁盘管理里改一下驱动器的盘符就跟以前一样了。然后对于以前的C驱动器,建议你取消它的盘符并停止对其上面文件的读写(直接在磁盘管理中删掉它的盘符就可以了),这样可以尽量减小坏道扩大的速度。这样这块硬盘也许还能多坚持一段时间。
没什么太好的方法了,网上有很多修复坏道的文章,可是我不是很赞同你去试用那些软件。毕竟PC3000之类的程序不是很好找,而且如果是逻辑坏道还好说,若是物理坏道的话基本还是没什么办法。——而且,太慢了,一次扫描几个甚至几十个小时。
从一个硬盘问题的文章里找到了另一个解决办法,可以节省一些空间:
(小技巧:加入坏道列表和隐藏分区这两种方法在效果上的区别有两点,第一是隐藏分区方式会减少硬盘的可使用容量,而加入坏道列表则不会;第二,在坏道比较分散的情况下,需要使用多个隐藏分区才能全部屏蔽坏道,造成分区过多,影响硬盘使用效果;第三,坏道列表的数量是有限制的,坏道数量不能超过一定的值,如果坏道数量大而相对集中,隐藏分区不失为一种好办法。这里介绍另外一种折中的方式,类似于隐藏分区,但又不会因为分区过多而影响使用。不管三七二十一,先按照你自己的需要对有坏道的硬盘分好区,然后准备一个500KB左右大小的文件——我觉得一张JPG图片就不错,不断复制,生成许多同样的副本,用编号来为这些文件命名,从1开始一直下去——用ACDSee的批量编号命名功能就很好。然后,开始一个一个复制到有坏道的硬盘里面去,碰到有咔咔声响、或者复制速度突然变得很慢的地方,就是坏道了,记下当时这个文件的编号,如此不断继续,一个分区完了就进行另一个分区。把整个硬盘都填满以后,所有被记下编号的文件就是硬盘坏道的地方了,把这些文件设置成“只读”、“隐藏”,其他全部删除。这样,只要你不去动这些剩下的文件,磁头就不会去动那些个坏道了,非常方便,比隐藏分区要好。如果你的系统设置是可以看到隐藏文件的,而你又恰恰是一个完美主义者,觉得这些文件的存在还是太碍事,那么新建一个文件夹,把文件都拖到里面去,用超级兔子之类的工具隐藏掉这个文件夹,那就“整个世界都清净了”。)
你自己考虑一下吧,你也可以试着看一下其它的逻辑驱动器里有多少坏道,太多的话就换个硬盘吧,省得日后像现在这样丢失一些重要数据。
我能说的就这么多了,祝你好运。
这个是由于C盘根目录下的boot.ini文件非法,导致默认从C:\Windows启动,但是又由于你的Windows XP没有安装在C盘,所以系统提示找不到HAL.DLL文件。启动因而失败。解决方法是重新编辑Boot.ini文件。
1)、使用Win9X启动盘启动,使用EDIT.EXE命令编辑这个文件。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文件的内容,保存为Boot.ini文件即可。
2)、使用COPY CON命令创建一个Boot.ini文件。在DOS下输入Copy Con C:\boot.ini以后回车。然后按照Boot.ini文件的格式输入,每输入一行敲一次回车键,当全部内容输入完毕以后,按CTRL+Z,屏幕上会看到^Z的提示。这个时候再敲一次回车,系统会提示1 file(s) copied.这就表示创建成功了。
3)、使用故障恢复控制台里面的bootcfg命令。
4)、在别的电脑上创建好以后,拷贝到受损电脑的C盘根目录上覆盖源文件即可。
前面我已经提到过,其实返修盘和全新的硬盘还是有差别的,那么差别在哪里呢?很简单,在全新的硬盘中,扇区的物理损坏是在生产过程中产生的;而需要返修的硬盘,扇区物理损坏是在使用过程中产生的。而不同的物理损坏产生环境,直接影响到这个损坏的破坏力大小。
为了说明这个问题,我举一个电镀的过程做例子,虽然不一定完全是这样的,但这确实是材料学和工艺学的范畴,即使是磁盘盘面的加工也逃不出这个范围。如果电镀过程中因为某些原因,导致一些地方的镀层过薄或者根本没有镀上,那么这一部分就是缺陷部分,它会很容易氧化生锈。这部分的生锈会蔓延和扩展到原来镀得好、没有缺陷的部分,但是这个过程是非常慢的,因为这个缺陷是在生产过程中跟镀层一起同时形成的,镀层的边缘还封闭得非常好,所以这个缺陷是内敛性的,它的蔓延和扩展会比较慢。而如果原来的镀层是完好的,后来你用刀子刮去一部分镀层,那么就出现了一个发散性的缺陷。因为在这个缺陷中,你不但破坏了缺陷表面的镀层,而且连完好部分的镀层的边缘也被破坏掉。在这种缺陷中,氧化生锈的蔓延和扩展非常快,很快就可以在完好的部分中产生出一大片氧化生锈的区域。
硬盘盘片的生产原理也是一样的。大家都知道,坏的扇区是会蔓延的,即使封闭了这部分扇区不进行读写,它们同样会在盘面上蔓延。在生产过程中形成的坏扇区,周围的磁介质晶体仍然是均匀的和致密的,物理性质仍然相当稳定,在这样的环境中,坏扇区的蔓延是一个非常缓慢的过程,恐怕即使硬盘的使用寿命到了它还没有蔓延出多远。而在使用过程中因为碰撞、划伤而产生的坏扇区,周围的磁介质晶体是处于破碎和疏松的状态,这样,这个坏扇区的蔓延就会非常快,很可能你刚刚封闭了它不久,它就又蔓延到没有封闭的完好区域去了。由于有这样的潜在不稳定性,所以在北美,一般返修的硬盘都会打上返修标签,用非常便宜的价格出售(大概只有市价的1/2到1/3),甚至有一些公司就干脆把返修盘全部拿到亚洲或者一些第三世界国家的市场去卖了。
对于已经返修的硬盘,由硬盘厂商返修和给外面的维修人员通过软件修复,虽然在理论上是基于同样的原理,但是实际效果还是不一样的。用软件修复,需要硬盘的磁头不断读写每个扇区,以确定此扇区是否确实失去磁能力,这个读写过程可能要循环上百次甚至更多。这样一个个扇区不断地读写下去,花费的时间非常长,譬如MHDD,在默认参数下,随便对一个3.2GB的硬盘作扫描,很可能就需要48小时甚至5天的时间(根据坏盘情况的不同,时间有很大区别),而且必须连续工作不间断。这样对硬盘磁头和盘片本身的损害是非常大的,本来就已经不是好盘了,再经过这样的折腾,就算是修好了,你敢用来装一些有用的数据吗?
如果在硬盘厂商那里返修,他们会使用专门的机器,那些机器采用的是光学原理来对盘片表面查错(具体细节比较巧妙,就不说了,物理或者电子专业的朋友应该都知道),而不是用磁头真正地读写盘片的表面。在这种机器里面,当不同种类的扇区——完好的和有缺陷的:如盘面划伤、磁介质有杂质、磁介质疏松、磁性能不稳定等,通过检测点的时候,会产生不同的反馈光信号,机器会根据反馈的光信号记录下全部有缺陷的扇区记录和相应的扇区位置,编成硬盘缺陷列表。因为不是通过物理磁头读写,所以不但扫描检查的速度飞快,而且对硬盘的盘片伤害会小很多很多。
提示hal.dll损坏或丢失,实际上该文件并不一定不存在,可以说,拷个文件回去system32里,根本是不可以解决的.出现这个错误的原因是boot.ini文件出错,导致引导不了机器从指定的路径启动,那样系统搜索其他的路径,而其他路径上是没有hal.dll文件的,就会提示这个错误.一般的解决办法是进入故障恢复控制台,用fixboot命令,如果这样修复不了boot.ini,就用bootcfg/add来重建boot.ini。
这个是由于C盘根目录下的boot.ini文件非法,导致默认从C:\Windows启动,但是又由于你的Windows XP没有安装在C盘,所以系统提示找不到HAL.DLL文件。启动因而失败。解决方法是重新编辑Boot.ini文件。
1)、使用Win9X启动盘启动,使用EDIT.EXE命令编辑这个文件。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文件的内容,保存为Boot.ini文件即可。
2)、使用COPY CON命令创建一个Boot.ini文件。在DOS下输入Copy Con C:\boot.ini以后回车。然后按照Boot.ini文件的格式输入,每输入一行敲一次回车键,当全部内容输入完毕以后,按CTRL+Z,屏幕上会看到^Z的提示。这个时候再敲一次回车,系统会提示1 file(s) copied.这就表示创建成功了。
3)、使用故障恢复控制台里面的bootcfg命令。
4)、在别的电脑上创建好以后,拷贝到受损电脑的C盘根目录上覆盖源文件即可。
还有个办法,你用个u盘从别个那里拷一个 hal.dll文件,然后插在你的电脑上,再用一张系统安装盘放进光驱。在第一选择里,选择修复,就可以进入doc里了。然后从a: b: 一直试下去,看到了u盘就要吧用
copy hal.dll c:\windows\system32\hal.dll 就可以了,
原理是在安装系统的时候,u盘也会被检测到,就可以用了。软盘也可以。但你应该不会有软驱
这个是由于C盘根目录下的boot.ini文件非法,导致默认从C:\Windows启动,但是又由于你的Windows XP没有安装在C盘,所以系统提示找不到HAL.DLL文件。启动因而失败。解决方法是重新编辑Boot.ini文件。
1)、使用Win9X启动盘启动,使用EDIT.EXE命令编辑这个文件。启动EDIT.EXE以后只要按照正确的格式输入Boot.ini文件的内容,保存为Boot.ini文件即可。
2)、使用COPY CON命令创建一个Boot.ini文件。在DOS下输入Copy Con C:\boot.ini以后回车。然后按照Boot.ini文件的格式输入,每输入一行敲一次回车键,当全部内容输入完毕以后,按CTRL+Z,屏幕上会看到^Z的提示。这个时候再敲一次回车,系统会提示1 file(s) copied.这就表示创建成功了。
3)、使用故障恢复控制台里面的bootcfg命令。
4)、在别的电脑上创建好以后,拷贝到受损电脑的C盘根目录上覆盖源文件即可。
看原因像是硬盘有坏道,因而丢失了系统文件!
建议你换个硬盘试试,或者是用软件屏蔽一下磁盘坏道