发新话题
打印

全手工制作Ghost XP

全手工制作Ghost XP

首先,感谢悟己

全手工制作Ghost XP之前要做点准备工作,也就是XP系统母盘、你要安装的一些软件、接管部署、电源判断、SRS驱动等等的文件,下面就按12345的步骤写 (其中很多内容是直接引用SKYFREE和众多前辈们的,在这里先感谢他们)

一.准备工作
   
  全手工封装需要解决电源判断、SRS驱动、无用SRS驱动的禁用等等的工作,不然也就不能所谓的“万能GHOST”了,准备系统母盘,常用软件,skyfree的驱动选择工具和自由的风的驱动包以及realhyg的SRS驱动。

A. 准备突破HAL 限制电源判断的文件
准备突破HAL 限制电源模式判断的文件halacpi.dll、halapic.dll、halmps.dll、halaacpi.dll、halmacpi.dll、hal.dll、ntkrnlmp.exe、ntkrnlpa.exe、ntkrpamp.exe、ntoskrnl.exe(前面的这几个文件可以在C:\WINDOWS\Driver Cache\i386\sp2.cab中提取)、dtecthal.inf(这个文件可以在别人做好的GHO中c:\windows\inf 中提取)、NTLDR(在别人做好的GHO中C:\下提取)其中hal.dll 更名为 halstnd.dll、ntoskrnl.exe 更名为 ntkrnlup.exe, 准备好了这些文件就可以为我们封装后电源判断做好了准备。

B. 准备接管部署过程的文件
既然我们知道系统部署过程是由 Windows\System32\Setup.exe 触发的,那么系统是怎么知道在第一次启动时运行Windows\System32\Setup.exe 的呢?经过无数前辈们的探索,发现了 CMDLine 这个键值。HKEY_LOCAL_MACHINE\SYSTEM\Setup\CMDLine 键,在 封装后键值为“ Setup.exe–newsetup -mini”,这也就是说在系统第一次启动时运行 Setup.exe 并加载“–newsetup –mini”参数。(如果封装时没有选最小化部署这里不会有“mini”参数)我们可以据此断定,之所以目标计算机第一次运行时会运行 Setup.exe 来部署系统,是由这个键值控制的。那么,如果我们把这个键值更改一下,让目标计算机第一次启动时运行我们所需的程序,不就能够控制部署过程了吗?因此我们用AU3脚本写一个代替“CMDLine” 这个键值“setup.exe”我的是BZDD.exe(可以随便命名),AU3代码如下:

FileSetAttrib("C:\NTLDR","-RSH")
FileDelete("C:\NTLDR ")
FileSetAttrib("C:\NTLDR_XP","-RSH")
FileMove("C:\NTLDR_XP","c:\ntldr")
FileSetAttrib("C:\NTLDR ","+RSH")
FileSetAttrib("c:\boot.ini","-RSH")
IniWrite("c:\boot.ini","operating systems","multi(0)disk(0)rdisk(0)partition(1)\WINDOWS",'"Microsoft Windows XP Professional" /noexecute=optin /fastdetect')
FileSetAttrib("c:\boot.ini","+RSH")
RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\setup","cmdline")
RunWait("c:\sysprep\drvs\drvs.exe")  这是调用skyfree的驱动选择工具,根据自己修改
Run("c:\sysprep\sysprep.exe -clean")
这是调用清理无用SRS驱动
RunWait("setup.exe -newsetup -mini")

大家要是要调用其他的可以依照添加,我也是AU3菜鸟,但我依照skyfree的《xp定制不完全攻略》弄的出来了,多研究多学习是有好处的。

C.第一次进桌面运行的文件
我的是blue.exe, AU3代码如下:
FileDelete("C:\Documents and Settings\ All Users \桌面\Windows Media Player.lnk")
FileDelete("c:\windows\bzdd.exe")
FileRecycle("c:\windows\drivers")这个是我静默删除第三方驱动,我不喜欢提示的^_^
FileRecycleEmpty("c:\")
Run(@ComSpec&' /c ping 127.0.0.1 -n 2&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE)
大家可以根据自己的需要修改

D.封装需要用到的文件
在XP原装光盘\SUPPORT\TOOLS目录下解压DEPLOY.CAB文件可获取,主要用到的是factory.exe,setupcl.exe,syspr
ep.exe三个文件;当然还有sysprep.inf配置文件
我的sysprep.inf文件内容如下:
;blue
;不再等待

[Unattended]

DriverSigningPolicy=Ignore

NonDriverSigningPolicy=Ignore

OemSkipEula=Yes

OemPreinstall=Yes

UpdateInstalledDrivers=Yes


[GuiUnattended]

AdminPassword=*

EncryptedAdminPassword=NO

OEMSkipRegional=1

TimeZone=210

OemSkipWelcome=1

[UserData]

ProductKey="MRX3F-47B9T-2487J-KWKMF-RPWBY"

ComputerName=*

FullName=blue

OrgName=不再等待

[Display]

BitsPerPel=32

Xresolution=800

Yresolution=600

[RegionalSettings]

LanguageGroup=10

[Identification]

JoinWorkgroup=WORKGROUP

[Networking]

InstallDefaultComponents=Yes

[GUIRunOnce]
Command0=C:\WINDOWS\blue.exe

二.封装前准备

    在准备好上述文件之后,我们就需要安装好WIN XP系统(安装过程我就不说了,系统都不会装也就谈不上从新封装了)之后,装上一些常用软件,根据自己的需要安装。安装好之后我们就要做一些工作了,如下:

A.为了能驱动自己安装完成要做如下设置:

在开始\运行窗口输入“gpedit.msc"打开组策略:

找到“计算机配置——管理模板——系统”

启用“关闭 Windows Update 设备驱动程序搜索”

找到“计算机配置——管理模板——系统——Internet 通信管理——Internet 通信设置”

启用“关闭 Windows Update 设备驱动程序搜索”

找到“用户配置——管理模板——系统”

启用“配置驱动程序搜索位置” 钩上:不搜索软盘、Windows Update(光驱不要选)

忽略“设备驱动程序的代码签名”

启用“关闭 Windows Update 设备驱动程序搜索”

右健点桌面“我的电脑”打开“系统属性——硬件”

找到“驱动程序签名”选择“忽略,安装软件不用征求我的同意” 并钩上“将这个作为系统的默认值”——确定。
找到“Windows Update”选择“从不在update搜索驱动”——确定。

B.删除计算机驱动,如下:

卸载硬件驱动

1.卸载网络适配器。
2.卸载通用串行总线控制器。
3.卸载声音、视频游戏控制器。
4.卸载监视器。
5.卸载显示卡( 卸载显卡是为了防止Ghost到别的机上时出现蓝屏现象)。卸载硬件驱动时如系统提示要重新启动
则选择“否”不启动。

(关键)更改计算机电源管理模式 Advanced Configuration Power Interface(ACPI) 为 Standard PC
(关键)更改IDE ATA/ATAPI控制器为“标准双通道 PCI IDE 控制器

三.封装过程
A. 在C盘根目录下新建一个sysprep文件夹,把先前准备的factory.exe,setupcl.exe,sysprep.exe,ssysprep.inf四个文件和驱动判断工具复制在这个文件夹里面;运行sysprep.exe进行封装。需要注意的是进行封装时的选项设置:*在系统封装画面的4个选项中,第二项“使用最小化安装”即无残留驱动安装项正是我们需要的,因此必须要选上。第一项“不重置激活的宽限期”和第三项“不重新产生安全标识符”都是正版用户激活用的,而我们所用的是免激活版,因此这两项选与不选无所谓,对GHOST克隆后的系统在使用上都无影响。第四项“检测非即插即用硬件”这一选项不用选。*关机模式可以根据需要选择,建议选择“退出”,以便下一步进行其他工作
B. 将先前准备的halacpi.dll、halapic.dll、halmps.dll、halaacpi.dll、halmacpi.dll、halstnd.dll、ntkrnlmp.exe、ntkrnlpa.exe、ntkrpamp.exe、ntkrnlup.exe几个文件复制到c:\windows\system32下,将dtecthal.inf复制到c:\windows\inf下,将c盘根目录下的ntldr文件改名为ntldr_xp,将先前准备的ntldr复制到C盘根目录;去掉 C:\BOOT.INI 的只读属性,打开并在系统的启动参数中加上 /DETECTHAL 参数,如下:
[boot loader]
189
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" /noexecute=optin /fastdetect /detecthal
删除准备封装的系统的HAL 信息。删除注册表中以下键值,如果提示权限不足不能删除,则可用 setacl.exe 这个命令行工具修改权限后再删除。(好像直接在上面点右键可以修改权限)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI_HAL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL
完成上述步骤就实现了电源的判断
C.srs驱动的处理,安装realhyg的SRS驱动并导入注册表然后在sysprep.inf中添加:
[sysprepcleanup]
Service=isapnp
Service=pci
Service=ftdisk
Service=swenum
Service=update
Service=mssmbios
Service=dmio
Service=rdpdr
Upperfilter=mouclass
Service=TermDD
Upperfilter=kbdclass
Upperfilter=ALIM1541
Upperfilter=AMDAGP
Upperfilter=AGP440
Upperfilter=AGPCPQ
Upperfilter=SISAGP
Upperfilter=VIAAGP
Service=aha154x
Service=sparrow
Service=adpu160m
Service=aic78u2
Service=aic78xx
Service=cpqarray
Service=sym_hi
Service=mraid35x
Service=perc2
Lowerfilter=perc2hib
Service=hpn
Service=sym_u3
Service=symc8xx
Service=ql10wnt
Service=ql1080
Service=ql1240
Service=ql1280
Service=ql12160
Service=i2omp
Service=cd20xrnt
Service=cbidf
Service=dac960nt
Service=asc3550
Service=asc
Service=asc3350P
Service=ABP480N5
Service=amsint
Service=ini910u
Service=ultra
Service=intelide
Service=pciide
Service=cmdide
Service=toside
Service=3wareDrv
Service=3waregsm
Service=aec6210
Service=aec6260
Service=aec6280
Service=aec6290
Service=aec68x5
Service=AEC6880
Service=aec6897
Service=aec67160
Service=AEC671X
Service=ata1200a
Service=aac
Service=aar1210
Service=dpti2o
Service=adpu320
Service=a320raid
Service=aaatimeo
Service=ASH1205
Service=amdbusdr
Service=AmdEide
Service=arcm_x86
Service=ahcix86
Service=atiide
Service=aliide
Service=m5228
Service=m5281
Service=m5287
Service=m5288
Service=m5289
Service=Cpq32fs2
Service=cpqcissm
Service=HpCISSm2
Service=cpqarry2
Service=cercsr6
Service=hpt3xx
Service=hpt374
Service=hptmv
Service=Hpt366
Service=hptmv6
Service=rr232x
Service=rr2340
Service=2310_00
Service=rr172x
Service=rr174x
Service=nfrd960
Service=aacsas
Service=adp94xx
Service=iaStor55
Service=iaStor
Service=iaStor70
Service=raidsrc
Service=iteraid
Service=ipsraidn
Service=JRAID
Service=MegaIDE
Service=dac2w2k
Service=SYMMPI
Service=mv61xx
Service=mvSata
Service=mv614x
Service=nvgts
Service=nvatabus
Service=nvrd32
Service=nvraid
Service=fasttrak
Service=fasttx2k
Service=S150sx8
Service=FastSx
Service=sptrak
Service=UlSata
Service=ulsata2
Service=fttxr52P
Service=ql2100
Service=ql2200
Service=ql2300
Service=Pnp649r
Service=Pnp680
Service=Pnp680r
Service=SI3112
Service=SI3112r
Service=SI3114
Service=Si3114r5
Service=SI3114r
Service=SI3124
Service=SI3124r
Service=Si3124r5
Service=SI3132
Service=Si3132r5
Service=sisraidx
Service=SiSRaid4
Service=SiSide
Service=viamraid
Service=viapdsk
Service=videX32
Service=ViBus
Service=vmscsi
Service=3wareSrv
Service=AFAMgt
Service=ACPIEC
Service=bb-run
Service=cbidf2k
Service=cda1000
Service=dontgo
Service=isapnp
Service=SiFilter
Service=SiRemFil
Service=symc810
Service=ViPrt
Service=xfilt
这样在之前制作的BZDD.EXE中的Run("c:\sysprep\sysprep.exe -clean")命令就可以在系统部署中禁用掉不用的SRS驱动服务

D. 将bzdd.exe和blue.exe复制到c:\windows下,更改注册表项HKEY_LOCAL_MACHINE\SYSTEM\Setup\CMDLine 键的键值更改为“bzdd.exe”

E.不写注册表完美解决封装后出现个人设置和Media player图标

结束explorer.exe进程,
在任务管理器中,点文件--新建任务--浏览--在WINDOWS文件夹下找到explorer.exe文件--打开,系统就出现个人设置窗口,封装重启就不再出现个人设置,
再点开始--程序--windows media player
出现它的设置窗口,其中有一项让windows media player创建快捷方式,选中它,删除桌面上的快捷方式,封装重启后将不再出现快捷方式.
个人认为不会对系统产生不良影响
F. 避免本地连接2出现的方法:
删除
("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
新建
("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}")
删除
("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}")
新建
("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}")
按照以上方法就可以避免本地连接2的出现

四.系统减肥

关闭休眠和系统还原后重新启动计算机进入WIN PE系统,按如下减肥:
c:\windows\$*
(以$号开头的所有目录,补丁的反安装,约70M)

c:\windows\*.log
(虽然不大,但太多,看的不爽,)
c:\windows\pchealth
帮助支持中心,30M

(注意删除前把 helpctr\binaries\msconfig.exe 复制到system32目录)
c:\windows\ime\chtime
繁体输入 (没有必要,很多输入法都支持繁体) 12M
c:\windows\ime\imejp
日文输入
12M
c:\windows\ime\imejp98
日文输入 12M
c:\windows\ime\imjp8_1
日文输入 12M
c:\windows\ime\imkj6_1
韩文输入 12M
c:\windows\system32\ime\CINTLGNT
仓颉码
3M
c:\windows\system32\ime\TINTLGNT
注音输入
3M
C:\Windows\help,除 Help\Tours\mmTour\tour.exe 和 agt0*.hlp 等数字样式的文件外,再就是几个文件名全部
大写的保留,其它全部删除。      帮助文件,30M
c:\windows\temp\*
通常没东西
c:\windows\prefetch\*
c:\windows\installer\*.msi
msi程序安装后剩下的一些垃圾(长名目录不能删!)
c:\windows\Downloaded Installations\*
msi程序安装后剩下的一些垃圾
c:\windows\resources\themes\*
(建议保留Classical是经典主题,Luna.Theme是XP主题 8M,不喜欢的删除吧)
C:\Windows\srchasst,除mui目录以外,C:\Windows\msagent,除intl目录以外,其它一律删除。
c:\windows\softwareDistribution\download\*
(下载补丁临时存放点)  约60M
c:\windows\system32\oobe
激活程序(我们用的都是免激活XP,不需要) 8M
c:\windows\web\wallpaper\*
墙纸,留下一个好看的bliss.bmp即可,全删也行。 2M
c:\program files\windows nt\pinball
弹球,删了。记得删除开始菜单的连接
5M
c:\program files\movie maker
全删,10M,垃圾。记得删除开始菜单的连接
c:\program files\messenger

c:\program files\msn gaming zone
微软的游戏,垃圾
C:\Program Files\InstallShield Installation Information\*
安装程序留下的垃圾
C:\Program Files\WindowsUpdate\*
XP升级留下的垃圾

最后从启计算机,进入DOS系统,运行GHOST –NOUSB –CRCIGNORE –Z9做镜像。好了,终于写完了。
好贴!同意LZ,赞同LZ!!!!
很好的帖子!做人就要讲厚道。
佩服你,厉害,不错的贴,可以认识吗?呵呵

TOP

发新话题