【作者注:最近太忙了,家里也有点事。本想详细写一下,可是心里静不下来。本来本章是重点的,Boot Scriptor现在是主流,diskemu已停止开发了。但我不能详细写了,我全文转载了一个不错的教学,不知道作者是谁。大家可以学这个。另外本章还转载另外一篇Windows 2000 3合1与Windows XP 2合1启动光盘的最新做法,大家可以参考一下。明天我来写最后一章,启动菜单的制作,我要自已来写,目前好像没有现成的教程。不是AUTO PLAY MENU那种。】
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:\win2k\cdimage.exe
d:\win2k\root\asrv
d:\win2k\root\wpro
d:\win2k\root\wsrv
其中,d:\win2k\root\是Windows 2000 3合1光盘的根目录,d:\win2k\root\asrv用于存放Windows 2000高级服务器版文件,d:\win2k\root\wsrv用于存放Windows 2000服务器版文件,d:\win2k\root\wpro用于存放Windows 2000专业版文件。
3. 文件复制
将Windows 2000高级服务器版光盘上的文件全部复制到asrv目录,将Windows 2000服务器版光盘上的文件全部复制到wsrv目录,将Windows 2000专业版光盘上的文件全部复制到wpro目录。
必须确保复制了全部文件和子目录,包括具有系统和隐藏属性的。
复制完毕后,清除d:\win2k\root\下全部文件和子目录的系统、隐藏和只读属性。
将d:\win2k\root\asrv目录下的cdrom_ia.5和cdrom_nt.5复制到d:\win2k\root\,将d:\win2k\root\wsrv目录下的cdrom_is.5复制到d:\win2k\root\,将d:\win2k\root\wpro目录下的cdrom_ip.5复制到d:\win2k\root\。
要点:d:\win2k\root\下面必须有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:\tmp。在f:\tmp\i386\update下分别运行命令行命令:
update.exe -s:d:\win2k\root\asrv
update.exe -s:d:\win2k\root\wsrv
update.exe -s:d:\win2k\root\wpro
上述命令运行完毕后,Service Pack 3已经集成到Windows 2000各版本中,且d:\win2k\root\asrv、d:\win2k\root\wsrv、d:\win2k\root\wpro各目录下应有一文件cdromsp3.tst,将其复制到d:\win2k\root\。
要点:d:\win2k\root\下面必须有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\root\wpro\bootdisk的img文件全部释放到d:\win2k\root\wpro\下。
d:\win2k\root\wsrv\bootdisk的img文件全部释放到d:\win2k\root\wsrv\下。
d:\win2k\root\asrv\bootdisk的img文件全部释放到d:\win2k\root\asrv\下。
要点:这是我们模拟软盘安装的关键,一定要连带system32目录(里面有两个文件)一起释放。
如果集成了Service Pack 3,需要将wpro、wsrv、asrv下面的文件用各自i386目录下面的文件替换(实际上只需要替换txtsetup.sif就行了),即将启动软盘组中的文件也替换为集成Service Pack 3后的文件。注意:一定不要替换system32中的文件,否则无法安装。
要替换这一大堆文件比较繁琐,可以用两个办法:
(1)xxcopy法。下载xxcopy(http://www.xxcopy.com/),执行下面的命令:
xxcopy d:\win2k\root\wpro\i386 d:\win2k\root\wpro\ /U /E /YY
xxcopy d:\win2k\root\wsrv\i386 d:\win2k\root\wsrv\ /U /E /YY
xxcopy d:\win2k\root\asrv\i386 d:\win2k\root\asrv\ /U /E /YY
替换完成后删除wpro、wsrv、asrv下面的空目录(xxcopy替换的副产品)即可。
(2)批处理替换法。以wpro目录为例:
dir d:\win2k\root\wpro\*.* >1.bat
move d:\win2k\root\wpro\1.bat d:\win2k\root\wpro\i386
用Ultraedit编辑1.bat,只保留文件名,每个文件名一行,修改每行的命令为
copy [文件名] d:\win2k\root\wpro\
存盘退出,在d:\win2k\root\wpro\i386目录下运行1.bat,d:\win2k\root\wpro\i386目录没有而d:\win2k\root\wpro有的文件不替换。其他两个版本如法炮制。
7. 修改setupldr.bin和txtsetup.sif
用Ultraedit打开d:\win2k\root\asrv\setupldr.bin,用ASCII方式替换“i386”为“asrv”,共3处;
用Ultraedit打开d:\win2k\root\wsrv\setupldr.bin,用ASCII方式替换“i386”为“wsrv”,共3处;
用Ultraedit打开d:\win2k\root\wpro\setupldr.bin,用ASCII方式替换“i386”为“wpro”,共3处。
存盘退出。
用Ultraedit打开d:\win2k\root\asrv\txtsetup.sif,替换“SetupSourcePath = "\"”为“SetupSourcePath = "\asrv"”;
用Ultraedit打开d:\win2k\root\wsrv\txtsetup.sif,替换“SetupSourcePath = "\"”为“SetupSourcePath = "\wsrv"”;
用Ultraedit打开d:\win2k\root\wpro\txtsetup.sif,替换“SetupSourcePath = "\"”为“SetupSourcePath = "\wpro"”。
存盘退出。
要点:这两个文件中的路径告诉安装程序从何处复制文件,必须与目录结构相匹配。
8. 启动菜单的制作
释放文件Boot Scriptor (1.2.3b).zip,将其中的bscript子目录复制到d:\win2k\root\,将bscript\loader.bin(光盘引导器)移动到d:\win2k\,删除bscript\bscriptw.com,bscript\modules中的文件不动(尽管有些是我们不需要的,但文件很小)。
释放2kroot.zip,将其中的文件WPROSECT.DAT、WSRVSECT.DAT、ASRVSECT.DAT复制到d:\win2k\root\bscript。
9. 编写启动菜单配置文件bscript\bscript.ini
start:
clear
print c "\n\n\c17===================================================\n"
print c "\c17 \c1fWindows 2000 Setup\c17 \n"
print c "\c17---------------------------------------------------\n"
print c "\c17 \n"
print c "\c17 \c1f1\c17 Windows 2000 Professional \n"
print c "\c17 \c1f2\c17 Windows 2000 Server \n"
print c "\c17 \c1f3\c17 Windows 2000 Advanced Server \n"
print c "\c17 \n"
print c "\c17 \c1fF\c17 Boot from first Floppy Drive \n"
print c "\c17 \c1f Esc\c17 Boot from first Hard Disk \n"
print c "\c17 \n"
print c "\c17---------------------------------------------------\n"
print c "\c17 Select the item and then press Enter \n"
print c "\c17===================================================\n"
;
start1:
call drawscrn
setpos 1 7
print c "\c3f 1\c31 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 2\c31 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 3\c31 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 F\c31 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 Esc\c31 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 1\c17 Windows 2000 Professional \n"
print c "\c1f 2\c17 Windows 2000 Server \n"
print c "\c1f 3\c17 Windows 2000 Advanced Server \n"
print c "\n"
print c "\c1f F\c17 Boot from first Floppy Drive \n"
print c "\c1f Esc\c17 Boot from first Hard Disk "
return
;
eof:
;
这个菜单配置文件看起来挺复杂,实际上大量的代码都是为了使用光标键而重复的。除了界面有点简陋外(你可以加上ANSI制表符等高位DOS扩展符),这个配置文件实现了彩色字符、光标键选择、从软盘启动、从硬盘启动等多种功能。
10. 制作ISO文件
CDImage程序加“-o”参数优化后生成的镜像文件约为502 MB,我们假设将它存放在f:盘的根目录下,命令行命令如下:
d:\win2k\cdimage -lWin2K-3in1 -t01/10/2000,12:00:00 -g -h -j1 -o -m -bd:\win2k\loader.bin d:\win2k\root f:\w2k-3in1.iso
11. 测试ISO文件
用VMware加载w2k-3in1.iso文件,设置第1启动设备为光驱。从光盘启动后,系统将显示启动菜单,将显示条移动到相应的项目上,然后按回车键;也可以直接按快捷键。
提示:如果仅仅为了测试菜单的效果,可以不删除bscript\bscriptw.com,直接运行bscriptw.com,它将显示Bscript\Bscript.Ini的效果。
12. 增加特殊文件
可以根据个人的爱好,在光盘上再增加一些特殊文件,例如新版IE、DirectX及一些专用的驱动程序等,只需将其复制到d:\win2k\root目录下,并重新制作ISO文件。
13.烧录光盘
ISO镜像文件测试无误后,即可用自己熟悉的烧录软件软件(例如Nero)将其烧录到光盘。 这样,一张可启动的Windows 2000 3合1光盘就制作完成了。当然,最好再用光盘正式地安装一遍,因为VMware测试与光盘测试是不完全一样的。
14.集成Windows XP
Windows XP与Windows 2000的制作原理是一样的,如果要集成进去,只需要修改WPROSECT.DAT,将其中的“wpro”改为XP文件所在目录即可,并修改启动菜单配置文件bscript\bscript.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
这几种方法都需要用到bscript\modules中的相应模块。三种方法的效果是不一样的,其中diskemu模拟法速度最快,兼容性最好,只在1.2.3b版本中刚刚引进,建议采用。其他两种是ISOLINUX所采用的传统方法。
16.特色点评
优点:彩色菜单,光标移动,xx合1,……,这是目前最最新、最最牛、最最棒、最最神奇、最最最最……的方法。
缺点:Boot Scriptor的发展太快,各版本之间有点不兼容,但说实在的,后面的版本越来越好,尤其是diskemu的引入,最激动人心,最大得人心,最大快人心,几乎彻底解决了映像文件的兼容性问题。