无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 43628|回复: 85
打印 上一主题 下一主题

[原创]基于MCC硬件抽象HAL(电源模式)完美解决方案的万能GHOST系统教程

[复制链接]
跳转到指定楼层
1#
发表于 2005-11-6 17:51:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
[这个贴子最后由hnlyzhd在 2006/04/21 00:25am 第 3 次编辑]

基于MCC大虾[原创教学]进行SYSPREP后计算机硬件抽象层HAL(电源模式)的完美解决方案的万能Ghost系统教程

一、准备工作
=================================================================================
1、首先,当然是要准备一台能用的电脑了,推荐使用AMD平台,这样会大大减少不兼容的几率。
2、准备所需工具软件
  相应的HAL文件:(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB)
  DEPLOY.CAB(在系统安装光盘:\SUPPORT\TOOLS目录下自带)
  Ghost v8.0 .or. Ghost v8.2
  Windows2K/XP/2003系统安装光盘(推荐使用免激活的版本)
  DllCacheManager V1.0(龙帝国专用版)Dllcache备份还原工具
3、安装操作系统
首先当然是分区格式化了,建议用FAT32格式,然后用Format c:/s格式化C盘,这样的话,系统就带一个DOS,方便以后系统维护:)
然后按正常的步骤安装好操作系统,并打好系统补丁。
4、安装常用的应用软件
根据各自的需要,安装常用的工具,如:Office,WinRAR,RealPlayer,输入法等......
5、安装DllCacheManager_V1.0(龙帝国专用版)Dllcache备份还原工具
  解压DllCacheManager.rar文件,然后把DllCacheManager.exe、ZProgBar.ocx两文件拷贝到C:\。

二、系统减肥
=================================================================================
   为了减少Ghost恢复镜像备份文件时所需时间,或在一张光盘上尽可能安装更多的软件,这就需要将Ghost备份文件制作得足够小,因此我们需要对系统进行一系列的减肥工作。当然如果你对Ghost备份文件的体积不介意的话,就没有必要对系统进行减肥。要想把镜像控制在700M以内,系统就有必要控制在1.35G左右。
1、关闭系统还原
2、关闭系统休眠
3、转移虚拟内存页面文件
注:以上三项在系统封装完以后,重进系统时会还原。而且如果系统是FAT32格式,且Ghost版本在8.0以上,进行克隆时会自动去掉系统休眠(hiberfil.sys)文件及虚拟内存(pagefile.sys)文件,至于系统还原还没试过,不很清楚,有知道的哪位DX可否告知一下。
4、清理磁盘,删除系统和IE临时文件
删除C:\WINDOWS\目录下$NtUnins***$的文件夹
删除C:\WINDOWS\SoftwareDistribution\Download下的所有文件夹
删除C:\WINDOWS\Installer下的$PatchCache$目录
5、移动我的文档至D:\我的文档

三、删除、更改系统硬件驱动
=================================================================================
1、更改IDE ATA/ATAPI控制器为“标准双通道 PCI IDE 控制器”
2、更改计算机电源管理模式 Advanced Configuration Power Interface(ACPI) 为 Standard PC
  打开设备管理器,右键点击“计算机”下的“Advanced Configuration Power Interface(ACPI)”,选择“更改驱动程序”,在弹出的“硬件更新向导”对话框中选择“从列表或指定位置安装(高级)”,点击下一步,再选择“不要搜索,我要自己选择要安装的驱动程序”,再点击下一步,选中“Standard PC”,再点击下一步,硬件管理器会自动安装Standard PC的驱动,之后电脑会提示重新启动,则选择“否”不启动,完成OK。
3、卸载硬件驱动
  (1)卸载网络适配器。
  (2)卸载通用串行总线控制器。
  (3)卸载声音、视频游戏控制器。
  (4)卸载监视器。
  (5)卸载显示卡。
注:卸载硬件驱动时如系统提示要重新启动,则选择“否”不启动。

四、拷贝所需的文件
=================================================================================
1、从系统中提取如下文件(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB中):[color=#DC143C]
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll     →并更名为halstnd.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe   →并更名为ntkrnlup.exe
2、将上述文件拷贝到系统\WINDOWS\SYSTEM32\(2000为\WINNT\SYSTEM32\)目录;
3、将以下代码保存为dtecthal.inf并拷贝到\WINDOWS\INF\(WINDOWS 2000为\WINNT\INF\)如果不可见,可在文件夹选项里在“显示所有的文件和文件夹”打上勾和“隐藏受保护的系统文件”去掉勾。
[color=#DC143C]
[Version]
signature="$Windows NT$"
DriverVer=07/01/2001
[hal]
MPS_MP         = halmps.dll
MPS_UP         = halapic.dll
E_ISA_UP       = halstnd.dll
ACPIPIC_UP     = halacpi.dll
ACPIAPIC_UP    = halaacpi.dll
ACPIAPIC_MP    = halmacpi.dll

[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999

4、将原文件BOOT.INI重命名,如:BOOT1.INI,修改BOOT1.INI,在准备封装的系统后面加上 /DETECTHAL参数,另存为BOOT.INI
如:
[color=#DC143C]
[boot loader]
timeout=3
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" /noexecute=optin /fastdetect /detecthal
C:\ = "Microsoft Windows"
注:如果你是采用的是FAT32格式且格式化时是用Format c:/s,那么建议保留最后一行,这样启动时会有两个选项,一个是进系统,一个是进DOS。
5、将系统下的NTLDR文件重命名,如:NTLDR3,将LONGHORN版本的NTLDR拷贝到从C:\
6、解压DEPLOY.CAB到c:\ sysprep
7、创建批处理文件,作为封装完后运行的命令,
如:[color=#DC143C]
@echo off
cd c:\
attrib ntldr -h -s -r
attrib ntldr3 -h -s -r
del ntldr
ren ntldr3 ntldr
attrib ntldr +h +s +r
attrib boot.ini -h -s -r
attrib boot1.ini -h -s -r
del boot.ini
ren boot1.ini boot.ini
attrib boot.ini +h +s +r
del ZProgBar.ocx
del c:\windows\run.bat
exit
另存为C:\WINDOWS\RUN.BAT
五、封装
=================================================================================
1、创建sysprep.inf自动应答文件
 这里就不在复述,只是在“运行一次”里要记得加入run.bat命令
2、重新封装系统
运行Sysprep目录中的Sysprep.exe对系统直接进行封装,这里在需要选上前三项,即:不重置激活的宽限期、使用最小化安装、不重新产生安全标识符,关机模式选退出,选项设置好后点“重新封装”就可以了。封装过程大概30秒左右,完成后就会自动退出。
3、保存本用户的输入法设置
打开 控制面板-区域和语言选项-高级 将 “将所有设置应用于当前用户帐户和默认用户配置文件(D)” 选框选上,解决安装的输入法在系统还原后,系统托盘没显示的问题。
4、备份DllCache目录文件
  运行C:\下的DllCacheManager.exe,选上“恢复时自动删除自己”,然后点备份即可。这一步可减少磁盘占用空间300M左右。
5、修改注册表
  运行regedit,查找hal项,删除***HAL注册表项,删除时,在要删除的项上点右键,然后选择 权限 ,为[color=#DC143C]Everyone添加完全权限即可。在完成以上步骤后,C盘中的系统已经是一个经过重新封装的干净系统了,至此整个封装系统的制作就算完成。接下来的工作就是用DOS启动计算机,将制作好的干净系统制作成Ghost镜像文件,以便装机时使用。

六、制作镜像
=================================================================================
   用DOS启动计算机,运行ghost –z9,保存镜像文件。

七、制件光盘镜像
=================================================================================
推荐使用EASYBOOT和UltraISO软件,这里就不再细述了。

八、测试镜像

九、刻录光碟

十、上网发布

                                                        ^○^
------------------------------------------------------------------------------------------------------------------------------------------
                                                                                          Tinting
                                                                                          2005-11-06

  PS:本来两个月之前就要写了,后来家里网停了,所以一直就搁到现在,希望对新手有些帮助!
本人母机:AMD毒龙750、KT133A、WD800JB、TNT2 PRO 32M、128SDR
在Inter845、865、915、945;NF2、NF3、NF4;KT400、KT600、KT800搭配任意硬盘、显卡以及HP品牌机(ATI芯片)、华硕笔机本上恢复成功。
==========================================================================
为了能让大家系统的看一下楼主的帖子,我没有编辑楼主的原帖子,做以下补充,希望能对大家有所帮助!
1.有朋友不知如何配置SYSPREP.INF文件,更不知如何加入RUN.BAT
SYSPREP.INF内容如下:
-------------------------------------
;SetupMgrTag
[Unattended]
    OemSkipEula=Yes
    DriverSigningPolicy=Ignore
[GuiUnattended]
    AdminPassword=*
    AutoLogon=Yes
    EncryptedAdminPassword=NO
    OEMSkipRegional=1
    TimeZone=210
    OemSkipWelcome=1
[UserData]
    ProductKey=FYFP7-6HBXR-2TPB2-RGYPK-9TKPJ
    FullName="hnlyzhd"
    OrgName="hnlyzhd"
    ComputerName=*
[RegionalSettings]
    LanguageGroup=10
[GuiRunOnce]
    Command0="c:\windows\run.bat"
[Identification]
    JoinWorkgroup=WORKGROUP
[Networking]
    InstallDefaultComponents=Yes
[sysprepcleanup]
--------------------------------------
2.RUN.BAT的内容大家可以根据自己的要求来自行修改,包括想要执行的其他可执行文件都可一并写入这个批处理文件中,下面是我自己封装系统的一个示例:
RUN.BAT内容:
--------------------------------------
@echo off
color 1f
title  SYSOFT时空论坛万能GHOSTXP EN SP2克隆版
echo===================================================
echo 注意:
echo      程序执行中,请不要手动强行关闭本窗口!
echo      请耐心等待程序执行完毕......
echo===================================================
echo     hnlyzhd  2006年04月20日 22:00  河南洛阳
pause
cd c:
attrib ntldr -h -s -r
attrib ntldr.bak -h -s -r
del ntldr
ren ntldr.bak ntldr
attrib ntldr +h +s +r
attrib boot.ini -h -s -r
attrib boot.bak -h -s -r
del boot.ini
ren boot.bak boot.ini
attrib boot.ini +h +s +r
c:\windows\DllCacheManager.exe /restore /autodelete
del c:\windows\run.bat
exit
-------------------------------------
注:DllCacheManager.exe支持参数恢复和自动删除本文件功能
3.桉楼主说的方法在封装系统后,原先的输入法设置已经全部没有了!
[3、保存本用户的输入法设置
打开 控制面板-区域和语言选项-高级 将 “将所有设置应用于当前用户帐户和默认用户配置文件(D)” 选框选上,解决安装的输入法在系统还原后,系统托盘没显示的问题。]
在运行封装工具后已经没有了“将所有设置应用于当前用户帐户和默认用户配置文件(D)”选项,所以无效,需要手工或者专用软件设置一下输入法!
4.删除驱动最好使用微软的DEVCON.EXE工具来删除驱动程序!
最近太忙了,等有时间了,把这个帖子中所需要的工具及详细方法打包提供给大家!
86#
发表于 2010-8-25 14:48:56 | 只看该作者
细细看,慢慢体会,谢谢楼主。
回复

使用道具 举报

85#
发表于 2009-3-12 16:26:29 | 只看该作者
好好研究一下,这样就能部署了。
回复

使用道具 举报

84#
发表于 2009-2-9 04:44:07 | 只看该作者
收藏!!之前做GhostSYS HAL没能正确识别,没开启双核……
回复

使用道具 举报

83#
发表于 2009-2-6 17:15:44 | 只看该作者
^_^,可以安装ramos,直接停掉硬盘啊,可惜我的不是nf主办
回复

使用道具 举报

82#
发表于 2007-11-26 14:41:39 | 只看该作者
好抽象的东西,弄不懂
回复

使用道具 举报

81#
发表于 2007-11-25 23:09:31 | 只看该作者
严重支持一下哈/.....
回复

使用道具 举报

80#
发表于 2007-11-25 16:39:18 | 只看该作者
经典的教程,我现在正在学习呢。
回复

使用道具 举报

79#
发表于 2006-11-30 13:47:14 | 只看该作者
那个提示的意思是ntoskrnl.exe文件错误。请重新安装一下这个文件。
估计是你没有把教程看完。没有把文件找到造成的。找一个XP SP2的安装盘,在I386目录下可以找到这个文件。我作的镜像没有遇到过这个问题。
另,如果你删除了ACPI计算机,那么你就只能使用VISTA的NTLDR进行启动和自动关机。除非你重装系统才可以更换为XP的NTLDR。
回复

使用道具 举报

78#
发表于 2006-11-26 22:24:49 | 只看该作者
原帖由 八宝菜 于 2006-11-23 04:03 PM 发表


这个问题我前面已经回答过。第一次重启后认新硬件,第一栏的ACPI有卸载选项,但是绝对不能卸载!第二栏的Standard PC没有卸载选项,只要马上重启一次就可以被卸载了。如果你卸载了ACPI,那肯定是不能自动关机 ...

八宝菜仁兄:这问题偶逛许多论坛,从没看过这处理方式,偶计算机现正是这情况待解决,可否把VISTA的NTLDR档案贴上供我下载,无限感谢。
另一问题想请教:底下的图示情况偶也遇到,一直找不到所以然如何解决?看过所有回贴没见详细回答,哪是甚么情况造成。
http://bbs.wuyou.net/forum.php?m ... page%3D8&page=6

01_1123640644.jpg (12.88 KB, 下载次数: 114)

01_1123640644.jpg
回复

使用道具 举报

77#
发表于 2006-11-23 16:03:23 | 只看该作者
原帖由 无忧之士 于 2006-11-21 03:36 PM 发表
这几天一直在尝试用这种方法制作,制作完成母机恢复后,第一次启动一切正常,可重新启动后就又开始检测并安装硬件,并且电源管理那里出现两栏,一栏是ACPI,可以卸载,另一栏是Standard PC,不能卸载!不能自动关 ...


这个问题我前面已经回答过。第一次重启后认新硬件,第一栏的ACPI有卸载选项,但是绝对不能卸载!第二栏的Standard PC没有卸载选项,只要马上重启一次就可以被卸载了。如果你卸载了ACPI,那肯定是不能自动关机的了。如果已经卸载了ACPI无法关机了,只要把VISTA的NTLDR复制回去就可以了。
回复

使用道具 举报

76#
发表于 2006-11-21 15:36:44 | 只看该作者

是否不能在母机上恢复?

这几天一直在尝试用这种方法制作,制作完成母机恢复后,第一次启动一切正常,可重新启动后就又开始检测并安装硬件,并且电源管理那里出现两栏,一栏是ACPI,可以卸载,另一栏是Standard PC,不能卸载!不能自动关机了!
请高手们指点一下,甚谢!
回复

使用道具 举报

75#
发表于 2006-11-20 11:31:28 | 只看该作者
封装后重启,提示ntoskrnl.exe丢失或出错,无法启动
将boot.ini中的启动参数/decthal 去掉,可以启动,但是无法自动识别hal了
???
回复

使用道具 举报

74#
发表于 2006-11-17 10:12:42 | 只看该作者
我也学习一下
回复

使用道具 举报

73#
发表于 2006-11-9 19:17:11 | 只看该作者
原帖由 bdfcy 于 2005-11-7 01:56 AM 发表
好帖,这么详细!顶了...
回复

使用道具 举报

72#
发表于 2006-11-3 18:08:18 | 只看该作者
你这个是正常现象。说明你第一次启动的时候HAL没有被正确识别。当“设备管理器”-“计算机”出现两个“Standard PC”,在第一个“Standard PC”上右键单击,选“自动更新驱动”,就可以正确识别为ACPI,但是记得要把所有带叹号的设备全部删除。然后再次重启。
重启进入系统后,再次打开设备管理器,然后删除那个“Standard PC”,保留ACPI就好了。
通常在做完GHOST后,第一次进入桌面的时候,如果出现“发现新硬件,需要重新启动”对话框,就不会出现这个问题。而没有提示“发现新硬件,需要重新启动”的话,就要进设备管理器里面查看是不是没有正确识别“Standard PC” 。
回复

使用道具 举报

71#
发表于 2006-11-2 16:10:07 | 只看该作者
我将ntldr文件改回XP的后,重启计算机会再次搜索硬件,并在"计算机"里出现多一个Standard PC项(即两个电源模式),不知是何故?
回复

使用道具 举报

70#
发表于 2006-11-1 20:18:16 | 只看该作者
AMD64怎么?
回复

使用道具 举报

69#
发表于 2006-11-1 19:40:37 | 只看该作者
还有就是所谓的AMD64的问题要解决。
回复

使用道具 举报

68#
发表于 2006-11-1 14:27:54 | 只看该作者
2000做法不同
回复

使用道具 举报

67#
发表于 2006-11-1 09:09:00 | 只看该作者
非常感谢楼主,我在制作中遇到的问题现在都豁然开朗了,呵呵~~
回复

使用道具 举报

66#
发表于 2006-10-26 16:09:22 | 只看该作者
这种方法在WINXP下用的没有问题,但在WIN2000下就有问题了
第一、HAL注册表项不能删除,没有版主所说修改的那一项。
第二、电脑重新启动后,电源管理还是老样子,这是不是和第一个问题有关。
请高手明示
回复

使用道具 举报

65#
发表于 2006-10-24 10:14:43 | 只看该作者
这个方法非常好,解决了硬件抽象层(HAL)的问题
但是克隆的另一个关键性问题MassStorage Device(PATA、SATA、RAID、SCSI等)驱动的加载问题。文中只字不提,对于SATA硬盘要加载驱动的单纯照上面的方法还是不行的
不知楼主是有什么高见
回复

使用道具 举报

64#
发表于 2006-8-20 15:51:08 | 只看该作者
在删除注册表HAL项时
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\HAL

这两项要不要删呀.我删第一项时可以删除,删第二项时提示无法删除,进去先将键值删掉以后再删项可以正常删除,但封装时提示未知硬件错误,然后就重启了,重启时没有封装过程,是正常启动.
回复

使用道具 举报

63#
发表于 2006-8-10 10:15:24 | 只看该作者

我喜欢

谢谢楼主提供
回复

使用道具 举报

62#
发表于 2006-8-9 22:55:09 | 只看该作者
谢谢分享这么好的帖子
回复

使用道具 举报

61#
发表于 2006-8-6 15:11:21 | 只看该作者
不知道,用楼主的方法和用死性不改提供的9.6的封装工具,做万能ghost,哪个更好一些?
回复

使用道具 举报

60#
发表于 2006-8-6 15:05:41 | 只看该作者
、微软自WINDOWS LONGHORN后,改写了NTLDR的部分代码,提供了/detecthal 接口
2、BOOT.INI支持/detecthal参数,以实现与NTLDR的结合,并实现开机启动即自动检测HAL
3、\INF\dtecthal.inf是一个关键性文件,提供各种HAL类型检测的参数说明
以下为进行SYSPREP封装后的自动完美检测HAL具体实现方案:
1、从系统中提取相应的HAL文件包:(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB)
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll---->并更名为halstnd.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe---->并更名为ntkrnlup.exe
2、将上述相应的HAL文件包拷贝到系统\WINDOWS\SYSTEM32\(WINDOWS 2000为\WINNT\SYSTEM32\)
3、将以下代码保存为dtecthal.inf并拷贝到\WINDOWS\INF\(WINDOWS 2000为\WINNT\INF\)
如果不可见,可在文件夹选项里在“显示所有的文件和文件夹”打上勾和“隐藏受保护的系统文件”去掉勾。


QUOTE:
[Version]
signature="$Windows NT$"
DriverVer=07/01/2001,5.1.2600.2180
[hal]
acpipic_up     = halacpi.dll
e_isa_up       = halstnd.dll
mps_up         = halapic.dll
mps_mp         = halmps.dll
acpiapic_up    = halaacpi.dll
acpiapic_mp    = halmacpi.dll
;
;
;-------------------------------------------------------------------------
;            Auto detecd Computer HAL with BIOS information
;-------------------------------------------------------------------------
;       Copyright(R)1980-2005 Microsoft Crack Center MCC(1980-2005)
;
;                   tesk work by mstest@MCC 20050515
;
;                        mstested@hotmail.com
;-------------------------------------------------------------------------
;
;
; [ACPIOptions]
; This section lists options that affect the installation of ACPI on x86
;
; ACPIEnable
;     0 - ACPI will be disabled at install time regardless of the BIOS
;     1 - ACPI will be enabled at install time if an ACPI BIOS is present
;     2 - ACPI will be enabled based on the GoodACPIBios list, the NWACL
;         and ACPIBiosDate
;
; ACPIBiosDate = mm,dd,yyyy
;     Supplies the date that a BIOS must have to be considered good if it is
;     not in the GoodACPIBios list. If a BIOS has a date greater than this and
;     is not in the NWACL list, then it will be used unless ACPIEnable = 0
;
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999
4、修改BOOT.INI
在准备封装的系统后面加上 /DETECTHAL参数
如:


QUOTE:
[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


谢谢楼上的朋友!
回复

使用道具 举报

59#
发表于 2006-8-6 14:38:19 | 只看该作者
更改回原来的NTLDR文件是因为如果使用VISTA的NTLDR文件,在按F8进入系统启动选择菜单的时候是英文的。
改回原来的NTLDR就是中文的了。另外,VISTA的NTLDR文件偶尔会出现丢失的现象。造成系统无法启动。
回复

使用道具 举报

58#
发表于 2006-8-6 14:21:06 | 只看该作者
我有一些地方不明白?
1,"运行regedit,查找hal项,删除***HAL注册表项,删除时,在要删除的项上点右键,然后选择 权限 ,为Everyone添加完全权限即可."
既然要删除它,为什么还要改权限呢.改完了,还不是要删除吗.等于没改,这么做的作用是什么?

2.为什么要删除LONGHORN版本的NTLDR.而用原来的ntldr?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-16 05:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表