社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 2243阅读
  • 1回复

nLite后期制作关键点

楼层直达
级别: 管理员
发帖
3549
飞翔币
5005
威望
64392
飞扬币
51613
信誉值
815
nLite的后期制作比nLite制作本身要重要而且要复杂的多,nLite本身是很优秀的软件,但是无论什么软件都会有BUG,这是无法避免的。
nLite的后期制作水平,绝对着一个人用nLite的能力,其实拿nLite来定制系统本来就是很简单的事情,高手和菜鸟的区别,仅仅是后期制作能力。

在说这些以前,先说一下在《nLite使用手记》中一个没有提到的地方
这个是“组件”中的“高级”选项,这个选项分上下两部分。上部分是额外保留文件列表,下部分是额外删除列表。
额外保留是对某些特定文件进行保留,例如删除帮助文件的时候会删除掉“msconfig.exe”这个很常用的工具,如果想删除帮助还保留这个工具,就在额外保留框中添加“msconfig.exe”。nLite会保留指定的文件以及所有指定文件的相关的其他各个信息。
额外删除是对某些特定的文件进行删除,这个删除不仅会删除指定文件,还会删除和指定文件相关的各个信息(当然,理论上是,但是这一点nLite还不是那么完美,偶尔会造成残留)。
下文中再次提到“额外保留”和“额外删除”均是指的这个设置框。

下文中所提及的.inf、.sif、.the类文件均可用记事本打开

1、nLite字体修正

nLite处理的系统,在进行虚拟机安装的时候会出现安装界面缺字的现象,造成这个的原因虽然不得而知,但是解决这个现象的方法到是有。额外说一句,这个现象只会出现在虚拟机安装时,实体机安装不会出现。
修正办法:
在i386下找到文件intl.inf,查找其中“simsun.ttc,,,65536”(不包含引号),删除这一行即可。





2、最少文件实现DOS下或Windows下安装系统

用完nLite会发现组件精简功能中“手动安装和升级”,这个功能提供可以在DOS或者Windows下来进行Windows系统的安装,但是如果全部保留,30多M的大小让人的确看着不爽,不过如果删除了,似乎是一种功能的缺憾。
经过高手们无数次的尝试,找到了最少文件来实现DOS或Windows下安装XP的方法。
首先,在进行nLite处理时,先把以下文件添加到额外删除框中:

OSC.CAB
SETUPACC.TXT
WINNT32.HLP
WINNT32.MSI
WINNT32A.DLL
WINNTBBA.DLL
WSDU.DLL
dwup.inf
iconlib.dll
lnkstub.exe
mdmssys.inf
migisol.exe
migpwd.exe
oschoice.exe
reminst.inf
rinorprt.sif
ristndrd.sif
setupldr.exe
startrom.com
startrom.n12
w95upgnt.dll
welcome.osc
miglibnt.dll

    nLite处理完成后,新建一个记事本,把以下各行复制进这个记事本中

cd i386
md COMPDATA-1
md WINNTUPG-1
xcopy COMPDATA\DRVMAIN.INF COMPDATA-1
xcopy COMPDATA\NTCOMPAT.INF COMPDATA-1
xcopy WINNTUPG\NETMAP.INF WINNTUPG-1
xcopy WINNTUPG\NETUPGRD.DLL WINNTUPG-1
rd /q /s WIN9XMIG
rd /q /s WIN9XUPG
rd /q /s WINNTUPG
rd /q /s COMPDATA
rd /q /s DRW
ren COMPDATA-1 COMPDATA
ren WINNTUPG-1 WINNTUPG
exit

保存,然后修改记事本后缀名为“.cmd”,这样这个记事本就变成了批处理文件,例如名字为“xxx.cmd”,把xxx.cmd复制到和i386文件夹同层,运行批处理,这样大概可以再精简掉30M。


3、处理输入法
系统自带的输入法似乎也跟不上时代了,这些输入法渐渐的被后来开发的各种其他输入法替代了,例如我机器上只有紫光拼音。
不要的输入法怎么删除?
以下是关于系统自带的输入法对应的文件:

1>微软拼音:
pmigrate.dll
pintgnt.ime
pintgnt.dic
pingtlcsk.dic
pintlcsa.dll
pintlcsd.dll
pintlcsd.dic
pintlcsk.dic
pintlgc.imd
pintlgd.imd
pintlgdx.imd
pintlgi.imd
pintlgie.imd
pintlgix.imd
pintlgl.imd
pintlgne.chm
pintlgnt.chm
pintlgnt.ime
pintlgr.imd
pintlgs.imd
pintlphr.exe
padrs804.dll
imscinst.exe
pintllime.dll
pintlgab.imd
pintlgai.imd
pintlgb.imd
pintlgnt.cnt
pintlgnt.i96
pintlgrb.imd
pintlgri.imd
pintlgs.imd
pintlgsi.imd
pintlgsx.imd
pintlgu.imd
pintlguc.imd

2>全拼
winpy.ime
winpy.mb
winpy.hlp
winpy.cnt
;winsp.ime
winsp.mb 
winsp.hlp
winsp.cnt 

3>郑码
winzm.ime 
winzm.mb 
winzm.hlp 
winzm.cnt 

4>智能ABC
Winabc.cwd
Abcsda.dll
Abcwin.exe
Winabc.ime
Winabc.ovl
tmmr.rem
user.rem
Winabc.hlp
Winabc.cnt

如果想删除哪个输入法,就把他们对应的文件添加到额外删除列表框中,但是做到这些还是不行的,还需要处理hivedef.inf、hivesys.inf、layout.inf这三个文件。

1>hivedef.inf
HKCU,"Keyboard Layout\Toggle",Hotkey,0x00000002,"2"
HKCU,"Keyboard Layout\Preload","1",0x00000002,"00000804"
HKCU,"Keyboard Layout\Preload","2",0x00000002,"E00E0804"
HKCU,"Keyboard Layout\Preload","3",0x00000002,"E0010804"
HKCU,"Keyboard Layout\Preload","4",0x00000002,"E0030804"
HKCU,"Keyboard Layout\Preload","5",0x00000002,"E0040804"
找到上面的几行,这个是输入法进行切换的时候调出的顺序,分别对应:
HKCU,"Keyboard Layout\Preload","1",0x00000002,"00000804"(美式键盘)
HKCU,"Keyboard Layout\Preload","2",0x00000002,"E00E0804"(微软拼音)
HKCU,"Keyboard Layout\Preload","3",0x00000002,"E0010804"(全拼)
HKCU,"Keyboard Layout\Preload","4",0x00000002,"E0030804"(郑码)
HKCU,"Keyboard Layout\Preload","5",0x00000002,"E0040804"(智能ABC)
删除某些输入法后,一定要调整输入法切换顺序,例如删除了全拼和郑码以后,这几行应该变成:
HKCU,"Keyboard Layout\Toggle",Hotkey,0x00000002,"2"
HKCU,"Keyboard Layout\Preload","1",0x00000002,"00000804"
HKCU,"Keyboard Layout\Preload","2",0x00000002,"E00E0804"
HKCU,"Keyboard Layout\Preload","3",0x00000002,"E0040804"
如果不进行修改,切换输入法将报错。

2>hivesys.inf
主要有如下几行和输入法相关:

微软拼音:
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E00E0804","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E00E0804","Layout Text",0x00000000,"%KLT_91%"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E00E0804","IME File",0x00000000,"pintlgnt.ime"

全拼:
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010804","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010804","Layout Text",0x00000000,"%KLT_73%"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010804","IME File",0x00000000,"winpy.ime"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0020804","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0020804","Layout Text",0x00000000,"%KLT_74%"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0020804","IME File",0x00000000,"winsp.ime"

郑码:
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0030804","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0030804","Layout Text",0x00000000,"%KLT_75%"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0030804","IME File",0x00000000,"winzm.ime"

智能ABC:
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0040804","Layout File",0x00000000,"kbdus.dll"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0040804","Layout Text",0x00000000,"%KLT_76%"
HKLM,"SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0040804","IME File",0x00000000,"winabc.ime"

如果删除了相应输入法,就要删除这里的相关键值才行。

3>layout.inf
(这里其实可以不用修改,可选)

微软拼音:
PINTLGNT.IME  = 100,,482304,,,,,2,0,0
PINTLPHR.EXE  = 100,,70144,,,,,204,0,0
IMSCINST.EXE  = 100,,59392,,,,,204,0,0
PMIGRATE.DLL  = 100,,67584,,,,,204,0,0
PINTLGC.IMD    = 100,,188140,,,,,204,0,0
PINTLGD.IMD    = 100,,825038,,,,,204,0,0
PINTLGDX.IMD  = 100,,867242,,,,,204,0,0
PINTLGI.IMD    = 100,,948656,,,,,204,0,0
PINTLGIX.IMD  = 100,,1004904,,,,,204,0,0
PINTLGL.IMD    = 100,,208744,,,,,204,0,0
PINTLGNE.CHM  = 100,,114148,,,,,204,0,0
PINTLGNT.CHM  = 100,,96585,,,,,204,0,0
PINTLGR.IMD    = 100,,733292,,,,,204,0,0
PINTLGS.IMD    = 100,,10011497,,,,,204,0,0
PINTLCSD.DIC  = 100,,174803,,,,,205,0,0
PINTLCSK.DIC  = 100,,487472,,,,,205,0,0
PINTLCSA.DLL  = 100,,175104,,,,,205,0,0
PINTLCSD.DLL  = 100,,53760,,,,,205,0,0
PINTLPAD.CHM  = 1,,,,,,,21,0,0
PINTLPAD.HLP  = 1,,,,,,,2,0,0
PINTLPAE.CHM  = 1,,,,,,,21,0,0
PINTLPAE.HLP  = 1,,,,,,,2,0,0

全拼:
WINPY.CHM      = 1,,,,,,,21,0,0
WINPY.IME      = 100,,156672,,,,,2,0,0
WINPY.MB      = 1,,,,,,,2,0,0
WINSP.CHM      = 1,,,,,,,21,0,0
WINSP.IME      = 100,,156672,,,,,2,0,0
WINSP.MB      = 1,,,,,,,2,0,0

郑码:
WINZM.CHM      = 1,,,,,,,21,0,0
WINZM.IME      = 100,,156672,,,,,2,0,0
WINZM.MB      = 1,,,,,,,2,0,0

智能ABC:
WINABC.CNT    = 1,,,,,,,2,0,0
WINABC.HLP    = 1,,,,,,,2,0,0
WINABC.CWD    = 1,,,,,,,2,0,0
WINABC.IME    = 100,,98304,,,,,2,0,0
WINABC.OVL    = 1,,,,,,,2,0,0


4、DOS和Windows下安装造成东亚语言包不能自动安装问题不完全解决
这个问题笔者其实很郁闷,没有太弄明白这个的原理。但是目前笔者按以下步骤做,可以实现DOS和Windows下安装系统时自动安装东亚语言包。

1>保留所有关于内码输入法的文件
这个很简单,只要是wingb相关的,不要进行删除就好了。

2> intl.inf
修改intl.inf中的“wingb.ime = 7,,,,,,,0,0”为“wingb.ime= 1,,,,,,,0,0”

3>winnt.sif
[RegionalSettings]
LanguageGroup = 10
SystemLocale = "0804"
UserLocale = "0804"
UserLocale_DefaultUser = "0804"
InputLocale = "0804:00000804"
InputLocale_DefaultUser = "0804:00000804"

4>内码键盘布局
nLite精简键盘布局时留下“NeiMa 键盘布局”

5、破解Winlogon.exe
为什么要破解这个呢?因为破解了这个可以删除以下4个文件
oembios.bin
oembios.cat
oembios.dat
oembios.sig
这4个文件大概有12M大,而且Winlogon.exe只要破解的完美了,不会对系统造成任何问题。
现在网络上有高人破解好的Winlogon.exe,下载就可以。

把上述4个文件添加到“额外删除”列表,nLite处理完毕以后用破解的Winlogon.exe替换i386目录下原有的即可。
替换完毕后需要在Hivedef.inf中添加以下键值:
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents","OOBETimer",0x1,ff,d5,71,d6,8b,6a,8d,6f,d5,33,93,fd
不添加会造成用一些软件检测时提示需要30天激活,其实这个30天一直不会变动,始终是30天,添加以上键值以后,激活提示变成“不需要激活”
非免激活版的Windows无法以这种办法达到免激活,请勿尝试。


6、luna主题修正
nLite精简过的系统会造成找不到luna主题的桌面(就是蓝天白云的那个),这个似乎是nLite的一个BUG,不过好在我们可以修正这个问题。
进入i386文件夹,找到“luna.th_”,用7z解压开这个文件得到“luna.the”,
1>、
找到其中:
Wallpaper=%WinDir%web\wallpaper\Bliss.bmp
改为:
Wallpaper=%WinDir%web\wallpaper\Bliss.jpg
2>、
找到其中:
Wallpaper.MUI=@themeui.dll,-2036
删除这一行。
处理完以后,用CBin把“luna.the”压缩得到“luna.th_”

   
到这里,可以做的修正和改进工作就做完了,以上6点是最基本的nLite后期制作和处理,希望我的经验可以给大家带来方便!


补充说一点,大家可能遇到过精简完的系统USB设备有问题,每一次插设备都提示装驱动而不是自动安装。
还有一点就是精简了再封装时所有驱动都不自动安装的问题。
关于这个问题笔者尝试了很多次,最后碰巧获得了一个方法,就是用原版的layout.inf,usbstor.inf,usbstor.sys替换精简完的系统里的相同文件。替换完了竟然好了……

1、输入法可以只剩下:简体中文 - 美式键盘
2、USB 问题应该是用户删除了自以为可以删除了的文件。例如:.log  .tmp .txt... 等等
3、使用DOS及WINDOWS下安装觉得不好,原因:
  1、精简增大了;
  2、安装不干净(当前的系统正在使用,再安装一个XP下去是否觉得不好?使用光盘安装将需安装的盘格式化再安装就最干净的安装了);
  3、安装慢(它会先将光盘文件复制到硬盘再开始启动安装为光盘直接安装的方式)。
 
我们一直在努力!
级别: 光盘高级
发帖
2364
飞翔币
231
威望
1698
飞扬币
1491
信誉值
0

只看该作者 1 发表于: 2008-10-22
非常好的分享哦