Windows n合1启动光盘制作攻略
——实战Boot Scriptor
在“Windows n合1 启动光盘制作攻略——Windows 2000 3合1与Windows XP 2合1启动光盘的制作方法”一文中我讲解了Windows 2000 3合1光盘与Windows XP 2合1的光盘的制作原理与制作方法,相信各位朋友一定会有所启发,有些人已经自己动手操作了。但是后来发现,上文中有些错误,当时没有考虑到,这里修正如下:
(1)Windows 2000:如果集成了SP2或SP3,一定要将i386子目录中的文件txtsetup.sif复制到各自的安装目录下(或者干脆用i386中的同名文件全部替换),覆盖掉原来的文件,否则安装时系统报错。
(2)Windows XP:用CDImage制作ISO映像文件时,原来的“-n”参数要修改为“-j1”,否则ISO文件能够通过虚拟机测试,但烧录到光盘后会找不到ASMS目录里的文件,因为路径刚刚超过8层。
各位朋友制作好了2合1、3合1后,一定希望弄个5合1、6合1、8合1、xx合1,把各个版本的操作系统通通搜罗进来!很好,如果你有DVD刻录机的话,或者有1.3 GB的DDCD刻录机,我就来满足你的这个愿望:MS & Linux xx合1启动版,只要你的DVD足够大。但是我不会帮你做,我只提供一个通用的办法。还是让我们以Windows 2000 3合1为例来讲解吧。
1. 所需工具
(1)WPROSECT.DAT、WSRVSECT.DAT、ASRVSECT.DAT
必须。Windows 2000光盘启动引导文件。这三个文件其实是一样的,只是其中原来的字符串“i386”分别被替换成了“wpro”、“wsrv”和“asrv”。
下载地址:http://www.tech-hints.com/files/2kroot.zip
(2)CDImage.exe(命令行界面)或CDImagegui.exe(图形界面)
必须。可启动光盘镜像制作工具,生成标准的ISO文件,同时优化光盘上的文件。
下载地址:http://www.tech-hints.com/prog/cdimage.zip,http://www.tech-hints.com/prog/cdimagegui.zip
(3)WinImg
可选。解Windows 2000安装软盘组的img文件。可替换方法是制作4张安装软盘,然后将4张软盘上的全部文件复制到硬盘相应目录下。
下载地址:http://www.winimage.com/winimage/winima60.zip
(4)UltraEdit
可选。十六进制编辑器。
下载地址:ftp://ultraedit.com/uedit32.zip
(5)Windows 2000安装软盘组
必须。用软盘引导机器,加载必要的系统文件及基本驱动程序,然后从光盘继续安装。
Windows 2000安装软盘组在正版光盘的bootdisk目录下,三个版本的安装软盘是不同的,不能混用。
(6)Windows 2000 Service Pack 3
可选。将Windows 2000 Service Pack 3集成进Windows 2000的三个版本中,这样安装完毕的Windows 2000就集成了Service Pack 3,不必再单独安装了。
下载地址:http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/CN/W2Ksp3.exe
(7)VMware(或Virtual PC)和Nero
可选。测试制作完成的3合1镜像文件并烧录光盘。
(8)Boot Scriptor
必须。多重启动光盘管理器。这个软件的版本发展非常快,各版本之间的功能大不相同,目前能够下载的是1.2.3b,如果以后出了新版本,可以参考这里的做法。
下载地址:http://tigger.cc.uic.edu/~mterlo1/bscript/distro/Boot%20Scriptor%20(1.2.3b).zip
2. 目录及文件结构
保证硬盘上有足够空余空间(假设将文件存放在硬盘d:,全部三个版本的原始文件约占用空间为1.24 GB,生成的镜像文件约为502 MB),建立如下目录结构,并复制文件cdimage.exe到相应位置:
d:win2kcdimage.exe
d:win2k
ootasrv
d:win2k
ootwpro
d:win2k
ootwsrv
其中,d:win2k
oot是Windows 2000 3合1光盘的根目录,d:win2k
ootasrv用于存放Windows 2000高级服务器版文件,d:win2k
ootwsrv用于存放Windows 2000服务器版文件,d:win2k
ootwpro用于存放Windows 2000专业版文件。
3. 文件复制
将Windows 2000高级服务器版光盘上的文件全部复制到asrv目录,将Windows 2000服务器版光盘上的文件全部复制到wsrv目录,将Windows 2000专业版光盘上的文件全部复制到wpro目录。
必须确保复制了全部文件和子目录,包括具有系统和隐藏属性的。
复制完毕后,清除d:win2k
oot下全部文件和子目录的系统、隐藏和只读属性。
将d:win2k
ootasrv目录下的cdrom_ia.5和cdrom_nt.5复制到d:win2k
oot,将d:win2k
ootwsrv目录下的cdrom_is.5复制到d:win2k
oot,将d:win2k
ootwpro目录下的cdrom_ip.5复制到d:win2k
oot。
要点:d:win2k
oot下面必须有cdrom_ia.5、cdrom_is.5、cdrom_ip.5和cdrom_nt.5文件,这是我们欺骗安装程序的标志:这张光盘是Windows 2000的原始安装盘。
4. 将Service Pack 3集成到Windows 2000各版本中
运行w2ksp3.exe /x将Service Pack 3全部文件提取出来,假设提取到f: mp。在f: mpi386update下分别运行命令行命令:
update.exe -s:-D:win2k
ootasrv
update.exe -s:-D:win2k
ootwsrv
update.exe -s:-D:win2k
ootwpro
上述命令运行完毕后,Service Pack 3已经集成到Windows 2000各版本中,且d:win2k
ootasrv、d:win2k
ootwsrv、d:win2k
ootwpro各目录下应有一文件cdromsp3.tst,将其复制到d:win2k
oot。
要点:d:win2k
oot下面必须有cdromsp3.tst文件,否则安装程序会要求我们插入Service Pack 3光盘。
5. 跳过输入产品序列号
查找各个版本i386目录,找到文件setupp.ini,用记事本打开,将其中的“Pid=xxxxx000”修改为“Pid=xxxxx270”,存盘退出。这一步不是必须的,只是图个方便。
6. 配置安装程序
Windows 2000正版光盘上有个bootdisk子目录,里面包含4张Windows 2000安装软盘镜像的img文件。用WinImg将各个版本bootdisk目录下的4个img文件分别释放到各自的系统文件目录下:
d:win2k
ootwproootdisk的img文件全部释放到d:win2k
ootwpro下。
d:win2k
ootwsrvootdisk的img文件全部释放到d:win2k
ootwsrv下。
d:win2k
ootasrvootdisk的img文件全部释放到d:win2k
ootasrv下。
要点:这是我们模拟软盘安装的关键,一定要连带system32目录(里面有两个文件)一起释放。
如果集成了Service Pack 3,需要将wpro、wsrv、asrv下面的文件用各自i386目录下面的文件替换(实际上只需要替换txtsetup.sif就行了),即将启动软盘组中的文件也替换为集成Service Pack 3后的文件。注意:一定不要替换system32中的文件,否则无法安装。
要替换这一大堆文件比较繁琐,可以用两个办法:
(1)xxcopy法。下载xxcopy(http://www.xxcopy.com/),执行下面的命令:
xxcopy d:win2k
ootwproi386 d:win2k
ootwpro /U /E /YY
xxcopy d:win2k
ootwsrvi386 d:win2k
ootwsrv /U /E /YY
xxcopy d:win2k
ootasrvi386 d:win2k
ootasrv /U /E /YY
替换完成后删除wpro、wsrv、asrv下面的空目录(xxcopy替换的副产品)即可。
(2)批处理替换法。以wpro目录为例:
dir d:win2k
ootwpro*.* >1.bat
move d:win2k
ootwpro1.bat d:win2k
ootwproi386
用Ultraedit编辑1.bat,只保留文件名,每个文件名一行,修改每行的命令为
copy [文件名] d:win2k
ootwpro
存盘退出,在d:win2k
ootwproi386目录下运行1.bat,d:win2k
ootwproi386目录没有而d:win2k
ootwpro有的文件不替换。其他两个版本如法炮制。
7. 修改setupldr.bin和txtsetup.sif
用Ultraedit打开d:win2k
ootasrvsetupldr.bin,用ASCII方式替换“i386”为“asrv”,共3处;
用Ultraedit打开d:win2k
ootwsrvsetupldr.bin,用ASCII方式替换“i386”为“wsrv”,共3处;
用Ultraedit打开d:win2k
ootwprosetupldr.bin,用ASCII方式替换“i386”为“wpro”,共3处。
存盘退出。
用Ultraedit打开d:win2k
ootasrv xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "asrv"”;
用Ultraedit打开d:win2k
ootwsrv xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "wsrv"”;
用Ultraedit打开d:win2k
ootwpro xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "wpro"”。
存盘退出。
要点:这两个文件中的路径告诉安装程序从何处复制文件,必须与目录结构相匹配。
8. 启动菜单的制作
释放文件Boot Scriptor (1.2.3b).zip,将其中的bscript子目录复制到d:win2k
oot,将bscriptloader.bin(光盘引导器)移动到d:win2k,删除bscriptscriptw.com,bscriptmodules中的文件不动(尽管有些是我们不需要的,但文件很小)。
释放2kroot.zip,将其中的文件WPROSECT.DAT、WSRVSECT.DAT、ASRVSECT.DAT复制到d:win2k
ootscript。
9. 编写启动菜单配置文件bscriptscript.ini
start:
clear
print c "
c17===================================================
"
print c "c17 c1fWindows 2000 Setupc17
"
print c "c17—————————————————
"
print c "c17
"
print c "c17 c1f1c17 Windows 2000 Professional
"
print c "c17 c1f2c17 Windows 2000 Server
"
print c "c17 c1f3c17 Windows 2000 Advanced Server
"
print c "c17
"
print c "c17 c1fFc17 Boot from first Floppy Drive
"
print c "c17 c1f Escc17 Boot from first Hard Disk
"
print c "c17
"
print c "c17—————————————————
"
print c "c17 Select the item and then press Enter
"
print c "c17===================================================
"
;
start1:
call drawscrn
setpos 1 7
print c "c3f 1c31 Windows 2000 Professional "
key1:
getkey
call mainkey
onkey space goto item_1
onkey enter goto item_1
onkey up goto start5
onkey down goto start2
goto key1
;
start2:
call drawscrn
setpos 1 8
print c "c3f 2c31 Windows 2000 Server "
key2:
getkey
call mainkey
onkey space goto item_2
onkey enter goto item_2
onkey up goto start1
onkey down goto start3
goto key2
;
start3:
call drawscrn
setpos 1 9
print c "c3f 3c31 Windows 2000 Advanced Server "
key3:
getkey
call mainkey
onkey space goto item_3
onkey enter goto item_3
onkey up goto start2
onkey down goto start4
goto key3
;
start4:
call drawscrn
setpos 1 11
print c "c3f Fc31 Boot from first Floppy Drive "
key4:
getkey
call mainkey
onkey space boot 0x00
onkey enter boot 0x00
onkey up goto start3
onkey down goto start5
goto key4
;
start5:
call drawscrn
setpos 1 12
print c "c3f Escc31 Boot from first Hard Disk "
key5:
getkey
call mainkey
onkey space boot 0x80
onkey enter boot 0x80
onkey up goto start4
onkey down goto start1
goto key5
;
mainkey:
onkey 1 goto item_1
onkey 2 goto item_2
onkey 3 goto item_3
onkey f boot 0x00
onkey F boot 0x00
onkey esc boot 0x80
return
;
item_1:
cls
chain WPROSECT.DAT
goto start1
;
item_2:
cls
chain WSRVSECT.DAT
goto start2
;
item_3:
cls
chain ASRVSECT.DAT
goto start3
;
drawscrn:
setpos 1 7
print c "c1f 1c17 Windows 2000 Professional
"
print c "c1f 2c17 Windows 2000 Server
"
print c "c1f 3c17 Windows 2000 Advanced Server
"
print c "
"
print c "c1f Fc17 Boot from first Floppy Drive
"
print c "c1f Escc17 Boot from first Hard Disk "
return
;
eof:
;
这个菜单配置文件看起来挺复杂,实际上大量的代码都是为了使用光标键而重复的。除了界面有点简陋外(你可以加上ANSI制表符等高位DOS扩展符),这个配置文件实现了彩色字符、光标键选择、从软盘启动、从硬盘启动等多种功能。
10. 制作ISO文件
CDImage程序加“-o”参数优化后生成的镜像文件约为502 MB,我们假设将它存放在f:盘的根目录下,命令行命令如下:
d:win2kcdimage -lWin2K-3in1 -t01/10/2000,12:00:00 -g -h -j1 -o -m -bd:win2kloader.bin d:win2k
oot f:w2k-3in1.iso
11. 测试ISO文件
用VMware加载w2k-3in1.iso文件,设置第1启动设备为光驱。从光盘启动后,系统将显示启动菜单,将显示条移动到相应的项目上,然后按回车键;也可以直接按快捷键。
提示:如果仅仅为了测试菜单的效果,可以不删除bscriptscriptw.com,直接运行bscriptw.com,它将显示BscriptBscript.Ini的效果。
12. 增加特殊文件
可以根据个人的爱好,在光盘上再增加一些特殊文件,例如新版IE、DirectX及一些专用的驱动程序等,只需将其复制到d:win2k
oot目录下,并重新制作ISO文件。
13.烧录光盘
ISO镜像文件测试无误后,即可用自己熟悉的烧录软件软件(例如Nero)将其烧录到光盘。 这样,一张可启动的Windows 2000 3合1光盘就制作完成了。当然,最好再用光盘正式地安装一遍,因为VMware测试与光盘测试是不完全一样的。
14.集成Windows XP
Windows XP与Windows 2000的制作原理是一样的,如果要集成进去,只需要修改WPROSECT.DAT,将其中的“wpro”改为XP文件所在目录即可,并修改启动菜单配置文件bscriptscript.ini。这样的一张光盘优化以后大概有1 GB(Windows 2000与Windows XP相同的文件不多),你要考虑的首要问题是用什么盘来烧录。
15.DOS、Windows 9x与Linux等可启动型n合1的制作
DOS、Windows 9x和Linux等启动光盘都是采用单张软盘映像的,如何增加这类系统呢?简单得很:增加一个启动选项,并将BSCRIPT.INI中的chain WPROSECT.DAT修改为启动软盘映像就行了。假设软盘映像为boot1.img,具体方法有三种:
(1)diskemu boot1.img
(2)memdisk boot1.img
(3)isolinux boot1.img
这几种方法都需要用到bscriptmodules中的相应模块。三种方法的效果是不一样的,其中diskemu模拟法速度最快,兼容性最好,只在1.2.3b版本中刚刚引进,建议采用。其他两种是ISOLINUX所采用的传统方法。
16.特色点评
优点:彩色菜单,光标移动,xx合1,……,这是目前最最新、最最牛、最最棒、最最神奇、最最最最……的方法。
缺点:Boot Scriptor的发展太快,各版本之间有点不兼容,但说实在的,后面的版本越来越好,尤其是diskemu的引入,最激动人心,最大得人心,最大快人心,几乎彻底解决了映像文件的兼容性问题。
Windows n合1 启动光盘制作攻略
——Windows 2000 3合1与Windows XP 2合1启动光盘的制作方法
Windows 2000 3合1光盘(简体中文专业版+简体中文服务器版+简体中文高级服务器版)已经在街面上流行很久了,Windows XP 2合1的光盘(简体中文专业版+简体中文家庭版)最近也开始上街了。这些n合1的光盘中,有些是不能用光盘进行启动的,我们只能在DOS下安装;有些是能够光盘启动并从光盘正常安装的。不能启动的n合1光盘的制作非常简单,我们没有必要去讨论,我们最感兴趣的是哪些能够用光盘启动并正常安装的n合1光盘,本文的宗旨就是研究一下这类光盘的基本原理及制作方法。
可启动型n合1光盘使用了多重启动光盘技术,这种技术近几年来开始流行,但目前尚未形成统一的工业标准,有多种方法可以实现它。最初,该技术采用的工具是CD启动模拟器:diskemu1x(我们应该感谢Bart和Gary Tong,他们总能够写出一些能够完成伟大工程的小程序)。diskemu1x功能很强大,使用也比较容易,但很可惜,Bart已经不再继续开发它了(参见http://www.nu2.nu/diskemu/)。所幸的是,Bart并没有放弃对Windows 2000 3合1的兴趣,他搞了一个体积更小巧,使用更容易,针对性更强的东西:w2kall.bin,Windows 2000通用启动引导器(再次感谢Bart)。目前街面上还没有使用w2kall制作的Windows 2000 3合1光盘。由于w2kall.bin附带的说明非常简短,网上更是无法查找到相关的信息,有鉴于此,我对它进行了一番研究,用w2kall成功地制作出了Windows 2000 3合1光盘。经过另一番试验,又成功地制作出了Windows XP 2合1光盘。下面就是我的一些心得体会,愿与各位朋友共享。
一、Windows 2000/XP多重启动光盘的启动原理
Windows 2000/XP各版本的原始安装光盘是单重启动,其引导文件中固化了光盘根目录下的i386目录(这一点给制作多重启动的n合1光盘制造了最大的障碍),该目录中不仅存放了Windows 2000/XP的系统文件,而且还存放了安装所需的安装文件和驱动程序。其引导过程如下:
光盘引导->setupldr->ntdetect->加载驱动程序->读txtsetup.sif->开始光盘安装
上述多个步骤中都涉及了光盘根目录下的i386目录,而我们将制作的n合1光盘是多重启动的,每个版本都包含一个i386子目录,它与单重启动光盘的目录结构不同(在光盘根目录与i386目录之间多了1层版本目录),因此不能简单地照搬单重启动的引导过程。所幸前辈高手们早就碰到了这个难题,而且也非常巧妙地解决了,那就是使用Windows 2000/XP的安装软盘组:用软盘启动计算机,依次加载所需驱动程序及必要的系统文件,从而避开安装时到光盘根目录下的i386目录加载安装文件和驱动程序,然后安装程序再从Windows 2000/XP安装光盘中安装复制其余的文件,继续安装。我们所要模拟的就是这一过程。改造后的n合1光盘引导过程如下:
光盘引导->选择版本模块->模拟软盘启动->setupldr->ntdetect->加载驱动程序->读txtsetup.sif->开始光盘安装
并将上述多个步骤中都涉及到的光盘根目录下的i386目录更改为光盘根目录下的版本目录(该目录中将存放安装软盘组上的文件)。
二、Windows 2000 3合1启动光盘的制作
1. 所需工具
(1)w2kall.bin
必须。Windows 2000光盘启动引导文件。
下载地址:http://www.tech-hints.com/files/w2kall.zip
(2)CDImage.exe(命令行界面)或CDImagegui.exe(图形界面)
必须。可启动光盘镜像制作工具,生成标准的ISO文件,同时具有优化光盘上文件的功能,使相同的文件只刻录1个,其他的文件都连接到该文件,有点类似Unix的功能。
下载地址:http://www.tech-hints.com/prog/cdimage.zip,http://www.tech-hints.com/prog/cdimagegui.zip
(3)WinImg
可选。解Windows 2000安装软盘组的img文件。可替换方法是制作4张安装软盘,然后将4张软盘上的全部文件复制到硬盘相应目录下。
下载地址:http://www.winimage.com/winimage/winima60.zip
(4)UltraEdit
可选。十六进制编辑器,修改启动引导文件中的显示文字。
下载地址:ftp://ultraedit.com/uedit32.zip
(5)Windows 2000安装软盘组
必须。用软盘引导机器,加载必要的系统文件及基本驱动程序,然后从光盘继续安装。
Windows 2000安装软盘组在正版光盘的bootdisk目录下,三个版本的安装软盘是不同的,不能混用。
(6)Windows 2000 Service Pack 3
可选。将Windows 2000 Service Pack 3集成进Windows 2000的三个版本中,这样安装完毕的Windows 2000就集成了Service Pack 3,不必再单独安装了。
下载地址:http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/CN/W2Ksp3.exe
(7)VMware(或Virtual PC)和Nero
可选。测试制作完成的3合1镜像文件并烧录光盘。
2. 目录及文件结构
保证硬盘上有足够空余空间(假设将文件存放在硬盘d:,全部三个版本的原始文件约占用空间为1.24 GB,生成的镜像文件约为502 MB),建立如下目录结构,并复制文件w2kall.bin、cdimage.exe到相应位置:
d:win2kw2kall.bin
d:win2kcdimage.exe
d:win2k
ootasrv
d:win2k
ootwpro
d:win2k
ootwsrv
其中,d:win2k
oot是Windows 2000 3合1光盘的根目录,d:win2k
ootasrv用于存放Windows 2000高级服务器版文件,d:win2k
ootwsrv用于存放Windows 2000服务器版文件,d:win2k
ootwpro用于存放Windows 2000专业版文件。
要点:“asrv”、“wsrv”和“wpro”的目录名称是固定在w2kall.bin中的,只能是4个字符长度。若需要存放在其他目录下,需要用UltraEdit修改w2kall.bin文件,找到“WPROWSRVASRV”,将其替换为其他名称,并相应修改目录结构。此外,还必须在后面的配置中进行相应修改。
3. 文件复制
将Windows 2000高级服务器版光盘上的文件全部复制到asrv目录,将Windows 2000服务器版光盘上的文件全部复制到wsrv目录,将Windows 2000专业版光盘上的文件全部复制到wpro目录。
必须确保复制了全部文件和子目录,包括具有系统和隐藏属性的。
复制完毕后,清除d:win2k
oot下全部文件和子目录的系统、隐藏和只读属性。
将d:win2k
ootasrv目录下的cdrom_ia.5和cdrom_nt.5复制到d:win2k
oot,将d:win2k
ootwsrv目录下的cdrom_is.5复制到d:win2k
oot,将d:win2k
ootwpro目录下的cdrom_ip.5复制到d:win2k
oot。
要点:d:win2k
oot下面必须有cdrom_ia.5、cdrom_is.5、cdrom_ip.5和cdrom_nt.5文件,这是我们欺骗安装程序的标志:这张光盘是Windows 2000的原始安装盘。
4. 将Service Pack 3集成到Windows 2000各版本中
运行w2ksp3.exe /x将Service Pack 3全部文件提取出来,假设提取到f: mp。在f: mpi386update下分别运行命令行命令:
update.exe -s:-D:win2k
ootasrv
update.exe -s:-D:win2k
ootwsrv
update.exe -s:-D:win2k
ootwpro
上述命令运行完毕后,Service Pack 3已经集成到Windows 2000各版本中,且d:win2k
ootasrv、d:win2k
ootwsrv、d:win2k
ootwpro各目录下应有一文件cdromsp3.tst,将其复制到d:win2k
oot。
要点:d:win2k
oot下面必须有cdromsp3.tst文件,否则安装程序会要求我们插入Service Pack 3光盘。
5. 跳过输入产品序列号
查找各个版本i386目录,找到文件setupp.ini,用记事本打开,将其中的“Pid=xxxxx000”修改为“Pid=xxxxx270”,存盘退出。这一步不是必须的,只是图个方便。
6. 配置安装程序
Windows 2000正版光盘上有个bootdisk子目录,里面包含4张Windows 2000安装软盘镜像的img文件。用WinImg将各个版本bootdisk目录下的4个img文件分别释放到各自的系统文件目录下:
d:win2k
ootwproootdisk的img文件全部释放到d:win2k
ootwpro下。
d:win2k
ootwsrvootdisk的img文件全部释放到d:win2k
ootwsrv下。
d:win2k
ootasrvootdisk的img文件全部释放到d:win2k
ootasrv下。
要点:这是我们模拟软盘安装的关键,一定要连带system32目录(里面有两个文件)一起释放。
从d:win2k
ootwproi386目录中复制bootfix.bin,将其分别粘贴到d:win2k
ootasrv、d:win2k
ootwpro和d:win2k
ootwsrv。该文件的作用就是光盘启动后显示一条信息“Press any key to boot from CD.”,并等待5秒钟,若没有按键,则从硬盘启动;否则从光盘启动。
如果觉得5秒的延时太短,可以用UltraEdit编辑该文件,找到“Press any key to boot from CD.”后面的“49 00 12 00”,将“49”改为“AA”延时可达10秒,改为“FF”延时可达15秒。
如果集成了Service Pack 3,需要将wpro、wsrv、asrv下面的文件用各自i386目录下面的文件替换(实际上只需要替换txtsetup.sif就行了),即将启动软盘组中的文件也替换为集成Service Pack 3后的文件。注意:一定不要替换system32中的文件,否则无法安装。
要替换这一大堆文件比较繁琐,可以用两个办法:
(1)xxcopy法。下载xxcopy(http://www.xxcopy.com/),执行下面的命令:
xxcopy d:win2k
ootwproi386 d:win2k
ootwpro /U /E /YY
xxcopy d:win2k
ootwsrvi386 d:win2k
ootwsrv /U /E /YY
xxcopy d:win2k
ootasrvi386 d:win2k
ootasrv /U /E /YY
替换完成后删除wpro、wsrv、asrv下面的空目录(xxcopy替换的副产品)即可。
(2)批处理替换法。以wpro目录为例:
dir d:win2k
ootwpro*.* >1.bat
move d:win2k
ootwpro1.bat d:win2k
ootwproi386
用Ultraedit编辑1.bat,只保留文件名,每个文件名一行,修改每行的命令为
copy [文件名] d:win2k
ootwpro
存盘退出,在d:win2k
ootwproi386目录下运行1.bat,d:win2k
ootwproi386目录没有而d:win2k
ootwpro有的文件不替换。其他两个版本如法炮制。
7. 修改setupldr.bin和txtsetup.sif
用Ultraedit打开d:win2k
ootasrvsetupldr.bin,用ASCII方式替换“i386”为“asrv”,共3处;
用Ultraedit打开d:win2k
ootwsrvsetupldr.bin,用ASCII方式替换“i386”为“wsrv”,共3处;
用Ultraedit打开d:win2k
ootwprosetupldr.bin,用ASCII方式替换“i386”为“wpro”,共3处。
存盘退出。
用Ultraedit打开d:win2k
ootasrv xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "asrv"”;
用Ultraedit打开d:win2k
ootwsrv xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "wsrv"”;
用Ultraedit打开d:win2k
ootwpro xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "wpro"”。
存盘退出。
要点:这两个文件中的路径告诉安装程序从何处复制文件,必须与目录结构相匹配。
8. 启动菜单的修改
Windows 2000启动引导文件w2kall.bin中已经内置了Windows 2000 3合1的启动菜单:
[A] Windows 2000 Professional – English
[B] Windows 2000 Server – English
[C] Windows 2000 Advanced Server – English
Choose an option and press [Enter]:
所以我们不需再单独配置启动菜单。若需要修改该菜单,只需用UltraEdit打开w2kall.bin,找到相应的ASCII字符串,并修改为合适的字符串。例如,去掉所有的“ – English”。
9. 配置完毕的目录结构及文件列表
d:win2kcdimage.exe
d:win2kw2kall.bin
d:win2k
ootcdrom_ia.5
d:win2k
ootcdrom_ip.5
d:win2k
ootcdrom_is.5
d:win2k
ootcdrom_nt.5
d:win2k
ootcdromsp3.tst
d:win2k
ootasrv1394bus.sy_
d:win2k
ootasrvabp480n5.sy_
d:win2k
ootasrvacpi.sy_
d:win2k
ootasrvacpiec.sy_
d:win2k
ootasrvadpu160m.sy_
d:win2k
ootasrvaha154x.sy_
d:win2k
ootasrvaic116x.sy_
d:win2k
ootasrvaic78u2.sy_
d:win2k
ootasrvaic78xx.sy_
d:win2k
ootasrvamsint.sy_
d:win2k
ootasrvasc.sy_
d:win2k
ootasrvasc3350p.sy_
d:win2k
ootasrvasc3550.sy_
d:win2k
ootasrvatapi.sy_
d:win2k
ootasrvautorun.inf
d:win2k
ootasrviosinfo.inf
d:win2k
ootasrvootfix.bin
d:win2k
ootasrvootfont.bin
d:win2k
ootasrvootvid.dl_
d:win2k
ootasrvuslogic.sy_
d:win2k
ootasrvc_936.nl_
d:win2k
ootasrvcd20xrnt.sy_
d:win2k
ootasrvcdfs.sy_
d:win2k
ootasrvcdrom.sy_
d:win2k
ootasrvcdrom_ia.5
d:win2k
ootasrvcdrom_nt.5
d:win2k
ootasrvcdromsp3.tst
d:win2k
ootasrvclass2.sy_
d:win2k
ootasrvclasspnp.sy_
d:win2k
ootasrvcpqarray.sy_
d:win2k
ootasrvcpqarry2.sy_
d:win2k
ootasrvcpqfcalm.sy_
d:win2k
ootasrvcpqfws2e.sy_
d:win2k
ootasrvdac960nt.sy_
d:win2k
ootasrvdisk.sy_
d:win2k
ootasrvdisk101
d:win2k
ootasrvdisk102
d:win2k
ootasrvdisk103
d:win2k
ootasrvdisk104
d:win2k
ootasrvdmboot.sy_
d:win2k
ootasrvdmio.sy_
d:win2k
ootasrvdmload.sy_
d:win2k
ootasrvfastfat.sy_
d:win2k
ootasrvfd16_700.sy_
d:win2k
ootasrvfdc.sy_
d:win2k
ootasrvfireport.sy_
d:win2k
ootasrvflashpnt.sy_
d:win2k
ootasrvflpydisk.sy_
d:win2k
ootasrvftdisk.sy_
d:win2k
ootasrvhal.dl_
d:win2k
ootasrvhalaacpi.dl_
d:win2k
ootasrvhalacpi.dl_
d:win2k
ootasrvhalapic.dl_
d:win2k
ootasrvhidclass.sy_
d:win2k
ootasrvhidparse.sy_
d:win2k
ootasrvhidusb.sy_
d:win2k
ootasrvi8042prt.sy_
d:win2k
ootasrvini910u.sy_
d:win2k
ootasrvintelide.sy_
d:win2k
ootasrvipsraidn.sy_
d:win2k
ootasrvisapnp.sy_
d:win2k
ootasrvkbdclass.sy_
d:win2k
ootasrvkbdhid.sy_
d:win2k
ootasrvkbdus.dll
d:win2k
ootasrvl_intl.nl_
d:win2k
ootasrvlbrtfdc.sy_
d:win2k
ootasrvlp6nds35.sy_
d:win2k
ootasrvmountmgr.sy_
d:win2k
ootasrvmraid35x.sy_
d:win2k
ootasrv
crc710.sy_
d:win2k
ootasrv
tdetect.com
d:win2k
ootasrv
tfs.sy_
d:win2k
ootasrv
tkrnlmp.ex_
d:win2k
ootasrvohci1394.sy_
d:win2k
ootasrvopenhci.sy_
d:win2k
ootasrvpartmgr.sy_
d:win2k
ootasrvpci.sy_
d:win2k
ootasrvpciide.sy_
d:win2k
ootasrvpciidex.sy_
d:win2k
ootasrvpcmcia.sy_
d:win2k
ootasrvql1080.sy_
d:win2k
ootasrvql10wnt.sy_
d:win2k
ootasrvql1240.sy_
d:win2k
ootasrvql2100.sy_
d:win2k
ootasrv
ead1st.txt
d:win2k
ootasrv
eadme.doc
d:win2k
ootasrvsbp2port.sy_
d:win2k
ootasrvscsiport.sy_
d:win2k
ootasrvserenum.sy_
d:win2k
ootasrvserial.sy_
d:win2k
ootasrvsetup.exe
d:win2k
ootasrvsetupdd.sy_
d:win2k
ootasrvsetupldr.bin
d:win2k
ootasrvsetupreg.hiv
d:win2k
ootasrvsfloppy.sy_
d:win2k
ootasrvsparrow.sy_
d:win2k
ootasrvspcmdcon.sys
d:win2k
ootasrvspddlang.sy_
d:win2k
ootasrvspnotes.htm
d:win2k
ootasrvsym_hi.sy_
d:win2k
ootasrvsymc810.sy_
d:win2k
ootasrvsymc8xx.sy_
d:win2k
ootasrv ffsport.sy_
d:win2k
ootasrv xtsetup.sif
d:win2k
ootasrvuhcd.sy_
d:win2k
ootasrvultra66.sy_
d:win2k
ootasrvusbd.sy_
d:win2k
ootasrvusbhub.sy_
d:win2k
ootasrvusbstor.sy_
d:win2k
ootasrvvga.sy_
d:win2k
ootasrvvgaoem.fo_
d:win2k
ootasrvvideoprt.sy_
d:win2k
ootasrvwmilib.sy_
d:win2k
ootasrvootdisk……
d:win2k
ootasrvclients……
d:win2k
ootasrvi386……
d:win2k
ootasrvprinters……
d:win2k
ootasrvsetuptxt……
d:win2k
ootasrvsupport……
d:win2k
ootasrvsystem32
tdll.dll
d:win2k
ootasrvsystem32smss.exe
d:win2k
ootasrvvalueadd……
d:win2k
ootwpro1394bus.sy_
d:win2k
ootwproabp480n5.sy_
d:win2k
ootwproacpi.sy_
d:win2k
ootwproacpiec.sy_
d:win2k
ootwproadpu160m.sy_
d:win2k
ootwproaha154x.sy_
d:win2k
ootwproaic116x.sy_
d:win2k
ootwproaic78u2.sy_
d:win2k
ootwproaic78xx.sy_
d:win2k
ootwproamsint.sy_
d:win2k
ootwproasc.sy_
d:win2k
ootwproasc3350p.sy_
d:win2k
ootwproasc3550.sy_
d:win2k
ootwproatapi.sy_
d:win2k
ootwproautorun.inf
d:win2k
ootwproiosinfo.inf
d:win2k
ootwproootfix.bin
d:win2k
ootwproootfont.bin
d:win2k
ootwproootvid.dl_
d:win2k
ootwprouslogic.sy_
d:win2k
ootwproc_936.nl_
d:win2k
ootwprocd20xrnt.sy_
d:win2k
ootwprocdfs.sy_
d:win2k
ootwprocdrom.sy_
d:win2k
ootwprocdrom_ip.5
d:win2k
ootwprocdrom_nt.5
d:win2k
ootwprocdromsp3.tst
d:win2k
ootwproclass2.sy_
d:win2k
ootwproclasspnp.sy_
d:win2k
ootwprocpqarray.sy_
d:win2k
ootwprocpqarry2.sy_
d:win2k
ootwprocpqfcalm.sy_
d:win2k
ootwprocpqfws2e.sy_
d:win2k
ootwprodac960nt.sy_
d:win2k
ootwprodisk.sy_
d:win2k
ootwprodisk101
d:win2k
ootwprodisk102
d:win2k
ootwprodisk103
d:win2k
ootwprodisk104
d:win2k
ootwprodmboot.sy_
d:win2k
ootwprodmio.sy_
d:win2k
ootwprodmload.sy_
d:win2k
ootwprofastfat.sy_
d:win2k
ootwprofd16_700.sy_
d:win2k
ootwprofdc.sy_
d:win2k
ootwprofireport.sy_
d:win2k
ootwproflashpnt.sy_
d:win2k
ootwproflpydisk.sy_
d:win2k
ootwproftdisk.sy_
d:win2k
ootwprohal.dl_
d:win2k
ootwprohalaacpi.dl_
d:win2k
ootwprohalacpi.dl_
d:win2k
ootwprohalapic.dl_
d:win2k
ootwprohidclass.sy_
d:win2k
ootwprohidparse.sy_
d:win2k
ootwprohidusb.sy_
d:win2k
ootwproi8042prt.sy_
d:win2k
ootwproini910u.sy_
d:win2k
ootwprointelide.sy_
d:win2k
ootwproipsraidn.sy_
d:win2k
ootwproisapnp.sy_
d:win2k
ootwprokbdclass.sy_
d:win2k
ootwprokbdhid.sy_
d:win2k
ootwprokbdus.dll
d:win2k
ootwprol_intl.nl_
d:win2k
ootwprolbrtfdc.sy_
d:win2k
ootwprolp6nds35.sy_
d:win2k
ootwpromountmgr.sy_
d:win2k
ootwpromraid35x.sy_
d:win2k
ootwpro
crc710.sy_
d:win2k
ootwpro
tdetect.com
d:win2k
ootwpro
tfs.sy_
d:win2k
ootwpro
tkrnlmp.ex_
d:win2k
ootwproohci1394.sy_
d:win2k
ootwproopenhci.sy_
d:win2k
ootwpropartmgr.sy_
d:win2k
ootwpropci.sy_
d:win2k
ootwpropciide.sy_
d:win2k
ootwpropciidex.sy_
d:win2k
ootwpropcmcia.sy_
d:win2k
ootwproql1080.sy_
d:win2k
ootwproql10wnt.sy_
d:win2k
ootwproql1240.sy_
d:win2k
ootwproql2100.sy_
d:win2k
ootwpro
ead1st.txt
d:win2k
ootwpro
eadme.doc
d:win2k
ootwprosbp2port.sy_
d:win2k
ootwproscsiport.sy_
d:win2k
ootwproserenum.sy_
d:win2k
ootwproserial.sy_
d:win2k
ootwprosetup.exe
d:win2k
ootwprosetupdd.sy_
d:win2k
ootwprosetupldr.bin
d:win2k
ootwprosetupreg.hiv
d:win2k
ootwprosfloppy.sy_
d:win2k
ootwprosparrow.sy_
d:win2k
ootwprospcmdcon.sys
d:win2k
ootwprospddlang.sy_
d:win2k
ootwprospnotes.htm
d:win2k
ootwprosym_hi.sy_
d:win2k
ootwprosymc810.sy_
d:win2k
ootwprosymc8xx.sy_
d:win2k
ootwpro ffsport.sy_
d:win2k
ootwpro xtsetup.sif
d:win2k
ootwprouhcd.sy_
d:win2k
ootwproultra66.sy_
d:win2k
ootwprousbd.sy_
d:win2k
ootwprousbhub.sy_
d:win2k
ootwprousbstor.sy_
d:win2k
ootwprovga.sy_
d:win2k
ootwprovgaoem.fo_
d:win2k
ootwprovideoprt.sy_
d:win2k
ootwprowmilib.sy_
d:win2k
ootwproootdisk……
d:win2k
ootwprodiscover……
d:win2k
ootwproi386……
d:win2k
ootwprosetuptxt……
d:win2k
ootwprosupport……
d:win2k
ootwprosystem32
tdll.dll
d:win2k
ootwprosystem32smss.exe
d:win2k
ootwprovalueadd……
d:win2k
ootwsrv1394bus.sy_
d:win2k
ootwsrvabp480n5.sy_
d:win2k
ootwsrvacpi.sy_
d:win2k
ootwsrvacpiec.sy_
d:win2k
ootwsrvadpu160m.sy_
d:win2k
ootwsrvaha154x.sy_
d:win2k
ootwsrvaic116x.sy_
d:win2k
ootwsrvaic78u2.sy_
d:win2k
ootwsrvaic78xx.sy_
d:win2k
ootwsrvamsint.sy_
d:win2k
ootwsrvasc.sy_
d:win2k
ootwsrvasc3350p.sy_
d:win2k
ootwsrvasc3550.sy_
d:win2k
ootwsrvatapi.sy_
d:win2k
ootwsrvautorun.inf
d:win2k
ootwsrviosinfo.inf
d:win2k
ootwsrvootfix.bin
d:win2k
ootwsrvootfont.bin
d:win2k
ootwsrvootvid.dl_
d:win2k
ootwsrvuslogic.sy_
d:win2k
ootwsrvc_936.nl_
d:win2k
ootwsrvcd20xrnt.sy_
d:win2k
ootwsrvcdfs.sy_
d:win2k
ootwsrvcdrom.sy_
d:win2k
ootwsrvcdrom_is.5
d:win2k
ootwsrvcdrom_nt.5
d:win2k
ootwsrvcdromsp3.tst
d:win2k
ootwsrvclass2.sy_
d:win2k
ootwsrvclasspnp.sy_
d:win2k
ootwsrvcpqarray.sy_
d:win2k
ootwsrvcpqarry2.sy_
d:win2k
ootwsrvcpqfcalm.sy_
d:win2k
ootwsrvcpqfws2e.sy_
d:win2k
ootwsrvdac960nt.sy_
d:win2k
ootwsrvdisk.sy_
d:win2k
ootwsrvdisk101
d:win2k
ootwsrvdisk102
d:win2k
ootwsrvdisk103
d:win2k
ootwsrvdisk104
d:win2k
ootwsrvdmboot.sy_
d:win2k
ootwsrvdmio.sy_
d:win2k
ootwsrvdmload.sy_
d:win2k
ootwsrvfastfat.sy_
d:win2k
ootwsrvfd16_700.sy_
d:win2k
ootwsrvfdc.sy_
d:win2k
ootwsrvfireport.sy_
d:win2k
ootwsrvflashpnt.sy_
d:win2k
ootwsrvflpydisk.sy_
d:win2k
ootwsrvftdisk.sy_
d:win2k
ootwsrvhal.dl_
d:win2k
ootwsrvhalaacpi.dl_
d:win2k
ootwsrvhalacpi.dl_
d:win2k
ootwsrvhalapic.dl_
d:win2k
ootwsrvhidclass.sy_
d:win2k
ootwsrvhidparse.sy_
d:win2k
ootwsrvhidusb.sy_
d:win2k
ootwsrvi8042prt.sy_
d:win2k
ootwsrvini910u.sy_
d:win2k
ootwsrvintelide.sy_
d:win2k
ootwsrvipsraidn.sy_
d:win2k
ootwsrvisapnp.sy_
d:win2k
ootwsrvkbdclass.sy_
d:win2k
ootwsrvkbdhid.sy_
d:win2k
ootwsrvkbdus.dll
d:win2k
ootwsrvl_intl.nl_
d:win2k
ootwsrvlbrtfdc.sy_
d:win2k
ootwsrvlp6nds35.sy_
d:win2k
ootwsrvmountmgr.sy_
d:win2k
ootwsrvmraid35x.sy_
d:win2k
ootwsrv
crc710.sy_
d:win2k
ootwsrv
tdetect.com
d:win2k
ootwsrv
tfs.sy_
d:win2k
ootwsrv
tkrnlmp.ex_
d:win2k
ootwsrvohci1394.sy_
d:win2k
ootwsrvopenhci.sy_
d:win2k
ootwsrvpartmgr.sy_
d:win2k
ootwsrvpci.sy_
d:win2k
ootwsrvpciide.sy_
d:win2k
ootwsrvpciidex.sy_
d:win2k
ootwsrvpcmcia.sy_
d:win2k
ootwsrvql1080.sy_
d:win2k
ootwsrvql10wnt.sy_
d:win2k
ootwsrvql1240.sy_
d:win2k
ootwsrvql2100.sy_
d:win2k
ootwsrv
ead1st.txt
d:win2k
ootwsrv
eadme.doc
d:win2k
ootwsrvsbp2port.sy_
d:win2k
ootwsrvscsiport.sy_
d:win2k
ootwsrvserenum.sy_
d:win2k
ootwsrvserial.sy_
d:win2k
ootwsrvsetup.exe
d:win2k
ootwsrvsetupdd.sy_
d:win2k
ootwsrvsetupldr.bin
d:win2k
ootwsrvsetupreg.hiv
d:win2k
ootwsrvsfloppy.sy_
d:win2k
ootwsrvsparrow.sy_
d:win2k
ootwsrvspcmdcon.sys
d:win2k
ootwsrvspddlang.sy_
d:win2k
ootwsrvspnotes.htm
d:win2k
ootwsrvsym_hi.sy_
d:win2k
ootwsrvsymc810.sy_
d:win2k
ootwsrvsymc8xx.sy_
d:win2k
ootwsrv ffsport.sy_
d:win2k
ootwsrv xtsetup.sif
d:win2k
ootwsrvuhcd.sy_
d:win2k
ootwsrvultra66.sy_
d:win2k
ootwsrvusbd.sy_
d:win2k
ootwsrvusbhub.sy_
d:win2k
ootwsrvusbstor.sy_
d:win2k
ootwsrvvga.sy_
d:win2k
ootwsrvvgaoem.fo_
d:win2k
ootwsrvvideoprt.sy_
d:win2k
ootwsrvwmilib.sy_
d:win2k
ootwsrvootdisk……
d:win2k
ootwsrvclients……
d:win2k
ootwsrvi386……
d:win2k
ootwsrvprinters……
d:win2k
ootwsrvsetuptxt……
d:win2k
ootwsrvsupport……
d:win2k
ootwsrvsystem32
tdll.dll
d:win2k
ootwsrvsystem32smss.exe
d:win2k
ootwsrvvalueadd……
10. 制作ISO文件
CDImage程序加“-o”参数优化后生成的镜像文件约为502 MB,我们假设将它存放在f:盘的根目录下,命令行命令如下:
d:win2kcdimage -lWin2K-3in1 -t01/10/2000,12:00:00 -g -h -n -o -m -bd:win2kw2kall.bin d:win2k
oot f:w2k-3in1.iso
上述命令中各参数含义分别为:
-l:设置光盘卷标。此处为“Win2K-3in1”。
-t:设置光盘上所有文件的生成日期。此处为“2000年1月10日格林威治时间(GMT)上午12点整”。
-g:转换本地时间与格林威治时间(GMT)。但如果是在Windows XP系统下,该参数似乎不起作用,“-t”参数指定的是GMT时间,而文件的生成时间是“-t”指定的时间加上时区转换后的本地时间。如,上例中的文件生成本地时间是“20:00:00”,即GMT+8=北京时间。
-h:包含隐藏的目录和文件。
-n:允许长文件名。
-o:优化相同的文件,最重要的参数,这是我们将3个版本的1.24 GB文件压缩到502 MB的关键。
-m:允许生成的ISO文件超过640 MB。
-b:光盘启动引导程序,此处我们使用了w2kall.bin。
d:win2k
oot:源文件路径,将作为光盘的根目录。
f:w2k-3in1.iso:最后生成的ISO文件,我们要的就是它。
要点:cdimage /?可显示所有选项。CDImagegui提供了一个图形界面,使用更直观,功能是一样的。
11. 测试ISO文件
用VMware加载w2k-3in1.iso文件,设置第1启动设备为光驱。从光盘启动后,系统首先显示信息“Press any key to boot from CD.”,按任意键后,出现[A]、[B]、[C]3个选项菜单,键入A、B或C键然后回车,可启动相应安装版本,此后的安装与原版光盘的安装一致。需要逐个安装,以测试各个版本的完整性。
12. 增加特殊文件
可以根据个人的爱好,在光盘上再增加一些特殊文件,例如新版IE、DirectX及一些专用的驱动程序等,只需将其复制到d:win2k
oot目录下,并重新制作ISO文件。
13.烧录光盘
ISO镜像文件测试无误后,即可用自己熟悉的烧录软件软件(例如Nero)将其烧录到光盘。 这样,一张可启动的Windows 2000 3合1光盘就制作完成了。当然,最好再用光盘正式地安装一遍,因为VMware测试与光盘测试是不完全一样的。
三、Windows XP 2合1启动光盘的制作
Windows XP与Windows 2000(当然还包括Windows NT 4.0)同属于Windows NT系列,其启动过程是非常相似的。虽然Bart开发w2kall.bin的初衷是制作3合1的Windows 2000,但既然它能够引导Windows 2000,那么它能否引导Windows XP呢?绝对可以。虽然与制作Windows 2000 3合1的过程类似,但其中有一些明显的不同,而且我们还需要对w2kall.bin进行一些适当的改造,希望朋友们多加注意。下面我介绍Windows XP 2合1启动光盘的制作过程。
1. 所需工具
(1)w2kall.bin
必须。Windows 2000/XP光盘启动引导文件。
下载地址:http://www.tech-hints.com/files/w2kall.zip
(2)CDImage.exe(命令行界面)或CDImagegui.exe(图形界面)
必须。可启动光盘镜像制作工具,生成标准的ISO文件,同时具有优化光盘上文件的功能,使相同的文件只刻录一个,其他的文件都连接到该文件。
下载地址:http://www.tech-hints.com/prog/cdimage.zip,http://www.tech-hints.com/prog/cdimagegui.zip
(3)WinZip、WinImg
可选。解Windows XP安装软盘组的img文件。可替换方法是制作6张安装软盘,然后将6张软盘上的全部文件复制到硬盘。
下载地址:http://www.winimage.com/winimage/winima60.zip,http://www.winzip.com/getsite.cgi?winzip81.exe
(4)UltraEdit
必须。十六进制编辑器,修改启动引导文件中的显示文字,并修改Windows XP不同版本的存放路径。
下载地址:ftp://ultraedit.com/uedit32.zip
(5)Windows XP安装软盘组
必须。用软盘引导机器,加载必要的系统文件及基本驱动程序,然后从光盘继续安装。
专业版及家庭版的安装软盘是不同的,二者不能混用。XP的安装软盘组必须从微软网站下载:
简体中文专业版:winxp_cn_pro_bf.exe
下载地址:http://www.microsoft.com/downloads/release.asp?releaseid=33494 简体中文家庭版:winxp_cn_hom_bf.exe
下载地址:http://www.microsoft.com/downloads/release.asp?releaseid=33493
(6)VMware(或Virtual PC)和Nero
可选。测试制作完成的3合1镜像文件并烧录光盘。
2. 目录及文件结构
保证硬盘上有足够空余空间(假设将文件存放在硬盘d:,全部2个版本的原始文件约占用空间为1.02 GB,生成的镜像文件约为558 MB),建立如下目录结构,并复制文件w2kall.bin、cdimage.exe到相应位置:
d:winxpw2kall.bin
d:winxpcdimage.exe
d:winxp
oothome
d:winxp
ootwpro
其中,d:winxp
oot是Windows XP 2合1光盘的根目录,d:winxp
oothome用于存放Windows XP家庭版文件,d:winxp
ootwpro用于存放Windows XP专业版文件。
要点:“home”和“wpro”的目录名称需要固定在w2kall.bin中,只能是4个字符长度。若需要存放在其他目录下,必须用UltraEdit修改w2kall.bin文件,找到“WPROWSRVASRV”,将其替换为其他名称,并相应修改目录结构。此外,还必须在后面的配置中进行相应修改。
3. 文件复制
将Windows XP家庭版光盘上的文件全部复制到home目录,将Windows XP专业版光盘上的文件全部复制到wpro目录。
必须确保复制了全部文件和子目录,包括具有系统和隐藏属性的。
复制完毕后,清除d:winxp
oot下全部文件和子目录的系统、隐藏和只读属性。
将d:winxp
oothome目录下的win51和win51ic复制到d:winxp
oot,将d:winxp
ootwpro目录下的win51ip复制到d:winxp
oot。
要点:d:winxp
oot下面必须有win51、win51ic和win51ip文件,这是我们欺骗安装程序的标志:这张光盘是Windows XP原始安装盘。
4. 配置安装程序
将下载到的winxp_cn_pro_bf.exe文件用WinZip释放到硬盘任一目录,得到6个img文件。用WinImg将6个img文件释放到目录d:winxp
ootwpro。
将下载到的winxp_cn_hom_bf.exe文件用WinZip释放到硬盘任一目录,得到6个img文件。用WinImg将6个img文件释放到目录d:winxp
oothome。
要点:这是我们模拟软盘安装的关键,一定要连带system32目录(里面有两个文件)一起释放。
从d:winxp
ootwproi386目录中复制bootfix.bin,将其分别粘贴到d:winxp
oothome和d:winxp
ootwpro。该文件的作用就是光盘启动后显示一条信息“Press any key to boot from CD.”,并等待5秒钟,若没有按键,则从硬盘启动;否则从光盘启动。
如果觉得5秒的延时太短,可以用Ultraedit编辑该文件,找到“Press any key to boot from CD.”后面的“49 00 12 00”,将“49”改为“AA”延时可达10秒,改为“FF”延时可达15秒。
5. 修改w2kall.bin
w2kall.bin是专门针对Windows 2000 3合1启动光盘而开发的,要使它适用于Windows XP 2合1光盘的启动引导,我们必须对其进行一些适当的修改。
用UltraEdit打开d:win2k
ootw2kall.bin,找到启动菜单:
[A] Windows 2000 Professional – English
[B] Windows 2000 Server – English
[C] Windows 2000 Advanced Server – English
Choose an option and press [Enter]:
将其修改为:
[A] Windows XP Professional
[B] Windows XP Home
==================================
Choose an option and press [Enter]:
再查找“WPROWSRVASRV”,将其替换为找到“WPROHOMEHOME”。
启动菜单接受4个键:A、B、C键和回车键,若用户按了A和B键,将进行相应的安装,若用户按了C键,将安装家庭版,且没有提示。这样的处理比较简单,高手们可以考虑屏蔽C键。
要点:“WPROHOMEHOME”是光盘安装路径,一定要与目录结构相匹配。最后一个“HOME”对应C键,若用户按了C键后,应使其能够找到相应目录,或在启动菜单中干脆注明“[B/C] Windows XP Home”。
6. 修改setupldr.bin和txtsetup.si_
用UltraEdit打开d:winxp
oothomesetupldr.bin,用ASCII方式替换“i386”为“home”,共4处。
用UltraEdit打开d:winxp
ootwprosetupldr.bin,用ASCII方式替换“i386”为“wpro”,共4处。
存盘退出。
将文件d:winxp
oothome xtsetup.si_复制到d:,在d:下运行命令行命令:
expand txtsetup.si_ txtsetup.sif
用UltraEdit打开d: xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "home"”;
存盘退出。
将txtsetup.sif改名为txtsetup.si_,覆盖掉d:winxp
oothome xtsetup.si_。
将文件d:winxp
ootwpro xtsetup.si_复制到d:,在d:下运行命令行命令:
expand txtsetup.si_ txtsetup.sif
用UltraEdit打开d: xtsetup.sif,替换“SetupSourcePath = ""”为“SetupSourcePath = "wpro"”;
存盘退出。
将txtsetup.sif改名为txtsetup.si_,覆盖掉d:winxp
ootwpro xtsetup.si_
简单办法:将i386中的txtsetup.sif复制到各自的上层目录,删除掉txtsetup.si_,并修改txtsetup.sif,效果一样。
要点:这两个文件中的路径安装程序告诉安装程序从何处复制文件,必须与目录结构相匹配。
7. 配置完毕的目录结构及文件列表
d:winxpcdimage.exe
d:winxpw2kall.bin
d:winxp
ootwin51
d:winxp
ootwin51ic
d:winxp
ootwin51ip
d:winxp
oothome1394bus.sy_
d:winxp
oothome1394vdbg.sy_
d:winxp
oothomeabp480n5.sy_
d:winxp
oothomeacpi.sy_
d:winxp
oothomeacpiec.sy_
d:winxp
oothomeadpu160m.sy_
d:winxp
oothomeaha154x.sy_
d:winxp
oothomeaic78u2.sy_
d:winxp
oothomeaic78xx.sy_
d:winxp
oothomealiide.sy_
d:winxp
oothomeamsint.sy_
d:winxp
oothomeasc.sy_
d:winxp
oothomeasc3350p.sy_
d:winxp
oothomeasc3550.sy_
d:winxp
oothomeatapi.sy_
d:winxp
oothomeautorun.inf
d:winxp
oothomeiosinfo.inf
d:winxp
oothomeootfix.bin
d:winxp
oothomeootfont.bin
d:winxp
oothomeootvid.dl_
d:winxp
oothomec_936.nl_
d:winxp
oothomecbidf2k.sy_
d:winxp
oothomecd20xrnt.sy_
d:winxp
oothomecdfs.sy_
d:winxp
oothomecdrom.sy_
d:winxp
oothomeclasspnp.sy_
d:winxp
oothomecmdide.sy_
d:winxp
oothomecpqarray.sy_
d:winxp
oothomedac2w2k.sy_
d:winxp
oothomedac960nt.sy_
d:winxp
oothomedisk.sy_
d:winxp
oothomedisk101
d:winxp
oothomedisk102
d:winxp
oothomedisk103
d:winxp
oothomedisk104
d:winxp
oothomedisk105
d:winxp
oothomedisk106
d:winxp
oothomedmboot.sy_
d:winxp
oothomedmio.sy_
d:winxp
oothomedmload.sy_
d:winxp
oothomedpti2o.sy_
d:winxp
oothomedrvmain.sdb
d:winxp
oothomefastfat.sy_
d:winxp
oothomefdc.sy_
d:winxp
oothomeflpydisk.sy_
d:winxp
oothomeftdisk.sy_
d:winxp
oothomehal.dl_
d:winxp
oothomehalaacpi.dl_
d:winxp
oothomehalacpi.dl_
d:winxp
oothomehalapic.dl_
d:winxp
oothomehalmacpi.dl_
d:winxp
oothomehalmps.dl_
d:winxp
oothomehalsp.dl_
d:winxp
oothomehidclass.sy_
d:winxp
oothomehidparse.sy_
d:winxp
oothomehidusb.sy_
d:winxp
oothomehpn.sy_
d:winxp
oothomehpt3xx.sy_
d:winxp
oothomei2omgmt.sy_
d:winxp
oothomei2omp.sy_
d:winxp
oothomei8042prt.sy_
d:winxp
oothomeini910u.sy_
d:winxp
oothomeintelide.sy_
d:winxp
oothomeisapnp.sy_
d:winxp
oothomekbda1.dll
d:winxp
oothomekbda2.dll
d:winxp
oothomekbda3.dll
d:winxp
oothomekbdal.dll
d:winxp
oothomekbdarme.dll
d:winxp
oothomekbdarmw.dll
d:winxp
oothomekbdaze.dll
d:winxp
oothomekbdazel.dll
d:winxp
oothomekbdbe.dll
d:winxp
oothomekbdblr.dll
d:winxp
oothomekbdbr.dll
d:winxp
oothomekbdbu.dll
d:winxp
oothomekbdca.dll
d:winxp
oothomekbdclass.sy_
d:winxp
oothomekbdcr.dll
d:winxp
oothomekbdcz.dll
d:winxp
oothomekbdcz1.dll
d:winxp
oothomekbdcz2.dll
d:winxp
oothomekbdda.dll
d:winxp
oothomekbddiv1.dll
d:winxp
oothomekbddiv2.dll
d:winxp
oothomekbddv.dll
d:winxp
oothomekbdes.dll
d:winxp
oothomekbdest.dll
d:winxp
oothomekbdfa.dll
d:winxp
oothomekbdfc.dll
d:winxp
oothomekbdfi.dll
d:winxp
oothomekbdfr.dll
d:winxp
oothomekbdgae.dll
d:winxp
oothomekbdgeo.dll
d:winxp
oothomekbdgkl.dll
d:winxp
oothomekbdgr.dll
d:winxp
oothomekbdgr1.dll
d:winxp
oothomekbdhe.dll
d:winxp
oothomekbdhe220.dll
d:winxp
oothomekbdhe319.dll
d:winxp
oothomekbdheb.dll
d:winxp
oothomekbdhela2.dll
d:winxp
oothomekbdhela3.dll
d:winxp
oothomekbdhept.dll
d:winxp
oothomekbdhid.sy_
d:winxp
oothomekbdhu.dll
d:winxp
oothomekbdhu1.dll
d:winxp
oothomekbdic.dll
d:winxp
oothomekbdindev.dll
d:winxp
oothomekbdinguj.dll
d:winxp
oothomekbdinhin.dll
d:winxp
oothomekbdinkan.dll
d:winxp
oothomekbdinmar.dll
d:winxp
oothomekbdinpun.dll
d:winxp
oothomekbdintam.dll
d:winxp
oothomekbdintel.dll
d:winxp
oothomekbdir.dll
d:winxp
oothomekbdit.dll
d:winxp
oothomekbdit142.dll
d:winxp
oothomekbdkaz.dll
d:winxp
oothomekbdkyr.dll
d:winxp
oothomekbdla.dll
d:winxp
oothomekbdlt.dll
d:winxp
oothomekbdlt1.dll
d:winxp
oothomekbdlv.dll
d:winxp
oothomekbdlv1.dll
d:winxp
oothomekbdmon.dll
d:winxp
oothomekbdne.dll
d:winxp
oothomekbdnec.dll
d:winxp
oothomekbdno.dll
d:winxp
oothomekbdpl.dll
d:winxp
oothomekbdpl1.dll
d:winxp
oothomekbdpo.dll
d:winxp
oothomekbdro.dll
d:winxp
oothomekbdru.dll
d:winxp
oothomekbdru1.dll
d:winxp
oothomekbdsf.dll
d:winxp
oothomekbdsg.dll
d:winxp
oothomekbdsl.dll
d:winxp
oothomekbdsl1.dll
d:winxp
oothomekbdsp.dll
d:winxp
oothomekbdsw.dll
d:winxp
oothomekbdsyr1.dll
d:winxp
oothomekbdsyr2.dll
d:winxp
oothomekbdtat.dll
d:winxp
oothomekbdth0.dll
d:winxp
oothomekbdth1.dll
d:winxp
oothomekbdth2.dll
d:winxp
oothomekbdth3.dll
d:winxp
oothomekbdtuf.dll
d:winxp
oothomekbdtuq.dll
d:winxp
oothomekbduk.dll
d:winxp
oothomekbdur.dll
d:winxp
oothomekbdurdu.dll
d:winxp
oothomekbdus.dll
d:winxp
oothomekbdusl.dll
d:winxp
oothomekbdusr.dll
d:winxp
oothomekbdusx.dll
d:winxp
oothomekbduzb.dll
d:winxp
oothomekbdvntc.dll
d:winxp
oothomekbdycc.dll
d:winxp
oothomekbdycl.dll
d:winxp
oothomekd1394.dl_
d:winxp
oothomekdcom.dl_
d:winxp
oothomeksecdd.sys
d:winxp
oothomel_intl.nl_
d:winxp
oothomelbrtfdc.sy_
d:winxp
oothomemountmgr.sy_
d:winxp
oothomemraid35x.sy_
d:winxp
oothome
tdetect.com
d:winxp
oothome
tfs.sys
d:winxp
oothome
tkrnlmp.ex_
d:winxp
oothomeohci1394.sy_
d:winxp
oothomeoprghdlr.sy_
d:winxp
oothomepartmgr.sy_
d:winxp
oothomepci.sy_
d:winxp
oothomepciide.sy_
d:winxp
oothomepciidex.sy_
d:winxp
oothomepcmcia.sy_
d:winxp
oothomeperc2.sy_
d:winxp
oothomeperc2hib.sy_
d:winxp
oothomeql1080.sy_
d:winxp
oothomeql10wnt.sy_
d:winxp
oothomeql12160.sy_
d:winxp
oothomeql1240.sy_
d:winxp
oothomeql1280.sy_
d:winxp
oothome
amdisk.sy_
d:winxp
oothome
eadme.htm
d:winxp
oothomesbp2port.sy_
d:winxp
oothomescsiport.sy_
d:winxp
oothomeserenum.sy_
d:winxp
oothomeserial.sy_
d:winxp
oothomesetup.exe
d:winxp
oothomesetupdd.sy_
d:winxp
oothomesetupldr.bin
d:winxp
oothomesetupreg.hiv
d:winxp
oothomesfloppy.sy_
d:winxp
oothomeslip.sy_
d:winxp
oothomesparrow.sy_
d:winxp
oothomespcmdcon.sys
d:winxp
oothomespddlang.sy_
d:winxp
oothomesq.txt
d:winxp
oothomestreamip.sy_
d:winxp
oothomesym_hi.sy_
d:winxp
oothomesym_u3.sy_
d:winxp
oothomesymc810.sy_
d:winxp
oothomesymc8xx.sy_
d:winxp
oothome ffsport.sy_
d:winxp
oothome oside.sy_
d:winxp
oothome xtsetup.si_
d:winxp
oothomeultra.sy_
d:winxp
oothomeusbccgp.sy_
d:winxp
oothomeusbd.sy_
d:winxp
oothomeusbhub.sy_
d:winxp
oothomeusbohci.sy_
d:winxp
oothomeusbport.sy_
d:winxp
oothomeusbstor.sy_
d:winxp
oothomeusbuhci.sy_
d:winxp
oothomevga.sy_
d:winxp
oothomevgaoem.fo_
d:winxp
oothomeviaide.sy_
d:winxp
oothomevideoprt.sy_
d:winxp
oothomewin51
d:winxp
oothomewin51ic
d:winxp
oothomewmilib.sy_
d:winxp
oothomedocs……
d:winxp
oothomei386……
d:winxp
oothomesupport……
d:winxp
oothomesystem32
tdll.dll
d:winxp
oothomesystem32smss.exe
d:winxp
oothomevalueadd……
d:winxp
ootwpro1394bus.sy_
d:winxp
ootwpro1394vdbg.sy_
d:winxp
ootwproabp480n5.sy_
d:winxp
ootwproacpi.sy_
d:winxp
ootwproacpiec.sy_
d:winxp
ootwproadpu160m.sy_
d:winxp
ootwproaha154x.sy_
d:winxp
ootwproaic78u2.sy_
d:winxp
ootwproaic78xx.sy_
d:winxp
ootwproaliide.sy_
d:winxp
ootwproamsint.sy_
d:winxp
ootwproasc.sy_
d:winxp
ootwproasc3350p.sy_
d:winxp
ootwproasc3550.sy_
d:winxp
ootwproatapi.sy_
d:winxp
ootwproautorun.inf
d:winxp
ootwproiosinfo.inf
d:winxp
ootwproootfix.bin
d:winxp
ootwproootfont.bin
d:winxp
ootwproootvid.dl_
d:winxp
ootwproc_936.nl_
d:winxp
ootwprocbidf2k.sy_
d:winxp
ootwprocd20xrnt.sy_
d:winxp
ootwprocdfs.sy_
d:winxp
ootwprocdrom.sy_
d:winxp
ootwproclasspnp.sy_
d:winxp
ootwprocmdide.sy_
d:winxp
ootwprocpqarray.sy_
d:winxp
ootwprodac2w2k.sy_
d:winxp
ootwprodac960nt.sy_
d:winxp
ootwprodisk.sy_
d:winxp
ootwprodisk101
d:winxp
ootwprodisk102
d:winxp
ootwprodisk103
d:winxp
ootwprodisk104
d:winxp
ootwprodisk105
d:winxp
ootwprodisk106
d:winxp
ootwprodmboot.sy_
d:winxp
ootwprodmio.sy_
d:winxp
ootwprodmload.sy_
d:winxp
ootwprodpti2o.sy_
d:winxp
ootwprodrvmain.sdb
d:winxp
ootwprofastfat.sy_
d:winxp
ootwprofdc.sy_
d:winxp
ootwproflpydisk.sy_
d:winxp
ootwproftdisk.sy_
d:winxp
ootwprohal.dl_
d:winxp
ootwprohalaacpi.dl_
d:winxp
ootwprohalacpi.dl_
d:winxp
ootwprohalapic.dl_
d:winxp
ootwprohalmacpi.dl_
d:winxp
ootwprohalmps.dl_
d:winxp
ootwprohalsp.dl_
d:winxp
ootwprohidclass.sy_
d:winxp
ootwprohidparse.sy_
d:winxp
ootwprohidusb.sy_
d:winxp
ootwprohpn.sy_
d:winxp
ootwprohpt3xx.sy_
d:winxp
ootwproi2omgmt.sy_
d:winxp
ootwproi2omp.sy_
d:winxp
ootwproi8042prt.sy_
d:winxp
ootwproini910u.sy_
d:winxp
ootwprointelide.sy_
d:winxp
ootwproisapnp.sy_
d:winxp
ootwprokbda1.dll
d:winxp
ootwprokbda2.dll
d:winxp
ootwprokbda3.dll
d:winxp
ootwprokbdal.dll
d:winxp
ootwprokbdarme.dll
d:winxp
ootwprokbdarmw.dll
d:winxp
ootwprokbdaze.dll
d:winxp
ootwprokbdazel.dll
d:winxp
ootwprokbdbe.dll
d:winxp
ootwprokbdblr.dll
d:winxp
ootwprokbdbr.dll
d:winxp
ootwprokbdbu.dll
d:winxp
ootwprokbdca.dll
d:winxp
ootwprokbdclass.sy_
d:winxp
ootwprokbdcr.dll
d:winxp
ootwprokbdcz.dll
d:winxp
ootwprokbdcz1.dll
d:winxp
ootwprokbdcz2.dll
d:winxp
ootwprokbdda.dll
d:winxp
ootwprokbddiv1.dll
d:winxp
ootwprokbddiv2.dll
d:winxp
ootwprokbddv.dll
d:winxp
ootwprokbdes.dll
d:winxp
ootwprokbdest.dll
d:winxp
ootwprokbdfa.dll
d:winxp
ootwprokbdfc.dll
d:winxp
ootwprokbdfi.dll
d:winxp
ootwprokbdfr.dll
d:winxp
ootwprokbdgae.dll
d:winxp
ootwprokbdgeo.dll
d:winxp
ootwprokbdgkl.dll
d:winxp
ootwprokbdgr.dll
d:winxp
ootwprokbdgr1.dll
d:winxp
ootwprokbdhe.dll
d:winxp
ootwprokbdhe220.dll
d:winxp
ootwprokbdhe319.dll
d:winxp
ootwprokbdheb.dll
d:winxp
ootwprokbdhela2.dll
d:winxp
ootwprokbdhela3.dll
d:winxp
ootwprokbdhept.dll
d:winxp
ootwprokbdhid.sy_
d:winxp
ootwprokbdhu.dll
d:winxp
ootwprokbdhu1.dll
d:winxp
ootwprokbdic.dll
d:winxp
ootwprokbdindev.dll
d:winxp
ootwprokbdinguj.dll
d:winxp
ootwprokbdinhin.dll
d:winxp
ootwprokbdinkan.dll
d:winxp
ootwprokbdinmar.dll
d:winxp
ootwprokbdinpun.dll
d:winxp
ootwprokbdintam.dll
d:winxp
ootwprokbdintel.dll
d:winxp
ootwprokbdir.dll
d:winxp
ootwprokbdit.dll
d:winxp
ootwprokbdit142.dll
d:winxp
ootwprokbdkaz.dll
d:winxp
ootwprokbdkyr.dll
d:winxp
ootwprokbdla.dll
d:winxp
ootwprokbdlt.dll
d:winxp
ootwprokbdlt1.dll
d:winxp
ootwprokbdlv.dll
d:winxp
ootwprokbdlv1.dll
d:winxp
ootwprokbdmon.dll
d:winxp
ootwprokbdne.dll
d:winxp
ootwprokbdnec.dll
d:winxp
ootwprokbdno.dll
d:winxp
ootwprokbdpl.dll
d:winxp
ootwprokbdpl1.dll
d:winxp
ootwprokbdpo.dll
d:winxp
ootwprokbdro.dll
d:winxp
ootwprokbdru.dll
d:winxp
ootwprokbdru1.dll
d:winxp
ootwprokbdsf.dll
d:winxp
ootwprokbdsg.dll
d:winxp
ootwprokbdsl.dll
d:winxp
ootwprokbdsl1.dll
d:winxp
ootwprokbdsp.dll
d:winxp
ootwprokbdsw.dll
d:winxp
ootwprokbdsyr1.dll
d:winxp
ootwprokbdsyr2.dll
d:winxp
ootwprokbdtat.dll
d:winxp
ootwprokbdth0.dll
d:winxp
ootwprokbdth1.dll
d:winxp
ootwprokbdth2.dll
d:winxp
ootwprokbdth3.dll
d:winxp
ootwprokbdtuf.dll
d:winxp
ootwprokbdtuq.dll
d:winxp
ootwprokbduk.dll
d:winxp
ootwprokbdur.dll
d:winxp
ootwprokbdurdu.dll
d:winxp
ootwprokbdus.dll
d:winxp
ootwprokbdusl.dll
d:winxp
ootwprokbdusr.dll
d:winxp
ootwprokbdusx.dll
d:winxp
ootwprokbduzb.dll
d:winxp
ootwprokbdvntc.dll
d:winxp
ootwprokbdycc.dll
d:winxp
ootwprokbdycl.dll
d:winxp
ootwprokd1394.dl_
d:winxp
ootwprokdcom.dl_
d:winxp
ootwproksecdd.sys
d:winxp
ootwprol_intl.nl_
d:winxp
ootwprolbrtfdc.sy_
d:winxp
ootwpromountmgr.sy_
d:winxp
ootwpromraid35x.sy_
d:winxp
ootwpro
tdetect.com
d:winxp
ootwpro
tfs.sys
d:winxp
ootwpro
tkrnlmp.ex_
d:winxp
ootwproohci1394.sy_
d:winxp
ootwprooprghdlr.sy_
d:winxp
ootwpropartmgr.sy_
d:winxp
ootwpropci.sy_
d:winxp
ootwpropciide.sy_
d:winxp
ootwpropciidex.sy_
d:winxp
ootwpropcmcia.sy_
d:winxp
ootwproperc2.sy_
d:winxp
ootwproperc2hib.sy_
d:winxp
ootwproql1080.sy_
d:winxp
ootwproql10wnt.sy_
d:winxp
ootwproql12160.sy_
d:winxp
ootwproql1240.sy_
d:winxp
ootwproql1280.sy_
d:winxp
ootwpro
amdisk.sy_
d:winxp
ootwpro
eadme.htm
d:winxp
ootwprosbp2port.sy_
d:winxp
ootwproscsiport.sy_
d:winxp
ootwproserenum.sy_
d:winxp
ootwproserial.sy_
d:winxp
ootwprosetup.exe
d:winxp
ootwprosetupdd.sy_
d:winxp
ootwprosetupldr.bin
d:winxp
ootwprosetupreg.hiv
d:winxp
ootwprosfloppy.sy_
d:winxp
ootwproslip.sy_
d:winxp
ootwprosparrow.sy_
d:winxp
ootwprospcmdcon.sys
d:winxp
ootwprospddlang.sy_
d:winxp
ootwprostreamip.sy_
d:winxp
ootwprosym_hi.sy_
d:winxp
ootwprosym_u3.sy_
d:winxp
ootwprosymc810.sy_
d:winxp
ootwprosymc8xx.sy_
d:winxp
ootwpro ffsport.sy_
d:winxp
ootwpro oside.sy_
d:winxp
ootwpro xtsetup.si_
d:winxp
ootwproultra.sy_
d:winxp
ootwprousbccgp.sy_
d:winxp
ootwprousbd.sy_
d:winxp
ootwprousbhub.sy_
d:winxp
ootwprousbohci.sy_
d:winxp
ootwprousbport.sy_
d:winxp
ootwprousbstor.sy_
d:winxp
ootwprousbuhci.sy_
d:winxp
ootwprovga.sy_
d:winxp
ootwprovgaoem.fo_
d:winxp
ootwproviaide.sy_
d:winxp
ootwprovideoprt.sy_
d:winxp
ootwprowin51
d:winxp
ootwprowin51ip
d:winxp
ootwprowmilib.sy_
d:winxp
ootwprodocs……
d:winxp
ootwproi386……
d:winxp
ootwprosupport……
d:winxp
ootwprosystem32
tdll.dll
d:winxp
ootwprosystem32smss.exe
d:winxp
ootwprovalueadd……
8. 制作ISO文件
CDImage程序加“-o”参数优化后生成的镜像文件约为558 MB,我们假设将它存放在f:盘的根目录下,命令如下:
d:winxpcdimage -lWinXP-2in1 -t09/05/2001,12:00:00 -g -h -j1 -o -m -bd:winxpw2kall.bin d:winxp
oot f:wxp-2in1.iso
上述命令与生成Windows 2000的命令略有不同,各参数含义分别为:
-l:设置光盘卷标。此处为“WinXP-2in1”。
-t:设置光盘上所有文件的生成日期。此处为“2001年9月5日格林威治时间(GMT)上午12点整”。
-g:转换本地时间与格林威治时间(GMT)。但如果是在Windows XP系统下,该参数似乎不起作用,“-t”参数指定的是GMT时间,而文件的生成时间是“-t”指定的时间加上时区转换后的本地时间。如,上例中的文件生成本地时间是“20:00:00”,即GMT+8=北京时间。
-h:包含隐藏的目录和文件。
-j1:编码Joliet文件名,并兼容DOS的8.3格式文件名。
-o:优化相同的文件,最重要的参数,这是我们将3个版本的1.02 GB文件压缩到558 MB的关键。
-m:允许生成的ISO文件超过640 MB。
-b:光盘启动引导程序,此处我们使用了w2kall.bin。
d:winxp
oot:源文件路径,将作为光盘的根目录。
f:wxp-2in1.iso:最后生成的ISO文件,我们要的就是它。
要点:cdimage /?可显示所有选项。CDImagegui提供了一个图形界面,使用更直观,功能是一样的。
9. 测试ISO文件
用VMware加载wxp-2in1.iso文件,设置第1启动设备为光驱。从光盘启动后,系统首先显示信息“Press any key to boot from CD.”,按任意键后,出现[A]、[B]2个选项菜单,键入A、B键然后回车,可启动相应安装版本,键入C键然后回车,可安装家庭版。此后的安装与原版光盘的安装一致。需要逐个安装,以测试各个版本的完整性。
10. 增加特殊文件
可以根据个人的爱好,在光盘上再增加一些特殊文件,只需将其复制到d:winxp
oot目录下,并重新制作ISO文件。
11.烧录光盘
ISO镜像文件测试无误后,即可用自己熟悉的软件(例如Nero)将其烧录到光盘。 这样,一张可启动的Windows XP 2合1光盘就制作完成了。同样,需要测试这张CD,最好的办法就是用它逐个安装一遍。
四、特色点评
优点:与街面上流行的Windows 2000/XP n合1光盘相比,上述方法制作的光盘目录结构更简洁,没有一个多余的文件,不需要diskem1x引导程序,不需要重新制作启动菜单,不需要为每个版本分别准备不同的引导文件,针对性更强。
缺点:只针对Windows 2000/XP系列,最多只能包含3个版本,无法制作出漂亮的彩色菜单。