windows2000启动故障

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows2000启动故障相关的知识,希望对你有一定的参考价值。

我家的windows2000操作系统现在不知怎的进不去了,系统自检后出现操作系统选择菜单,因为我家还同时装着XP操作系统,选择进入WIN2000之后出现以下文字:

因以下文件的损坏或者丢失,windows无法启动:
<windows root>\system32\hal.dll
请重新安装以上文件的拷贝.

奇怪的是我查了查system那个目录里面有hal.dll那个文件,但我不能确定它是不是已经损坏了,后来我又从备份文件里复制了一份,结果还是进不去系统。我这儿的windows2000是英文版的,我还想知道这个hal.dll文件是做什么用的。

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]http://www.driverpacks.net/DriverPacks/download.php?pag=m[/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_5289=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_3164&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_3164&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
参考技术A hal.dll出错解决办法
hal.dll是WinNT内核(包括WinXP)操作系统卷的核心驱动,通常由安装多个操作系统而造成损坏,如果系统还能启动,可以从安装盘中提取该文件进行恢复,否则个别磁盘分区可能无法使用。如果系统无法正常启动,特别是系统分区使用了NTFS,恐怕就只有重新安装操作系统或者使用控制台修复了

插入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 - hal.dll - DLL文件信息

DLL 文件: hal 或者 hal.dll
DLL 名称: Microsoft Windows Hardware Abstraction Layer DLL

描述:
hal.dll是Windows硬件提取层模块,该用于用于解决硬件的复杂性。

属于: Microsoft Windows Operating System
系统 DLL文件: 是

常见错误: File Not Found, Missing File, Exception Errors
计算机的描述文字及对应的 HAL 文件
计算机的描述文字 对应的 HAL 文件

ACPI Multiprocessor PC halmacpi.dl_

ACPI Uniprocessor PC halaacpi.dl_

Advanced Configuration and Power halacpi.dl_
Interface (ACPI) PC

MPS Multiprocessor PC halmps.dl_

MPS Uniprocessor PC halapic.dl_

Standard PC hal.dl_

Compaq SystemPro Multiprocessor or halsp.dl_
100% Compatible
安全等级 (0-5): 0
间谍软件: 否
广告软件: 否

升级后可能遇到的故障- -从Windows 2012升级到2016案例之3

3.1 Active Directory域控制器不能使用

现象:Active Directory无法访问,Active Directory用户和计算机不能使用,找不到域控制器。

解决方法:重新启动AD DS服务即可。

这应该算是一个比较严重的故障,经过我测试,如果升级之后的Windows Server 2016域控制器,重新启动之后,AD DS服务状态虽然是"已经启动",但AD服务不能使用,只能手动重新启动。如果将AD DS的服务设置为"延迟启动"也不行。而在我以前的域控制器升级中,从来没有碰到过类似的问题。

当前我只是在一个环境中升级了Windows Server 2012 R2,其他单位生产环境还没有升级,这个问题是偶然发生还是所有系统都有,还不得而知。

(1)在将当前的环境升级到Windows Server 2016之后,在检查到DFS服务的时候,发现无论是"命名空间"还是"复制"都是红色的"X"号,如图3-1所示。

技术分享

图3-1 DFS不能使用

(2)在检查"Active Directory用户和计算机"时,提示"找不到命名信息",如图3-2所示。

技术分享

图3-2 找不到命名信息

(3)在"服务"中右击"Active Directory Domain Services",在弹出的快捷菜单中选择"重新启动",如图3-3所示。

技术分享

图3-3 重新启动AD DS

(4)在弹出的"停止其他服务"对话框中,单击"是"按钮,如图3-4所示。

技术分享

图3-4 停止其他服务

(5)等AD DS及其相关服务重新启动之后,Active Directory正常,DFS亦恢复正常,如图3-5所示。

技术分享

图3-5 Active Directory用户和计算机正常

在升级到Windows Server 2016之后,"RD授权管理器"需要重新激活,打开"RD授权管理器"可以看到"LS己升级,需要重新激活"的提示,如图3-6所示。

技术分享

图3-6 提示需要重新激活

右击服务器,在弹出的快捷菜单中选择"高级→重新激活服务器",如图3-7所示。

技术分享

图3-7 重新激活服务器

在"所需的信息"对话框中,在"原因"下拉列表中选择"许可证服务器己得到升级",如图3-8所示。

技术分享

图3-8 许可证服务器己得到升级


3.2 文件共享服务器不能使用

在升级之后,mh09(成员服务器)的共享服务不能使用(网络中其他计算机不能使用mh09提供的"共享文件夹"服务)。经过检查发现"网络发现"没有启用。

(1)打开"网络和共享中心",单击"更改高级共享设置"链接,如图3-9所示。

技术分享

图3-9 更改高级共享设置

(2)在"网络发现"中看到当前设置为"关闭网络发现",选择"启用网络发现"单击"保存更改",如图3-10所示。在设置之后,再次单击"更改高级共享设置",发现设置仍然是"关闭网络发现",不能启用网络发现。

技术分享

图3-10 启用网络发现

在"服务"中经过检查发现以下这些服务没有启动(启动类型为"禁用")。

Function Discovery Resource Publication

SSDP Discovery

UPnP Device Host

将这三项服务启动类型更改为"自动(延迟启动)",如图3-11所示,然后启动这三项服务,再次打开"更改高级共享设置",可以看到"启用网络发现"已经启用。

技术分享

图3-11 更改启动类型

3.3 升级域功能级别

最后等所有问题都解决之后,切换到域控制器,将域功能级别提升到Windows Server 2016。

(1)在"Active Directory用户和计算机"中,右击域控制器,在弹出的快捷菜单中选择"提升域功能级别",如图3-12所示。

技术分享

图3-12 提升域功能级别

(2)在"提升域功能级别"对话框中,在"选择可用域功能级别"下拉列表中选择"Windows Server 2016",然后单击"提升"按钮,如图3-13所示。

技术分享

图3-13 提升域功能级别

(3)在弹出的对话框中单击"确定"按钮,如图3-14所示。

技术分享

图3-14 确定提升

(4)在弹出的对话框中单击"确定"按钮,如图3-15所示。

技术分享

图3-15 提升完成


本文出自 “王春海的博客” 博客,转载请与作者联系!

以上是关于windows2000启动故障的主要内容,如果未能解决你的问题,请参考以下文章

Win7电脑开机无法正常启动怎么办

CentOS 6 系统无法开机故障修复

CentOS 6 系统无法开机故障修复

linux启动常见故障

记一次启动故障

Windows Process Activation Service (WAS) 在启动工作进程为应用程序池提供服务时遇到故障