hal.dll丢失怎么办

发布网友 发布时间:2022-04-20 11:41

我来回答

4个回答

热心网友 时间:2023-09-14 04:57

你好 : 先提个醒这问题还是很麻烦的

hal.dll 是电源管理配置文件 怎么没人提到过这个
(郁闷 都不认识还怎么解决问题)
别直接用什么HAL.DL直接替换,再重命名hal.dll
因为DL的文件要转换过后才能用 直接替换光驱很可能也会不工作的 那恢复起来就麻烦多了

有 2种方法:
1:直接安装个一键恢复 每次开机自动恢复
2:不过要是光驱已经不工作的话就要彻底恢复了 这就涉及到系统封装的问题 比较麻烦 当然要找专业人士了
虽然说这些 可能解决不了什么问题 只让你少走弯路 直接找专业的做个封装的系统 就是干净的系统 主要也是跟hal.dll很有关系的

不过有兴趣可以看下下面的资料 :

突破HAL*

Longhorn的启示
Windows Server 2003之前,Sysprep受到“必须源计算机与目标计算机有着相同的HAL”的*,在HAL不相同的时候,不能正确判断计算机电源管理模式。
从2003年Windows Server 2003发布到2006年底Windows Vista的发布中的3年中,微软在研发Vista的时候,发布了以内部研发编号命名的Windows Longhorn测试版。
Windows Longhorn与以往的Windows在启动时有着一定的区别。
第一,NTLDR 有一定区别,提供了“/detecthal” 接口;
第二,BOOT.INI也支持“/detecthal”参数,以实现与NTLDR的结合;
第三,INF文件夹中有了“dtecthal.inf”, 提供各种HAL类型检测的参数说明。
有了这三个文件,可以让计算机在开机启动时即自动检测 HAL,从而可以自动判断电源管理选项。

移植Longhorn的HAL判断
现今大多数人还是以使用Windows 2000/XP为主,所以,即使Longhorn的HAL判断再怎么强悍,不能移植到2000/XP中,也就不能使用。
以下是在2000/XP总移植并使用Longhorn的HAL判断的具体方法:
1>从系统中提取相应的HAL文件包:(WIN2000在SP4.CAB、WINDOWS XP SP2在SP2.CAB中)
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe
提取完毕后将hal.dll更名为halstnd.dll,ntoskrnl.exe更名为ntkrnlup.exe;
2>将上述相应的HAL文件包拷贝到准备封装的系统的%Windir%\SYSTEM32\下;
3>将Longhorn的“dtecthal.inf”拷贝到准备封装的系统的%Windir%\INF\下;
4>修改C:\BOOT.INI
在准备封装的系统后面加上 /DETECTHAL参数如:
[boot loader]
timeout=0
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" /fastdetect /detecthal
5>将LONGHORN版本的NTLDR拷贝到从C:\,覆盖原有的NTLDR;
6>删除准备封装的系统的HAL信息,删除注册表中以下键值,如果提示权限不足不能删除,则可用setacl.exe来修改权限再删除。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL
至此,突破了HAL*的系统就已经准备完毕。由于这个技术本身就出自微软,所以对电源管理的判断几乎是100%。
突破HAL*的系统可以部署在任何HAL环境的计算机上,不再有“源计算机和目标计算机需有相同的HAL”的*。

Copy code
突破S&R&S实例 (微软方法)

1>收集需要的srs驱动,方便期间,直接下载DPS提供的massstorage 驱动:
[url][/url]
2>解压驱动到c:\drivers 。
3>编辑sysprep.ini 加入以下内容
InstallFilesPath=C:\sysprep\i386
然后在[SysprepMassStorage]段中添加需要的串口磁盘驱动,根据DPS驱动包的说明书,一般只集成Intel、nVIDIA、Uli、VIA、SiS、AMD的串口磁盘驱动即可,在对应的驱动包中的inf文件中,可以获得硬件的即插即用ID。
例如:
[SysprepMassStorage]
PCI\VEN_1022&DEV_7469=c:\drivers\m\am\AMDEIDE.inf
PCI\VEN_1002&DEV_4349=c:\drivers\m\at\atiide.inf
PCI\VEN_10B9&DEV_5215=c:\drivers\m\au\1\ALIIDE.INF
PCI\VEN_10B9&DEV_5219=c:\drivers\m\au\1\ALIIDE.INF
PCI\VEN_10B9&DEV_5229=c:\drivers\m\au\1\ALIIDE.INF
PCI\VEN_10B9&DEV_5228=c:\drivers\m\au\2\m5228.INF
PCI\VEN_10B9&DEV_5281=c:\drivers\m\au\2\m5281.inf
PCI\VEN_10B9&DEV_5287=c:\drivers\m\au\3\ulisata.inf
PCI\VEN_10B9&DEV_5288=c:\drivers\m\au\4\ULISATA.INF
PCI\VEN_10B9&DEV_52=c:\drivers\m\au\5\ULISATA.INF
PCI\VEN_8086&DEV_2652&CC_0104=c:\drivers\m\in\1\iastor.inf
PCI\VEN_8086&DEV_27C3&CC_0104=c:\drivers\m\in\1\iastor.inf
PCI\VEN_8086&DEV_2682&CC_0104=c:\drivers\m\in\1\iastor.inf
PCI\VEN_8086&DEV_27C6&CC_0104=c:\drivers\m\in\1\iastor.inf
PCI\VEN_8086&DEV_2822&CC_0104=c:\drivers\m\in\1\iastor.inf
PCI\VEN_8086&DEV_2652&CC_0106=c:\drivers\m\in\1\iaahci.inf
PCI\VEN_8086&DEV_2653&CC_0106=c:\drivers\m\in\1\iaahci.inf
PCI\VEN_8086&DEV_27C1&CC_0106=c:\drivers\m\in\1\iaahci.inf
PCI\VEN_8086&DEV_27C5&CC_0106=c:\drivers\m\in\1\iaahci.inf
PCI\VEN_8086&DEV_2681&CC_0106=c:\drivers\m\in\1\iaahci.inf
PCI\VEN_8086&DEV_2821&CC_0106=c:\drivers\m\in\1\iaahci.inf
PCI\VEN_8086&DEV_24DF&CC_0104=c:\drivers\m\in\1\O\iastor.inf
PCI\VEN_8086&DEV_25B0&CC_0104=c:\drivers\m\in\1\O\iastor.inf
PCI\VEN_10DE&DEV_008E=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_00D5=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_00EE=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_00E3=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_0036=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_003E=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_0054=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_0055=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_0266=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_0267=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_036F=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_037E=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_037F=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_03F6=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_03F7=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_10DE&DEV_03E7=c:\drivers\m\N\TM\nvatabus.inf
PCI\VEN_1039&DEV_0181=c:\drivers\M\SI\1\SISRaid1.INF
PCI\VEN_1039&DEV_0180=c:\drivers\M\SI\2\SISRaid.INF
PCI\VEN_1039&DEV_0182=c:\drivers\M\SI\3\SISRaid2.INF
PCI\VEN_1106&DEV_3349&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_6287&CC_0106=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_0591&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_3249&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_3149&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_31&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_0581&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_7372&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF
PCI\VEN_1106&DEV_4149=c:\drivers\M\V\2\viapide.inf
PCI\VEN_1106&DEV_3149&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_0591&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_5337&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_3349&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_5287&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_31&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_0581&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_1106&DEV_5324&CC_0101=c:\drivers\M\V\3\vminiide.inf
PCI\VEN_104B&DEV_1040=c:\drivers\M\VM\vmscsi.inf
4>在c:\sysprep 目录下建立 i386\$oem$目录 ,在c:\sysprep\i386\$oem$ 中建立cmdlines.txt 文件,在文件中加入
[Commands]
"c:\sysprep\sysprep -clean"
这样就会在最小化安装的过程中禁用所有因为在目标计算机上不存在而未安装的大量存储控制器。
至此,一个突破了S&R&S*的系统映像准备完毕。
执行sysprep进行封装,在封装的过程中,系统会自动安装 srs驱动。在最小化安装的时候会删除多余的驱动。

上述的方法你掌握了,你即突破了关键性技术问题!下面老事重谈,罗嗦一遍做个总结!

Copy code
1、安装WindowsXP

2、安装软件(可选)
推荐安装OFFICE 2003中的ACCESS、EXCEL、WORD三组件的最小安装,智能ABC 5.22破解,WINRAR、WINDOWS优化大师、FLASHGET、BITCOMIT、暴风影音、ACDSEE

3、保存本用户的输入法设置
打开 控制面板-区域和语言选项-高级 将 “将所有设置应用于当前用户帐户和默认用户配置文件(D)” 选框选上,解决安装的输入法在系统还原后,系统托盘没显示的问题。

4、保存文件到系统目录(这里提到的DD我会提供给大家的!)
解压缩AutoHAL.rar
复制里面的halacpi.dll、halapic.dll、halmps.dll、halaacpi.dll、halmacpi.dll、halstnd.dll、ntkrnlmp.exe、ntkrnlpa.exe、ntkrpamp.exe、ntkrnlup.exe十个文件到\WINDOWS\SYSTEM32\
复制dtecthal.inf到\WINDOWS\INF\
复制run.bat到\WINDOWS\
复制boot.ini、bootXP.ini、ntldr、ntldrXP到系统根目录

解压缩sysprep.rar到根目录\sysprep\
重新执行setupmgr.exe按照提示制作sysprep.inf文件(也可以沿用里面包含的sysprep.inf)

5、系统减肥计划
1、关闭系统还原
2、关闭系统休眠
3、转移虚拟内存页面文件
4、清理磁盘,删除系统和IE临时文件
在“Internet选项”中删除Internet临时文件和脱机内容,删除Cookies,清除历史记录。
删除 C:\Documents and Settings\Administrator\Local Settings\Temp\ 下所有文件。
删除 C:\Program Files\UPDATE\*.*
删除 C:\Program Files\InstallShield Installation Information\*.*
删除 C:\Program Files\WindowsUpdate\*.*
删除 C:\WINDOWS\Temp 下所有文件
删除 C:\WINDOWS 下所有以“$NtUninstall*$”为命名格式的隐藏目录
删除 C:\WINDOWS 下所有以KB8打头的和Q打头的.log文件
删除 C:\WINDOWS\SoftwareDistribution\Download\*.*
删除 C:\WINDOWS\Installer\*.*
删除 C:\WINDOWS\Downloaded Installations\*.*
5、移动我的文档至 D:\My Documents(可选)

6、删除、更改系统硬件驱动

做封装所用的计算机中所使用的驱动程序,在被部署的计算机上大多数不再有用(除非都被部署在相同硬件配置的计算机上)。所以,我们要一一删除源计算机中的这些驱动,以免残留的驱动造成部署的不正常。
卸载驱动,在“设备管理器”(我的电脑,属性,硬件,设备管理器)中列出所有设备,然后一一卸载。

在设备管理器中,可以看到当前正在使用的所有硬件设备。
【1、更改“IDE ATA/ATAPI控制器”为“标准双通道 PCI IDE 控制器”
2、更改计算机电源管理模式“Advanced Configuration Power Interface(ACPI)”为 “Standard PC”
【1和2不懂看这里:
、更改IDE ATA/ATAPI控制器
点击“更新驱动程序”-“从列表或指定位置安装”-“不要搜索,我要选择自己的驱动”改成“标准的双通道PCI IDE控制器”
2、再把“计算机”里的内容改为“Standard PC”
点击“更新驱动程序”-“从列表或指定位置安装”-“不要搜索,我要选择自己的驱动”改成“Standard PC”】

3、卸载网络适配器
4、卸载通用串行总线控制器
5、卸载声音、视频游戏控制器
6、卸载监视器
7、卸载显示卡】(注意先后顺序!)

7、清理信息
1、清理“事件查看器”内信息
2、清理“菜单”访问记录
3、清理IE缓存信息

8、运行\sysprep\DllCacheManager.exe<在sysprep.rar里包含>备份DLL文件

9、运行“磁盘碎片整理程序”

10、执行sysprep.exe封装系统

11、运行regedit,查找hal项,删除***_HAL<acpi_hal>注册表项。删除时,在要删除的项上点右键,然后选择“权限” ,为当前用户添加“完全控制”权限即可

【11不懂看这里:删除HAL文件一项具体操作过程:
1、点“开始” - “运行” - 输入“regedit”
2、选中“HKEY_LOCAL_MACHINE”
3、选择“编辑” - “查找” - “查看”选项选择上“项”就可以 - “全字匹配”钩去掉 - 选“查找”
4、不断的查找,一直找到含有 “***_HAL”字样的地方,一般在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root”和“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\”中都有,大概有四个。
5、项上点右键,然后选择“权限” ,为当前用户添加“完全控制”权限。
6、删除有“***_HAL”字样的项,几个都删除才可以。】

12、关闭系统,制作GHOST

热心网友 时间:2023-09-14 04:58

hal.dll是在system32下的系统文件吧其实这个文件并不一定是丢失了有可能是boot.ini出错了 我转载一个朋友回答的答案希望你能解决该问题
以下内容为转载:
提示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盘根目录上覆盖源文件即可。

http://blog.sina.com.cn/s/blog_4fe669450100a3lq.html

怎么修复你也的有个启动盘啊

热心网友 时间:2023-09-14 04:58

可以这样:
把旧的硬盘接在新电脑上后,一键备份得到文件.GHO,然后你可以以这个备份文件还原到你想恢复的系统分区上即可解决启动文件丢失的问题

热心网友 时间:2023-09-14 04:59

不想麻烦就重装,

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com