2004-07-29

解决germa71不能软关机

      germa71,主板为ASUS A7V,CPU为AMD athlon 800MHZ。我用ghost从另外一台机器的镜像文件按恢复安装了windwos 2000 +sp4。
在关机时,电脑不会自动关闭,而是出现早期windows关机时的画面,即“现在你可以安全的关闭计算机”的字样。

一直以为是主板的驱动安装不正确引起的。反复安装了厂家提供的主板驱动后,问题依旧。于是在雨声论坛发了个帖子求助。有一位ID为funnypc的朋友发了个帖子回复给出了解决办法。我按照他提供的办法把HAL.DLL替换掉,问题就解决了!

以下是那位朋友的回复。

这个问题我去年因为用Ghost时碰到,所以找了相关资料,主要是硬件抽像层的问题。至于解决办法,除了下面的,更方便的就是现在网上随处可以找到的电源判断封装工具。

因以前id资料丢失,长期未来没补分,所以现在在论坛上还是个新手,请大家多多指正。

主要资料来自于以下三个网页:

http://support.microsoft.com/?kbid=309283

http://support.microsoft.com/default.aspx?scid=kb;EN-US;299340

http://www.joshie.com/~jlevitsk/blog/archives/000032.html

1. 为什么要在 GHOST 之前,将 ACPI PC 改为 Standard PC ?

引用:
Microsoft does not support running a HAL other than the HAL that Windows Setup would normally install on the computer. For example, running a PIC HAL on an APIC computer is not supported.

Although this configuration may appear to work, Microsoft does not test this configuration and you may have performance and interrupt issues. Microsoft also does not support swapping out the files that are used by the HAL to manually change HAL types.

When you create a Sysprep image, the image must contain the correct HAL type for the target computer.


Windows 安装时会首先决定硬件抽象层 (HAL) ,并根据此信息安装系统文件,Microsoft 未对安装后的系统在不同硬件抽象层的 PC 上运行作测试,也不保证能正常使用。

当 GHOST 生成的映像文件在不同的系统上使用时,只有 Standard PC 能兼容所有的系统,因此需在 GHOST 之前调整此设置。

2. 已安装的系统如何更改硬件抽象层?

引用:
The reason Windows would not boot past loading the initial quasi-DOS drivers was because of the HAL being wrong.

Microsoft recommends that you switch HALs for troubleshooting purposes only or to workaround a hardware problem.

Device Manager does not permit the change from a Non-ACPI HAL to an ACPI HAL. You must use a new install of Windows XP or Windows Server 2003 for this type of change. Change from an ACPI HAL to a Non-ACPI HAL only for troubleshooting purposes.


当系统不能正常启动时,需要调整硬件抽象层设置。但 Microsoft 仅在系统设备管理器中提供将 ACPI PC 改为不支持 ACPI (Standard PC) 的途径以供排除故障,却不提供从系统设备管理器中改回 ACPI PC 。

引用:
To force in a system Hardware Abstraction Layer (HAL) during an upgrade or installation of Windows XP, note that during the Text-mode phase of Setup, you receive the following informational message across the bottom of the screen:

Press F6 if you need to install a third-party SCSI or RAID driver.
When this message appears, press F5. You can now make HAL choices by viewing the different options. Note that if you instead press F7, the Standard PC HAL loads, and the ACPI compliance check is bypassed.


要更改硬件抽象层,你可以使用安装盘启动,当提示按 F6 键安装第三方磁盘驱动时,按 F5 键可以手动选择正确的 HAL 定义,或者按 F7 键强制使用 Stardard PC 。

3. 如何通过更改系统文件的方法实现切换 ACPI 设置?

引用:
The following list describes the computers that you can deploy a particular Sysprep image to based on the HAL type in the source computer:

You can deploy a Sysprep image created on a computer that uses a Standard PC, Non-ACPI PIC HAL (Hal.dll) to a computer that uses the following HAL types:
Standard PC, Non-ACPI PIC HAL (Hal.dll)

You can deploy a Sysprep image created on a computer that uses an Advanced Configuration and Power Interface (ACPI) PC, ACPI PIC HAL (Halacpi.dll) to a computer that uses the following HAL types:
Advanced Configuration and Power Interface (ACPI) PC, ACPI PIC HAL (Halacpi.dll)

You can deploy a Sysprep image created on a computer that uses a MPS Uniprocessor PC, Non-ACPI APIC UP HAL (Halapic.dll) to a computer that uses the following HAL types:
MPS Uniprocessor PC, Non-ACPI APIC UP HAL (Halapic.dll)
MPS Multiprocessor PC, Non-ACPI APIC MP HAL (Halmps.dll)

You can deploy a Sysprep image created on a computer that uses a MPS Multiprocessor PC, Non-ACPI APIC MP HAL (Halmps.dll) to a computer that uses the following HAL types:
MPS Multiprocessor PC, Non-ACPI APIC MP HAL (Halmps.dll)
MPS Uniprocessor PC, Non-ACPI APIC UP HAL (Halapic.dll)

You can deploy a Sysprep image created on a computer that uses an ACPI Uniprocessor PC, ACPI APIC UP HAL (Halaacpi.dll) to a computer that uses the following HAL types:
ACPI Uniprocessor PC, ACPI APIC UP HAL (Halaacpi.dll)
ACPI Multiprocessor PC, ACPI APIC MP HAL (Halmacpi.dll)

You can deploy a Sysprep image created on a computer that uses an ACPI Multiprocessor PC, ACPI APIC MP HAL (Halmacpi.dll) to a computer that uses the following HAL types:
ACPI Multiprocessor PC, ACPI APIC MP HAL (Halmacpi.dll)
ACPI Uniprocessor PC, ACPI APIC UP HAL (Halaacpi.dll)


安装 Windows 时会根据系统硬件抽象层,将安装盘上的 HAL ACPI 链接库复制到 %windir%system32hal.dll

根据你的系统,会复制不同的文件,但复制到系统后文件名都是 hal.dll。
Standard PC (Hal.dll)
ACPI PC (Halacpi.dll)
ACPI Uniprocessor PC (Halaacpi.dll)
常用的就是以上三种,如果有多处理器的等等,请参照上面原文 (多处理器系统还有个文件不同: NTOSKNRL.EXE)

只要将安装光盘上的 Halacpi.dll 或者 Halaacpi.dll 文件提取,覆盖系统的 hal.dll 文件,即可在下次重启时将 Standard PC 更改为 ACPI PC (这个文件在系统启动后也可以替换) 。

4. 如何知道我的系统现在使用什么 HAL ACPI 文件?

查看 %windir%system32hal.dll 的属性->版本->源文件名。

没有评论:

发表评论