在 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 光盘(如果您的计算机支持从光盘启动),启动计算机。 |
| 2. | 在“欢迎使用安装程序”屏幕上,按 R 键进行修复。 |
| 3. | 在 Windows 2000 修复选项屏幕上,按 R 键,以使用紧急修复过程进行修复。 |
| 4. | 按 M 键可手动选择修复选项,并且一定要选中“验证 Windows 2000 系统文件”和“检查启动环境”功能,也可按 F 键运行所有修复选项。 |
| 5. | 完成上述过程后,应该能够恢复最初安装的 HAL 和关联文件。取出光盘或软盘,然后重新启动计算机。
注意:在“设备管理器”中仍然可以看到错误安装的计算机类型。 |
| 6. | 要确保在设备管理器中看到正确的计算机类型,请在重新启动计算机时,按 F8 键,选择最后一次正确的配置,然后按 Enter 键。 |
| 7. | 单击相应的硬件配置文件(如果存在多个配置文件)。在硬件配置文件上,单击配置恢复,按 Enter 键,然后 Windows 2000 即可启动。 |
从 ACPI HAL 更改为标准 HAL 的最佳方法是:将 Windows 2000 重新安装为升级版:
| 1. | 以升级版启动 Windows 2000 安装程序。 |
| 2. | 要自动禁用 ACPI 支持,并允许 Windows 2000 自动检测(或手动更改和安装)计算机支持的正确的(标准 HAL)计算机类型,请使用以下方法之一:
| ? | 要自动检测计算机类型,请按照下列步骤操作:
在安装程序生成以下信息性消息时,按 F7 键:
如果需要安装第三方 SCSI 或 RAID 驱动程序,请按 F6 键。
注意:按 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 光盘(如果计算机支持从光盘启动),启动计算机。在“欢迎使用安装程序”屏幕上,按 R 键修复安装,然后按 C 键启动“故障恢复控制台”。
注意:有关使用“故障恢复控制台”的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
229716 (http://support.microsoft.com/kb/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 光盘 (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 光盘 (i386\driver.cab) 或已安装的 Service Pack 中的文件 Ntdll.dll 展开到原始 Windows 2000 安装的 %SystemRoot%\system32 文件夹中。
例如:
drive:\i386\driver.cab /f:ntdll.dll c:\winnt\system32
其中 drive 是包含 Windows 2000 Server 光盘的 CD-ROM 驱动器的驱动器号。 |
| 5. | 将原始 Windows 2000 光盘 (i386\driver.cab) 或已安装的 Service Pack 中的 Win32k.sys 文件展开到原始 Windows 2000 安装的 %SystemRoot%\system32 文件夹中。 |
| 6. | 将 Windows 2000 光盘 (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 drive:\i386\driver.cab /F:winsrv.dll %systemroot%\system32\winsrv.dll
其中,drive 是 CD-ROM 驱动器号。
|
| 7. | 重新启动计算机。 |
有关相关信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
234558 (http://support.microsoft.com/kb/234558/) 如何在 Windows 2000 中添加对多处理器的支持
警告:Windows 2000 会显示兼容计算机类型的列表,在使用“设备管理器”进行手动更新时,可以安装这些计算机类型。使用该列表中没有包含的兼容计算机类型很可能导致无法正常启动计算机或者根本无法启动计算机。如果使用列出的计算机类型“Advanced Configuration Power Interface (ACPI) PC”,或者在更新到最新 ACPI BIOS 之后使用列出的这种类型,则无法通过“设备管理器”更新到“ACPI Multiprocessor PC”,并可能导致无法正常启动计算机或者根本无法启动计算机。在使用 ACPI HAL 的情况下,要使 Windows 2000 支持或识别使用 ACPI HAL 的 CPU,则必须首先更新到完全兼容的最新 ACPI BIOS,然后作为升级版重新安装 Windows 2000,以便它可以自动检测并安装 ACPI Multiprocessor PC;否则,表明您的 BIOS 还不是完全兼容的。
回到顶端