windows 硬件抽象层问题

转自微软
如果想解决GHOST完系统后进不了系统、黑屏、重新启动等问题出现的问题,请看下面的内容。微软已经用windows2000这个具体的例子给我们说的很清楚了.具体的修改请参阅Climbing的大作:《Windows 2000XP2003操作系统所支持的计算机类型(HAL)及相关内核文件的对应关系》,相关的windowsXP/2003的电源管理修改是和这个 2000差不多的。


概要
在 Windows 2000 中,出现与“硬件抽象层”(HAL) 相关的问题可能是因为检测错误、“高级配置和电源接口”(ACPI)“基本输入/输出系统”(BIOS) 过时或不兼容,或者错误安装或手动安装了某种计算机类型。有几种方法可以解决这些问题。本文介绍了一些方法,可用于解决与 HAL 相关的问题。

备注:在本文中,“计算机类型”和“HAL”这两个词的含义是相同的,可以互换。
更多信息
确定计算机类型
确定您使用的计算机类型:

1. 单击开始,指向设置,单击控制面板,然后双击系统。
2. 单击硬件选项卡,然后单击设备管理器,查看在计算机分支下列出的内容。下面是支持的计算机类型的列表。

“标准”计算机下 HAL 的值可能包括:

ACPI Multiprocessor PC
ACPI Uniprocessor PC
Advanced Configuration and Power Interface (ACPI) PC
MPS Multiprocessor PC
MPS Uniprocessor PC
Standard PC
“Compaq”下的 HAL 可能值包括:

Compaq SystemPro Multiprocessor or 100% Compatible
“SGI”下的 HAL 可能值包括:

Silicon Graphics Visual Workstation
查看或更改已安装的计算机类型
查看或更改已安装的计算机类型:

警告:请注意,在任何情况下,都不应该尝试从 ACPI HAL 更改为标准 HAL,或从标准 HAL 更改为 ACPI HAL。这样会导致计算机无法正常启动或根本无法启动。这是因为当前要加载的“即插即用”设备树是用于 ACPI 的,它不会重建或还原为标准的 HAL“即插即用”设备树。因此(设备树结构差异巨大),在计算机重新启动之后,系统无法知道硬件有变化,也就无法提供启动设备的位置。 Microsoft 不建议也不支持此过程,因为它会导致丢失数据。

1. 单击开始,指向设置,单击控制面板,然后双击系统。
2. 单击硬件选项卡,然后单击设备管理器,查看在计算机分支下列出的内容。例如,可能会列出“ Standard PC”(检测到的 Windows 2000 在计算机上安装的计算机类型)或“Advanced Configuration Power Interface (ACPI) PC”这样的项。
3. 要更改已安装的计算机类型,请单击驱动程序选项卡,然后单击更新驱动程序。

备注:只有在从“ Standard PC”HAL 更改为“ Standard Multiprocessor PC”HAL 时,才能从“设备管理器”的计算机类型下更改或更新 HAL,因为从 ACPI HAL 更改为标准 HAL 会导致无法启动计算机。
如果在安装 Windows 2000 之后安装了错误的计算机类型 (HAL),因而无法正常启动计算机,请进行紧急修复:

1. 使用 Windows 2000 安装软盘或 Windows 2000 CD-ROM(如果您的计算机支持从 CD-ROM 启动),启动计算机。
2. 在“欢迎使用安装程序”屏幕上,按 R 键来进行修复。
3. 在Windows 2000 修复选项屏幕上,按 R 键,以使用紧急修复过程进行修复。
4. 按 M 键可手动选择修复选项,并且一定要选中“验证 Windows 2000 系统文件”和“检查启动环境”功能,或者,按 F 键可运行所有修复选项。
5. 在完成之后,就应该恢复最初安装的 HAL 和关联文件。取出 CD-ROM 或软盘,然后重新启动计算机。

备注:在“设备管理器”中仍然可以看到错误安装的计算机类型。
6. 要确保在设备管理器中看到正确的计算机类型,请在重新启动计算机后,按 F8 键,选择已知的上一次成功配置,然后按 ENTER 键。
7. 单击相应的硬件配置文件(如果存在多个配置文件)。在硬件配置文件上,单击配置恢复,按 ENTER 键,然后 Windows 2000 就可以启动了。
从 ACPI HAL 更改为标准 HAL 的最佳方法是:以升级的形式重新安装 Windows 2000:

1. 以升级形式启动 Windows 2000 安装程序。
2. 要自动禁用 ACPI 支持,并允许 Windows 2000 自动检测(或手动更改和安装)计算机支持的正确(标准 HAL)计算机类型,请使用以下方法之一:



• 自动检测计算机类型:

在安装程序生成以下参考性消息时,按 F7 键:

Press F6 if you need to install a third party SCSI or RAID driver.
备注:按 F7 键时,您看不到指示正在执行自动检测的可视指示器;请继续按正常方式安装,直至完成。
• 手动选择计算机类型:

按 F5 键,然后通过使用以下列表手动选择正确的“标准”计算机类型:
i386 源文件 计算机类型
*hal.dll Compaq SystemPro Multiprocessor or 100% Compatible
*halapic.dll MPS Uniprocessor PC
*halapic.dll MPS Multiprocessor PC
*hal.dll Standard PC
*halborg.dll SGI mp
备注:要从“ Standard PC”HAL 更新为“MPS Multiprocessor PC”HAL,您不必使用重新安装的方法,而是可以使用“设备管理器”中的“更新驱动程序”功能来执行此操作。但是,要将使用标准计算机类型的计算机改为使用 ACPI HAL 计算机类型,就必须重装 Windows 2000,这样 Windows 2000 才能自动检测到正确的计算机类型。
如果紧急修复过程找不到修复信息或者修复信息无效,请通过启动“故障恢复控制台”恢复 Windows 2000 安装:

1. 使用 Windows 2000 安装软盘或 Windows 2000 CD-ROM(如果计算机支持从 CD-ROM 启动),启动计算机。在“欢迎使用安装程序”屏幕上,按 R 键,以进行修复,然后按 C 键启动“故障恢复控制台”。

备注:有关使用故障恢复控制台的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

229716 Windows 2000 故障恢复控制台说明
2. 在登录到计算机之后,从原始 Windows 2000 安装的 %SystemRoot%/System32 文件夹中,使用命令控制台复制并重命名以下列表中列出的文件。首先使用支持的计算机类型的以下列表确定您的计算机需要哪些 HAL 和内核文件:

备注:标记有星号字符的是标准计算机类型(非 ACPI)。

i386 源文件:i386/driver.cab/halmacpi.dll
计算机类型:ACPI Multiprocessor PC
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

i386 源文件:i386/driver.cab/halaacpi.dll
计算机类型:ACPI Uniprocessor PC
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

i386 源文件:i386/driver.cab/halacpi.dll
计算机类型:Advanced Configuration and Power Interface (ACPI) PC
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

i386 源文件:*i386/driver.cab/halsp.dll
计算机类型:Compaq SystemPro Multiprocessor or 100% Compatible
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

i386 源文件:*i386/driver.cab/halapic.dll
计算机类型:MPS Uniprocessor PC
复制到此文件夹winnt/System32
重命名为此文件名:hal.dll

i386 源文件:*i386/driver.cab/halmps.dll
计算机类型:MPS Multiprocessor PC
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

i386 源文件:*i386/driver.cab/hal.dll
计算机类型: Standard PC
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

i386 源文件:*i386/driver.cab/halborg.dll
计算机类型:SGI mp
复制到此文件夹:winnt/System32
重命名为此文件名:hal.dll

3. 如下表所示,根据您的计算机支持的计算机类型,从 Windows 2000 CD-ROM (i386/driver.cab) 或已安装的 Service Pack 中将您的系统(单处理器与多处理器)公用的所有相应内核文件和相应的 HAL 文件复制到下表中列出的原始 Windows 2000 安装下的对应文件夹,然后将它们分别重命名(如有必要)为 Ntoskrnl.exe 和 Hal.dll。



多处理器公共内核文件 复制到以下目录 重命名为以下文件名
i386/driver.cab/ntkrnlmp.exe winnt/System32 ntoskrnl.exe
i386/driver.cab/ntkrpamp.exe winnt/System32 ntkrnlpa.exe
i386/driver.cab/kernel32.dll winnt/System32 kernel32.dll
i386/driver.cab/ntdll.dll winnt/System32 ntdll.dll
i386/driver.cab/win32k.sys winnt/System32/drivers win32k.sys
i386/driver.cab/winsrv.dll winnt/System32 winsrv.dll
单处理器公共内核文件 复制到以下目录 重命名为以下文件名
i386/driver.cab/ntoskrnl.exe winnt/System32 ntoskrnl.exe
i386/driver.cab/ntkrnlpa.exe winnt/System32 ntkrnlpa.exe
i386/driver.cab/kernel32.dll winnt/System32 kernel32.dll
i386/driver.cab/ntdll.dll winnt/System32 ntdll.dll
i386/driver.cab/win32k.sys winnt/System32 win32k.sys
i386/driver.cab/winsrv.dll winnt/System32 winsrv.dll
4. 将原始 Windows 2000 CD-ROM (i386/driver.cab) 或已安装的 Service Pack 中的文件 Ntdll.dll 展开,放到原始 Windows 2000 安装的 %SystemRoot%/system32 文件夹中。

例如:

驱动器:/i386/driver.cab /f:ntdll.dll c:/winnt/system32
其中,驱动器 是包含 Windows 2000 Server CD-ROM 的 CD-ROM 驱动器的驱动器盘符。
5. 将原始 Windows 2000 CD-ROM (i386/driver.cab) 或已安装的 Service Pack 中的文件 Win32k.sys 展开,放到原始 Windows 2000 安装的 %SystemRoot%/system32 文件夹中。
6. 将 Windows 2000 CD-ROM (i386/driver.cab) 或已安装的 Service Pack 中的 Kernel32.dll 和 Winsrv.dll 展开,放到原始 Windows 2000 安装的 %SystemRoot%/system32 文件夹中。例如,键入以下命令 expand drive:/i386/driver.cab /F:kernel32.dll %systemroot%/system32/kernel32.dll

expand 驱动器:/i386/driver.cab /F:winsrv.dll %systemroot%/system32/winsrv.dll

其中,驱动器 是 CD-ROM 驱动器号。

7. 重新启动计算机。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值