hal.dll损坏后造成Ubuntu不能引导的问题

装了Ubuntu之后,用DiskGen重写硬盘引导区,然后在Windows中安装Grub,通过编写Menu.lst来引导Ubuntu。

今天启动后发现,不能进入Ubuntu,提示C:\windows\system32\hal.dll损坏。

于是尝试进入WindowsXP,发现可以进入。查看C:\windows\system32\hal.dll,存在,从ghost文件中提取该文件覆盖。

重启后,发现仍然不能进入Ubuntau系统,仍提示提示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盘也会被检测到,就可以用了。软盘也可以。但你应该不会有软驱。

你可能感兴趣的:(c,windows,ubuntu,dos,XP,System)