作者:Climbing(xclimbing@msn.com)
版本:2.1b
创建日期:2004年12月6日
最后修改日期:2005年3月1日
============
致谢
============
这篇总结文章的写成,主要参考了死性不改网友所发布的用于制做万能克隆的S&R&S系列中的相关批处理文件,在此表示万分感谢!
同时感谢无忧启动论坛的hyne网友(他已经沉默了很长时间了),他是万能克隆技术的先驱者之一,本文章引用了很多他制做的计算机类型选择程序(acpi.exe)中的说明,这里一并表示感谢。
感谢JUJUMAO论坛木鸟网友对本文作出的有益补充!
================
文章正文
================
1) 所谓的计算机类型(设备管理器 -> 计算机)是通常我们所说的计算机的电源类型,也就是Windows系统中的HAL类型。
2) 所谓的内核文件有两个,一个是hal*.dll,另一个是NT的内核文件(NT Kernel),这些文件都可以从%windir%\Driver Cache\I386目录下的*.cab文件中解出来,至于是哪个cab文件,当然跟你的系统打上的Service Pack有关系,例如你打了SP4补丁,那么就是sp4.cab文件,如果没有打补丁,那就是driver.cab文件,详细的可以参考下面的批处理程 序。
3) 下面所说的死性不改名称是指死性不改网友给对应的文件起的名字,由于具有相当程度的普遍性,在这里一并列出,方便大家使用和参考。
4) 硬件ID,即HardwareID,是指某种计算机类型所对应的ID,这是一一对应的关系,更新某计算机的硬件ID就意味着同时更新计算机类型。后面将提 供使用devcon和rundll32两种办法更改硬件ID的方法,但这两种办法必须运行于当前的Windows环境下(而不是第三方的纯DOS环境 等)。
其对应关系如下:
计算机类型 HAL文件(死性不改名称) Kernel文件(死性不改名称) 硬件ID(HardwareID)
Standard hal.dll(hal.chk) ntoskrnl.exe(sxbg.chk) E_ISA_UP
ACPI Uniprocessor halaacpi.dll(acpu.chk) ntoskrnl.exe(sxbg.chk) ACPIAPIC_UP
ACPI Multiprocessor halmacpi.dll(acpm.chk) ntkrnlmp.exe(ntos.chk) ACPIAPIC_MP
MPS Uniprocessor halapic.dll(mpsu.chk) ntoskrnl.exe(sxbg.chk) MPS_UP
MPS Multiprocessor halmps.dll(mpsm.chk) ntkrnlmp.exe(ntos.chk) MPS_MP
Compaq SystemPro halsp.dll(com.chk) ntkrnlmp.exe(ntos.chk) SYSPRO_MP
ACPI halacpi.dll(acpi.chk) ntoskrnl.exe(sxbg.chk) ACPIPIC_UP
1、上述的七种计算机类型的详细名字顺序对应下面的七个名字(我假设你了解每种计算机类型代表哪一类的计算机)。
A. Standard PC
B. ACPI Uniprocessor PC
C. ACPI Multiprocessor PC
D. MPS Uniprocessor PC
E. MPS Multiprocessor PC
F. Compaq SystemPro Multiprocessor or 100% Compatible
G. Advanced Configuration and Power Interface (ACPI) PC
2、更改计算机类型的方法。
下面提供了四种更改计算机类型的方法,在后两种方法中,推荐使用RunDll32方式。
2.1 通过改名相关文件直接更改计算机类型。
首先大家要明确,上述的所有相关文件都应该是保存在%windir%\system32目录下(这里的%windir%表示Windows的安装目 录)。选择某种计算机类型就要将相应的HAL部分的文件改名为hal.dll,而Kernel部分的文件改名为ntoskrnl.exe。以ACPI Multiprocessor为例:将halmacpi.dll复制到%windir%\system32目录下并改名为hal.dll(DOS命 令:copy /y halmacpi.dll %windir%\system32\hal.dll),将ntkrnlmp.exe复制到%windir%\system32目录下改名为 ntoskrnl.exe(DOS命令:copy /y ntkrnlmp.exe %windir%\system32\ntoskrnl.exe),由于更改的是Windows的内核文件,这种更改方法不能在Windows环境正在运 行的情况下进行,但可以在纯DOS环境下或者系统恢复控制台下运行。
2.2 在boot.ini中通过Windows系统的启动参数直接指定计算机类型。
如果你在恢复克隆时选错了计算机类型并且你知道应该使用什么样的计算机类型(或者你不知道该使用什么类型而想多试几种类型),那么你可以直接在 Boot.ini中指定要使用的计算机类型对应的Hal及Kernel文件,以ACPI Uniprocessor PC类型计算机为例:
对应死性不改网友的文件命名法,你可以这样写boot.ini的启动项: 2.3 使用rundll32命令更改计算机类型。这种改法的前提是你能够进入Windows系统,例如你选择成了Standard PC,虽然能够进入系统,但计算机类型却不对的情况。 以下内容为程序代码: |
没有评论:
发表评论