- ·上一篇文章:XP开机时DLL出错提示怎么办
- ·下一篇文章:无缘无故的Rundll32程序运行无效了
装了Ubuntu之后,用DiskGen重写硬盘引导区,然后在Windows中安装Grub,通过编写Menu.lst来引导Ubuntu。
今天启动后发现,不能进入Ubuntu,提示C:\windows\system32\hal.dll损坏。
于是尝试进入WindowsXP,发现可以进入。查看C:\windows\system32\hal.dll,存在,从ghost文件中提取该文件覆盖。
重启后,发现仍然不能进入Ubuntu系统,仍提示提示C:\windows\system32\hal.dll损坏。
看来并非C:\windows\system32\hal.dll损坏。
通过一番检查发现是boot.ini文件中有
c:\grldr="Ubuntu"
C:\GHLDR="卉枫一键还原"
其中grldr和GHLDR是两个通过XP系统引导功能来引导Grub的文件。检查发现是grldr文件丢失。添加grldr文件后,发现Ubuntu可以正常进入。
至此问题解决
提示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盘也会被检测到,就可以用了。软盘也可以。但你应该不会有软驱。