发新话题
打印

DIY一张可引导的多操作系统光盘

DIY一张可引导的多操作系统光盘

如果你有多张操作系统安装光盘,同时你希望在电脑上安装Windows 98和Windows XP双系统甚至多系统,可那么多张光盘一张张的换起来很麻烦,有没有想过创建一个可引导的综合了多种操作系统的安装光盘,下面这个专题正是介绍了这种技术……
[img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

TOP

DIY一张可引导的多操作系统光盘


  如果有一张 无人值守光盘,能够自动安装你常用的程序、自动修改出你习惯的注册表设置、并且能够在你躺在椅子上吃Pizza看电视的同时给操作系统安装所有补丁程序,那一定是一件很美妙的事情对吧。但是,如果你希望在你的电脑上同时安装Windows 98和Windows XP双系统,可你又不想准备那么多张光盘,那这时候你就应该看看本文。
  准备开始
  需要准备的材料
多种操作系统安装光盘
充足的硬盘空间
设置“显示隐藏文件和文件夹”
禁用“隐藏已知文件类型的扩展名”
WinImage 6.10
一个十六进制编辑器 (强烈推荐使用 UltraEdit-32)
CDIMAGE 2.47
CD Shell 2.0.9b - ('Downloads' -> 'Beta' -> 'Download')
可选 - VMware Workstation 4.0.5 或者 Virtual PC 5.0.2
任意可以把ISO文件刻录到DVD刻录盘上的刻录程序。
准备活动
  在我们开始复制和修改文件之前,我们要先计划好在哪里保存所有的文件。要注意,在我的制作过程中,4.0GB的DVD镜像文件在制作成镜像文件并用CDIMAGE优化之前足足有6.80GB大小,所以请先确保你有一个足够大的硬盘分区。在你的目标分区上创建一个名为“ROOT”的文件夹,同时我建议你在ROOT文件夹内创建一个名为“SETUP”的子文件夹,并且在这个子文件夹中保存所有的安装文件。这个步骤不是必须的,但是这样会使你制作出来的DVD光盘文件结构更加清晰。在ROOT文件夹下再建立一个名为“CDSH”的子文件夹,解压缩CD Shell压缩文件,然后把其中的文件都复制到你新建的“CDSH”文件夹中。
  到目前为止你的目录结构看起来应该像这样:
  D:\ROOT\
  D:\ROOT\SETUP\
  D:\ROOT\CDSH\
  请注意:在安装过程中,我这里所说的方法并没有使用Gosh的“Reducing Size of Source Method”,本文使用的是其他方法。使用本文的完整CD安装(full cd installs)允许你对每个操作系统使用Setup.exe文件进行安装,这样可以方便你检查不同操作系统在各种硬件上的兼容性问题,而同时还可以进行升级安装。
  注意2:本文中所用到的所有图片仅仅是作为演示使用。例如,如果在你处理Windows 2000 Pro CD的时候所看到的图片上显示的内容是“PRO1”,那么请按文章中的说法为准,图片并不是很重要的。
  弄懂引导过程
  在我们开始之前,了解NT系统的引导过程对阅读本文是很有帮助的。当我们创建了一张可引导的Windows XP光盘后,名为xpboot.bin的文件会被用来创建引导选项,这个引导选项会指向I386文件夹下的setupldr.bin,setupldr.bin会指出在哪里访问txtsetup.sif,而更进一步就找到了setup.exe安装文件,接着Windows XP 的安装过程就开始了。
  准备好了吗?我们开始吧...
[img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

TOP

DIY一张可引导的多操作系统光盘

创建操作系统引导文件夹

本节讲述了几大操作系统的复制和创建引导文件夹……
Windows 98 SE
Windows ME
Windows NT 4.0
Windows 2000
Windows XP Home SP1
Windows XP Pro SP1
Windows Server 2003
ERD Commander 2003
Windows 98 SE
  复制Windows 98 SE光盘上的文件
  在ROOT文件夹的子文件夹SE TUP下,新建一个名为“WIN98SE”的文件夹。
  例如 D:\ROOT\SETUP\WIN98SE\
  把安装光盘上所有文件都复制到这个"WIN98SE"文件夹中。
  创建引导文件:
  只有基于NT的系统才可以使用引导文件夹的方式启动起来,因此对于Windows 98,这里有一点不同。
  你只需要一个Windows 98 SE的启动盘,如果你装的是第一版的98,那么就用相应的第一版的启动盘,同时你还可以在这里下载到。用WinRAR打开下载回来的exe文件,然后释放出其中的IMA文件,WinRAR会报错,忽略就可以了,然后用WinImage打开这个IMA文件。

编辑 "autoexec.bat"
  现在我们要开始编辑"autoexec.bat"和"config.sys"这两个文件,从WinImage中把这两个文件拖到桌面上,然后再"autoexec.bat"上点击鼠标右键,选择“编辑”。
  如果你的"SETUP\WIN98SE\WIN98\"文件夹下有一个名为"oemsetup.exe"的安装文件,那么你就可以直接把autoexec.bat中的"EXT:"字段编辑成如下的样子:
:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
echo.
cls
echo Now installing Windows 98 SE
echo.
echo Loading...
path=%RAMD%:\;a:\;%CDROM%:\SETUP\WIN98SE\WIN98\
OEMSETUP.EXE
echo.
GOTO QUIT
  如果你的光盘里没有"oemsetup.exe"这个文件,则把上面粗体的内容替换成如下内容:
path=%RAMD%:\;a:\;%CDROM%:\SETUP\WIN98SE\
SETUP.EXE
  注意:确保你的autoexec.bat文件每一行的末尾没有多余的空格,如果你是直接从这里直接复制过去的,那么就不会有了,不过安全起见你最好再检查一下。
  编辑 "config.sys"
  用记事本打开"config.sys",然后编辑成如下的样子:
files=10
buffers=10
dos=high,umb
stacks=9,256
lastdrive=z
device=himem.sys /testmem:off
device=oakcdrom.sys /D:mscd001
device=btdosm.sys
device=flashpt.sys
device=btcdrom.sys /D:mscd001
device=aspi2dos.sys
device=aspi8dos.sys
device=aspi4dos.sys
device=aspi8u2.sys
device=aspicd.sys /D:mscd001
devicehigh=ramdrive.sys /E 2048
  结束工作:
  把编辑过的"autoexec.bat"和"config.sys"重新拖回到WinImage的界面中去,程序会问你是否插入这些文件,选“是”,然后程序会问你是否替换已有文件,选“全部”。保存文件后关闭WinImage。
  把这个文件改名为"98SE.IMA"然后复制到"ROOT"文件夹。

Windows 2000
  复制Windows 2000光盘上的文件:
  在ROOT文件夹的子文件夹SETUP下,新建一个名为“WIN2000”的文件夹,
  例如 - D:\ROOT\SETUP\WIN2000\
  在这个文件夹下,为你想要安装的所有版本的Windows 2000分别创建各自的一个子文件夹,在本例中,我用"ADVSERV"代表Advanced Server,"SERVER"代表Server,还有"PRO"代表Professional。然后从Windows 2000每个版本的安装光盘上分别复制所有文件到相应的文件夹中。下面我们会使用Windows  2000 Professional进行演示和说明,
  创建引导文件夹:
  现在我们要开始创建引导文件加,在ROOT根文件夹下 为你想要安装的不同版本的Windows 2000分别创建一个字文件夹,然后按照上面的说法为每个文件夹用四个字符命名,例如使用2ADV,2SRV,2PRO。你需要在这里下载制作引导盘的程序,用WinRAR打开下载回来的.exe文件并解压缩其中的文件,不要直接运行这个文件创建引导盘。而在解压缩过程中WinRAR会给你一个错误信息说这个压缩文件有错误,忽略它。你从exe文件中解压缩出来的是一个WinImage的镜像文件,接着用WinImage打开这个文件,并提取其中的文件到PRO1文件夹中,在这过程中请确保你选中了WinImage中的"Extract with pathname" 这个选项,否则以后会出错的。


基本上这意味着我们会有1-3个差不多相同的文件夹,如果你操作正确的话,每个文件夹大概有4.32MB大。
  现在开始修改文件。首先用UltraEdit打开"2PRO"文件夹中的"setupldr.bin"文件,在"Search" -> "Find" (Ctrl+F)下搜索"i386",在搜索结果中"i386"的子母“i”上点击左键,然后输入(不要使用复制和粘贴功能)“2PRO”。如果没有找到"i386",那说明这个文件是已经被修改过的了。总之在这一步,你要确保安装文件的保存路径没有搞错。


你一共要重复做三次,如果你做的次数少了,那一定是漏掉了。
编辑 "txtsetup.sif":
  在你的"SETUP\WIN2000\PRO\" 文件夹下找到"txtsetup.sif"文件,然后用记事本打开它,通过“编辑”->“查找”命令搜索"SetupSourcePath",然后根据你实际保存安装文件的路径进行适当的变动。本例中这里应该是"\SETUP\WIN2000\PRO\"。保存之后就可以把它放在“2PRO”文件夹中了。
SetupSourcePath = "\SETUP\WIN2000\PRO\"

编辑DAT文件:
  下载Windows 2000 DAT http://www.yesky.com/imagesnew/software/031125/2000%20DAT.zip 文件,对Server 2000 Professional版,你只需要"2PRO.DAT"这个文件。在UltraEdit中打开这个文件,然后向下拉动滚动条,直到你看到如下图的文字。默认情况下,文件中应该显示为SETUPLDR.BINBOOTFIX.BIN2PRO,如果不是这样,编辑"SETUPLDR.BINBOOTFIX.BIN2xxx"的最后四个字母以符合相应的文件夹名称。然后把修改过的DAT移动到"ROOT"文件夹中。


结束工作:
  打开你的安装文件夹"\SETUP\WIN2000\PRO\",然后复制(不是移动)如下文件到"ROOT"文件夹。
cdrom_nt.5
cdrom_is.5 (2000 Server 版才有)
cdrom_ia.5 (2000 Advance Server 版才有)
cdrom_ip.5 (2000 Professional 版才有
[img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

TOP

DIY一张可引导的多操作系统光盘

Windows NT 4.0
  复制Windows NT 4.0光盘上的文件:
  在ROOT文件夹的子文件夹SETUP下,新建一个名为“WINNT4”的文件夹,
  例如 - D:\ROOT\SETUP\WINNT4\
  在这个文件夹下,为你想要安装的所有版本的Windows NT分别创建各自的一个子文件夹,在本例中,我用"SERVER"代表Server版,"WRKSTN"代表Workstation版。然后从Windows NT每个版本的安装光盘上分别复制所有文件到相应的文件夹中。下面我们会使用Windows  NT 4.0 Server进行演示和说明,
  创建引导文件夹:
  现在我们要开始创建引导文件夹,在ROOT根文件夹下 为你想要安装的不同版本的Windows NT分别创建一个字文件夹,然后按照上面的说法为每个文件夹用四个字符命名,例如使用NT4S和NT4W。你需要在这里下载制作引导盘的程序,用WinRAR打开下载回来的.exe文件并解压缩其中的文件,不要直接运行这个文件创建引导盘。而在解压缩过程中WinRAR会给你一个错误信息说这个压缩文件有错误,忽略它。你从exe文件中解压缩出来的是一个WinImage的镜像文件,接着用WinImage打开这个文件,并提取其中的文件到PRO1文件夹中,在这过程中请确保你选中了WinImage中的"Extract with pathname" 这个选项,否则以后会出错的。

基本上这意味着我们会有1-2个差不多相同的文件夹,如果你操作正确的话,每个文件夹大概有3.38MB大。
  现在开始修改文件。首先用UltraEdit打开"NT4S"文件夹中的"setupldr.bin"文件,在"Search" -> "Find" (Ctrl+F)下搜索"i386",在搜索结果中"i386"的子母“i”上点击左键,然后输入(不要使用复制和粘贴功能)“NT4S”。如果没有找到"i386",那说明这个文件是已经被修改过的了。总之在这一步,你要确保安装文件的保存路径没有搞错。

你一共要重复做两次,如果你做的次数少了,那一定是漏掉了。
编辑 "txtsetup.sif":
  在你的"SETUP\WINNT4\SERVER\" 文件夹下找到"txtsetup.sif"文件,然后用记事本打开它,通过“编辑”->“查找”命令搜索"SetupSourcePath",然后根据你实际保存安装文件的路径进行适当的变动。本例中这里应该是"\SETUP\WINNT4\SERVER"。保存之后就可以把它放在“NT4S”文件夹中了。
SetupSourcePath = "\SETUP\WINNT4\SERVER\"

编辑DAT文件:
  下载Windows NT 4.0 DAT  http://www.yesky.com/imagesnew/software/031125/NT4%20DAT.zip 文件,对NT 4 Server,你只需要"NT4S.DAT"这个文件。在UltraEdit中打开这个文件,然后向下拉动滚动条,直到你看到如下图的文字。默认情况下,文件中应该显示为SETUPLDR.BINBOOTFIX.BINNT4S,如果不是这样,编辑"SETUPLDR.BINBOOTFIX.BINNxxx"的最后四个字母以符合相应的文件夹名称。然后把修改过的DAT移动到"ROOT"文件夹中。


结束工作:
  打开你的安装文件夹"ROOT\SETUP\WINNT4\WRKSTN",然后复制(不是移动)如下文件到"ROOT"文件夹。
cdrom_s.40 (Server版才有)
cdrom_w.40 (Workstation版才有)
  Windows ME
  复制Windows ME光盘上的文件:
  在ROOT文件夹的子文件夹SETUP下,新建一个名为“WINME”的文件夹。
  例如 - D:\ROOT\SETUP\WINME\
  把安装光盘上所有文件都复制到这个"WINME"文件夹中。
  创建引导文件:
  只有基于NT的系统才可以使用引导文件夹的方式启动起来,因此对于Windows ME,这里有一点不同。
  你只需要一个Windows ME 的启动盘,同时你还可以在这里下载到(注意,下载Windows 98 SE OEM的启动盘就可以了)。用WinRAR打开下载回来的exe文件,然后释放出其中的IMA文件,WinRAR会报错,忽略就可以了,然后用WinImage打开这个IMA文件。


编辑 "autoexec.bat"
  现在我们要开始编辑"autoexec.bat"和"config.sys"这两个文件,从WinImage中把这两个文件拖到桌面上,然后再"autoexec.bat"上点击鼠标右键,选择“编辑”。
  严格按照下面的示例编辑"EXT:"字段,如果你的"setup.exe"文件位置和示例不同,那么就替换下列粗体字部分。
:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
echo.
cls
echo Now installing Windows ME
echo.
echo Loading...
path=%RAMD%:\;a:\;%CDROM%:\SETUP\WINME\
SETUP.EXE
echo.
GOTO QUIT
  注意:确保你的autoexec.bat文件每一行的末尾没有多余的空格,如果你是直接从这里直接复制过去的,那么就不会有了,不过安全起见你最好再检查一下。
  编辑 "config.sys"
  用记事本打开"config.sys",然后编辑成如下的样子:
files=10
buffers=10
dos=high,umb
stacks=9,256
lastdrive=z
device=himem.sys /testmem:off
device=oakcdrom.sys /D:mscd001
device=btdosm.sys
device=flashpt.sys
device=btcdrom.sys /D:mscd001
device=aspi2dos.sys
device=aspi8dos.sys
device=aspi4dos.sys
device=aspi8u2.sys
device=aspicd.sys /D:mscd001
devicehigh=ramdrive.sys /E 2048
  结束工作:
  把编辑过的"autoexec.bat"和"config.sys"重新拖回到WinImage的界面中去,程序会问你是否插入这些文件,选“是”,然后程序会问你是否替换已有文件,选“全部”。保存文件后关闭WinImage。
  把这个文件改名为"ME.IMA"然后复制到"ROOT"文件夹。
  Windows XP Home SP1
  复制Windows XP光盘上的文件:
  在ROOT文件夹的子文件夹SETUP下,新建一个名为“WINXPHOME”的文件夹,
  例如 - D:\ROOT\SETUP\WINXPHOME\
  把XP Home SP1光盘中所有的文件都复制到WINXPHome文件夹中。
  创建引导文件夹:
  现在我们要开始创建引导文件夹。在ROOT根文件夹下新建一个名为“HOM1”的子文件夹,接着你需要准备一张引导软盘,然后把其中的文件释放到这个文件夹中。你可以在这里下载制作引导盘的程序,用WinRAR打开下载回来的.exe文件并解压缩其中的文件,不要直接运行这个文件创建引导盘。而在解压缩过程中WinRAR会给你一个错误信息说这个压缩文件有错误,忽略它。你从exe文件中解压缩出来的是一个WinImage的镜像文件,接着用WinImage打开这个文件,并提取其中的文件到PRO1文件夹中,在这过程中请确保你选中了WinImage中的"Extract with pathname" 这个选项,否则以后会出错的。


[img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

TOP

DIY一张可引导的多操作系统光盘

这时你应该已经可以把所有的引导软盘中的文件提取到"HOM1"文件夹下了,如果你的操作没有错误,那么整个SP1引导文件夹的体积应该是6.61MB。
  接着要修改一些文件。首先用UltraEdit打开HOM1文件夹下的"setupldr.bin",在"Search" -> "Find" (Ctrl+F)下搜索"i386",在搜索结果中"i386"的子母“i”上点击左键,然后输入(不要使用复制和粘贴功能)“HOM1”以取代“i386”。也就是说,你需要把这个文件中所有有关“i386”的路径替换成“HOM1”:

你一共要重复做四次,如果你做的次数少了,那一定是漏掉了。
  编辑 "txtsetup.sif":
  在你的"SETUP\WINXPHome\I386"文件夹下找到"txtsetup.sif"这个文件,并用记事本打开。通过“编辑”->“查找”命令搜索"SetupSourcePath",然后根据你实际保存安装文件的路径进行适当的变动。本例中这里应该是"\SETUP\WINXPHOME\",这表示要在CD文件的根文件夹下查找一个名为"SETUP"的文件夹,然后在“SETUP”文件夹中查找"WINXPHOME"文件夹。保存之后就可以把它放在“HOM1”文件夹中了。
SetupSourcePath = "\SETUP\WINXPHOME\"

创建DAT文件:
  下载XP Home DAT  http://www.yesky.com/imagesnew/software/031125/XP%20Home%20DAT.zip 文件。这里你只需要"HOM1.DAT"这个文件,在UltraEdit中打开这个文件,然后向下拉动滚动条,直到你看到如下图的文字。默认情况下,文件中应该显示为SETUPLDR.BINBOOTFIX.BINHOM1,然而如果显示的不是这个,你可以自己编辑"SETUPLDR.BINBOOTFIX.BINxxxx"的最后四个字母以符合你的实际文件夹名称。然后把修改过的"HOM1.DAT"移动到"ROOT"文件夹中。


结束工作:
  打开你的安装文件文件夹"ROOT\SETUP\WINXPHOME\",然后复制(不是移动)如下文件到"ROOT"文件夹。
readme.html
spnotes.html (整合SP1 后的安装文件才有这个文件)
win51
win51ic
win51ic.sp1 (整合SP1 后的安装文件才有这个文件)
  更多的引导选项:
  如果你希望能够在安装XP Home SP1的过程中选择常规安装、无人值守安装或者OEM预安装(无人值守安装+$OEM$ 文件夹中的内容)这三种之中的一种,那么你就需要重复创建三个"HOM*"文件夹和"HOM*.DAT"文件。对于每个选项你都需要创建一个单独的引导文件夹和DAT文件。基本上,每一个额外的引导文件夹和DAT文件都需要对应一个引导选项。如果你想要有以上提到的三种选项,那么你应该有:
  ROOT目录下的文件夹:
  HOM1
  HOM2
  HOM3
  ROOT 目录下的DAT文件
  HOM1.DAT
  HOM2.DAT
  HOM3.DAT
  对于额外的引导文件夹(HOM2和HOM3),你都需要自己编辑相应的"setupldr.bin"文件,把其中的安装路径修改成你的实际情况(注意,同样要使用相对路径,而不是绝对路径!)。既然我们已经有了一个保存安装文件的"HOM1"文件夹和修改过的"setupldr.bin"文件,那么相应的,我们可以把另外两组文件和文件夹命名为"HOM2"和"HOM3"。不过"txtsetup.sif"文件就不需要编辑了,因为它们都指向我们的安装文件夹(ROOT\SETUP\WINXPHOME\)。
另外的两个DAT文件也需要按照上面的方法做相应的修改。只要把"SETUPLDR.BINBOOTFIX.BINxxxx"的最后四个字母替换成你的引导文件夹。对于HOM2.DAT,把xxxx修改成HOM2;对于HOM3.DAT,修改xxxx为HOM3即可。
  还没有完,如果HOM2将要作为无人值守安装的选项,那么你还需要复制"winnt.sif"到HOM2文件夹。如果HOM3将要作为OEM预安装的选项,你需要复制"winnt.sif"到"HOM3"文件夹,并且把$OEM$文件夹复制到安装文件夹中(ROOT\SETUP\WINXPHOME\)。
  注意:如果你想要加入这三个选项,那么第二个选项的"winnt.sif"文件将不能包含"OEMPreinstall = Yes"或者"GUIRunOnce"字段。
  Windows XP Pro SP1
  首先,我想我们应该把文件先复制过来。如果你还没有阅读准备开始这部份内容,我建议你去先阅读一下然后再继续。
  复制Windows XP光盘上的文件:
  在ROOT文件夹的子文件夹SETUP下,新建一个名为“WINXPPRO”的文件夹,
  例如 - D:\ROOT\SETUP\WINXPPRO\
  把XP Pro SP1光盘中所有的文件都复制到WINXPPRO文件夹中。
  创建引导文件夹:
  现在我们要开始创建引导文件夹。在ROOT根文件夹下新建一个名为“PRO1”的子文件夹,接着你需要准备一张引导软盘,然后把其中的文件释放到这个文件夹中。你可以在这里下载制作引导盘的程序,用WinRAR打开下载回来的.exe文件并解压缩其中的文件,不要直接运行这个文件创建引导盘。而在解压缩过程中WinRAR会给你一个错误信息说这个压缩文件有错误,忽略它。你从exe文件中解压缩出来的是一个WinImage的镜像文件,接着用WinImage打开这个文件,并提取其中的文件到PRO1文件夹中,在这过程中请确保你选中了WinImage中的"Extract with pathname" 这个选项,否则以后会出错的。

这时你应该已经可以把所有的引导软盘中的文件提取到"PRO1"文件夹下了,如果你的操作没有错误,那么整个SP1引导文件夹的体积应该是6.63MB。
  接着要修改一些文件。首先用UltraEdit打开PRO1文件夹下的"setupldr.bin",在"Search" -> "Find" (Ctrl+F)下搜索"i386",在搜索结果中"i386"的子母“i”上点击左键,然后输入(不要使用复制和粘贴功能)“PRO1”以取代“i386”。也就是说,你需要把这个文件中所有有关“i386”的路径替换成“PRO1”:


编辑 "txtsetup.sif":
  在你的"SETUP\WINXPPRO\I386"文件夹下找到"txtsetup.sif"这个文件,并用记事本打开。通过“编辑”->“查找”命令搜索"SetupSourcePath",然后根据你实际保存安装文件的路径进行适当的变动。本例中这里应该是"\SETUP\WINXPPRO\",这表示要在CD文件的根文件夹下查找一个名为"SETUP"的文件夹,然后在“SETUP”文件夹中查找"WINXPPRO"文件夹。保存之后就可以把它放在“PRO1”文件夹中了。
SetupSourcePath = "\SETUP\WINXPPRO\"

建DAT文件:
  下载XP Pro DAT http://www.yesky.com/imagesnew/software/031125/XP%20Pro%20DAT.zip 文件。这里你只需要"PRO1.DAT"这个文件,在UltraEdit中打开这个文件,然后向下拉动滚动条,直到你看到如下图的文字。默认情况下,文件中应该显示为SETUPLDR.BINBOOTFIX.BINPRO1,然而如果显示的不是这个,你可以自己编辑"SETUPLDR.BINBOOTFIX.BINxxxx"的最后四个字母以符合你的实际文件夹名称。然后把修改过的"PRO1.DAT"移动到"ROOT"文件夹中。


结束工作:
  打开你的安装文件文件夹"ROOT\SETUP\WINXPPRO\",然后复制(不是移动)如下文件到"ROOT"文件夹。
readme.html
spnotes.html (整合SP1 后的安装文件才有这个文件)
win51
win51ip
win51ip.sp1 (整合SP1 后的安装文件才有这个文件)
  更多的引导选项:
  如果你希望能够在安装XP Pro SP1的过程中选择常规安装、无人值守安装或者OEM预安装(无人值守安装+$OEM$ 文件夹中的内容)这三种之中的一种,那么你就需要重复创建三个"PRO*"文件夹和"PRO*.DAT"文件。对于每个选项你都需要创建一个单独的引导文件夹和DAT文件。基本上,每一个额外的引导文件夹和DAT文件都需要对应一个引导选项。如果你想要有以上提到的三种选项,那么你应该有:
  ROOT目录下的文件夹:
  PRO1
  PRO2
  PRO3
  ROOT 目录下的DAT文件:
  PRO1.DAT
  PRO2.DAT
  PRO3.DAT
  对于额外的引导文件夹(PRO2和PRO3),你都需要自己编辑相应的"setupldr.bin"文件,把其中的安装路径修改成你的实际情况(注意,同样要使用相对路径,而不是绝对路径!)。既然我们已经有了一个保存安装文件的"PRO1"文件夹和修改过的"setupldr.bin"文件,那么相应的,我们可以把另外两组文件和文件夹命名为"PRO2"和"PRO3"。不过"txtsetup.sif"文件就不需要编辑了,因为它们都指向我们的安装文件夹(ROOT\SETUP\WINXPPRO\)。
  另外的两个DAT文件也需要按照上面的方法做相应的修改。只要把"SETUPLDR.BINBOOTFIX.BINxxxx"的最后四个字母替换成你的引导文件夹。对于PRO2.DAT,把xxxx修改成PRO2;对于PRO3.DAT,修改xxxx为PRO3即可。
  还没有完,如果PRO2将要作为无人值守安装的选项,那么你还需要复制"winnt.sif"到PRO2文件夹。如果PRO3将要作为OEM预安装的选项,你需要复制"winnt.sif"到"PRO3"文件夹,并且把$OEM$文件夹复制到安装文件夹中(ROOT\SETUP\WINXPPRO\)。
  注意:如果你想要加入这三个选项,那么第二个选项的"winnt.sif"文件将不能包含"OEMPreinstall = Yes"或者"GUIRunOnce"字段。

[img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

TOP

DIY一张可引导的多操作系统光盘

[这个贴子最后由cqmis在 2003/11/29 04:45pm 第 3 次编辑]

ERD Commander 2003
  关于ERD Commander 2003有很多不同的配置,所以这里我仅仅对我配置的方法进行演示。你的实际情况可能和这个不同,但是希望你能通过这里的举例搞定你的。
  ERD Commander 2003跟XP有些不同,基本上,它没有安装文件夹,它的引导文件夹也就是它的安装文件加,因为ERD完全是从光盘上运行的,它并不会给硬盘上安装任何文件。
  复制ERD Commander 2003的文件夹:
  在"ROOT"文件夹下创建一个名为"ERD1"的文件夹。
  例如  - D:\ROOT\ERD1\
  把ERD Commander安装文件中I386目录下所有文件都复制到"ERD1"文件夹内。你的文件夹看起来应该是像这样:
  "ROOT\ERD1\"文件夹的内容:
FONTS
HELP
INF
MSAGENT
SYSTEM32
UTILS
WINSXS
biosinfo.inf
ntdetect.com
setupldr.bin
spcmdcon.sys
txtsetup.sif
如果你的目录跟这个有区别,那么你应该搜索包含了"system32"和"winsxs"两个文件夹的文件夹,然后把整个文件夹都复制到"ERD1"目录下。
  编辑 "setupldr.bin"
  在"ERD1"文件夹中,用UltraEdit打开"setupldr.bin"文件,在"Search" -> "Find" (Ctrl+F)下搜索"i386",在搜索结果中"i386"的子母“i”上点击左键,然后输入(不要使用复制和粘贴功能)“ERD1”以取代“i386”。也就是说,你需要把这个文件中所有有关“i386”的路径替换成“ERD1”:


你一共要重复做四次,如果你做的次数少了,那一定是漏掉了。
  编辑 "txtsetup.sif":
  在"ERD1"目录下找到并用记事本打开"txtsetup.sif"文件,通过“编辑”->“查找”命令搜索"SetupSourcePath",然后把找到的路径替换为"\"。
SetupSourcePath = "\"
  注意:这幅图片是来自XP Pro SP1的,别按照图片上的显示更改!

创建DAT文件:
  下载ERD Commander 2003 DAT  http://www.yesky.com/imagesnew/software/031125/ERD%20Commander%20DAT.zip 文件,在UltraEdit中打开这个文件,然后向下拉动滚动条,直到你看到如下图的文字。默认情况下,文件中应该显示为SETUPLDR.BINBOOTFIX.BINERD1,然而如果显示的不是这个,你可以自己编辑 。

结束工作:
  复制ERD1.DAT到"ROOT"目录下。
  额外的引导选项:
  感谢MSFN的gosh提供以下技巧。如果你希望在使用ERD的过程中能够把光盘从光驱中拿出来,那么你就可以设置一个特殊的引导选项,让ERD能够完全加载到内存中。
  首先,在“ROOT”文件夹下创建一个名为“ERD2”的文件夹,然后把“ERD1”目录下的所有文件都直接复制过去,然后编辑"setupldr.bin"以映射新的文件夹路径。然后把"txtsetup.sif"这个文件"OsLoadOptions"这一行编辑成:
OsLoadOptions ="/fastdetect /minint /inram"
  接下来复制之前下载回来的DAT文件的压缩包中的ERD2.DAT文件到"ROOT"文件夹中。我们还要设置可以载入ERD的启动菜单,这个可以按照创建一个引导菜单一节的内容一起完成。

在你的菜单中,你需要加入以下的字段:
print "8) ERD Commander 2003 \n"
print "9) ERD Commander 2003 /inram \n"  
  然后在"MainKey:"字段下,添加如下几行(注意key
  • 里面的数字,按照你的实际情况修改):
    if $lastKey == key[8]; then chain ERD1.DAT
    if $lastKey == key[9]; then chain ERD2.DAT
      Windows Server 2003
      复制Windows Server 2003光盘上的文件:
      在ROOT文件夹的子文件夹SETUP下,新建一个名为“WINSRV2003”的文件夹
      例如 - D:\ROOT\SETUP\WINSRV2003\
      在这个文件夹下,为你想要安装的所有版本的Server 2003分别创建各自的一个子文件夹。在本例中,我用“DCT”代表Datacenter版,"ENT"代表enterprise版,"STD"代表Standard版,最后"WEB"代表Web版。然后从Server 2003每个版本的安装光盘上分别复制所有文件到相应的文件夹中。下面我们会使用Windows Server 2003 Standard版进行演示和说明,
      创建引导文件夹:
      现在我们要开始创建引导文件夹。在ROOT根文件夹下 为你想要安装的不同版本的Server 2003分别创建一个字文件夹,然后按照上面的说法为每个文件夹用数字三带三个字母命名(3ENT, 3DCT, 3STD, 3WEB)。你需要在这里下载制作引导盘的程序,然后按照同样的方法用WinRAR展开并释放到每个文件夹中。
      基本上这意味着我们会有1-4个差不多相同的文件夹,如果你操作正确的话,每个文件夹大概有9.42MB大。
      现在开始修改文件。首先用UltraEdit打开"3STD"文件夹中的"setupldr.bin"文件,在"Search" -> "Find" (Ctrl+F)下搜索"i386",在搜索结果中"i386"的子母“i”上点击左键,然后输入(不要使用复制和粘贴功能)“3STD”。如果没有找到"i386",那说明这个文件是已经被修改过的了。总之在这一步,你要确保安装文件的保存路径没有搞错。


    你一共要重复做四次,如果你做的次数少了,那一定是漏掉了。
    编辑 "txtsetup.sif":
      在你的"SETUP\WINSRV2003\STD\" 文件夹下找到"txtsetup.sif"文件,然后用记事本打开它,通过“编辑”->“查找”命令搜索"SetupSourcePath",然后根据你实际保存安装文件的路径进行适当的变动。本例中这里应该是"\SETUP\WINSRV2003\3STD"。保存之后就可以把它放在“3STD”文件夹中了。
    SetupSourcePath = "\SETUP\WINSRV2003\STD\"

    创建DAT文件:
      下载Server 2003 DAT http://www.yesky.com/imagesnew/software/031125/Server%202003%20DAT.zip 文件,对Server 2003 Standard版,你只需要"3STD.DAT"这个文件。在UltraEdit中打开这个文件,然后向下拉动滚动条,直到你看到如下图的文字。默认情况下,文件中应该显示为SETUPLDR.BINBOOTFIX.BIN3STD,如果不是这样,编辑"SETUPLDR.BINBOOTFIX.BINxxxx"的最后四个字母以符合相应的文件夹名称。然后把修改过的DAT移动到"ROOT"文件夹中。


    结束工作:
      打开你的安装文件夹"ROOT\SETUP\WINSRV2003\xxx",然后复制(不是移动)如下文件到"ROOT"文件夹。
    readme.html - (需要的话可以覆盖,不过这个不重要)
    win51s (Standard版才有)
    win51d (Datacenter版才有)
    win51a (Enterprise版才有)
    win51b (Web版)
      举例来说,如果你准备了这四个不同版本的Server 2003,那么在"\SETUP\WINSRV2003\"下你应高有四个子文件夹,在“ROOT”文件夹下同样有四个"3xxx"文件夹。
  • [img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

    TOP

    DIY一张可引导的多操作系统光盘

    创建其它程序

    本节讲述了一些运行程序和工具……
    自定义 "setup.exe"
    CD Shell 引导图像
    为软盘上运行的程序创建引导盘
    自定义 "setup.exe"自动运行文件
      创建一个自动运行文件:
      这个是我当前在“ROOT”文件夹下使用的"setup.exe"安装文件

    首先 要说明的是,我并不是程序员,我也不懂怎样用Visual C++ 或者C#设计程序,所以我用了AutoPlay Media Studio 4.0 来设计。同时我也借用了Longhorn Build 4051的"setup.exe"文件中的背景图片。
      准备工作
      如果你想要在你自己的自动运行文件中使用Longhorn的这张图片,你可以从安装文件中提取出来。你需要一个资源编辑软件,我建议你使用ResHacker 3.4.0。用这个软件打开Longhorn的"setup.exe",然后在你的桌面上创建一个名为"resources"的文件夹。在ResHacker中右键点击"Bitmap"然后点击"Save [Bitmap] Resources"。随便给这文件起个名字,然后把它保存在你的"resources"文件夹内。接着退出ResHacker并打开你的"resources"文件夹,在那里你可以看见安装文件中所有的位图。

    修改设置
      接着,运行AutoPlay Media Studio 4.0并选择"Blank Project",文件名则可以随意取。首先打开"Project" -> "Settings",在"General"选项卡下找到"Distribution Folder",我们需要它指向我们的"ROOT"文件夹。这一步是很重要的,如果没有做好后面所有的链接就都无法工作了。
      在"Page Size"下,我选择了一个自定义的尺寸800x600,因为Longhorn的安装文件就是这么大的。在"Build"选项卡下你可以随意为你的这个文件选择一个名称,我在这里选择了"setup.exe"。仍然是在"Build"选项卡下,你可以选择是否创建一个"autorun.inf"文件,我建议你能选择,这样可以使用一个自定义的漂亮图标,而不是程序默认的那个丑陋的黄色AutoPlay"图标。我选择使用Windows XP Pro安装文件中的图标,你可以通过定位到"SETUP\WINXPPRO\"目录然后在"Files of type:"下设置为"All files"以选定这个文件。
      创建界面
      我以创建现在使用的这个界面为例进行说明。
      对我来说,最简单的办法就是把所有的资源文件夹和所有需要的位图都打开,然后把需要用到的图片拖动到Media Studio界面中。例如如果你打算使用Longhorn的背景图片,则把"Bitmap_38"拖到AutoPlay界面中,并移动到整个设计区的左上角。这样我们的背景就弄好了!
      在下图显示的区域里,我们所有的图形文件和文字都会显示出来,双击"Image 1"然后你就能看见所有可用的选项了。在"Attributes"选项卡的“Properties”下最好能给你的图片起一个比较有逻辑性的名称,这样对于每张图片,我们马上就能很清楚地指导这个图片将会被用在何处。你还可以继续察看一下所有的选项卡,看看都有哪些可用的属性设置,同时我建议你双击右侧的小锁图标,这样你就可以锁定背景,这样在你移动按钮的时候背景图片就不会跟着一起移动了。


    接着我们开始创建按钮。把"Bitmap_14"拖到Media Studio的界面中,然后把它放置在你喜欢的位置。然后同样是双击Resource窗口下的按钮位图的文件名,给这个位图重新命名。如果你想要在鼠标经过按钮时按钮显示其他图像,则在Mouse Over Image下制定一个图形文件,Mouse Down Image用以指定鼠标点击按钮后按钮的显示图像。
      接着我们开始设置按钮行为。在"Actions"选项卡下你应该注意到我们可供选择的行为有很多,并且都已经分类,同时还显示了每个行为会在什么情况下发生。在这里我们只需要用到"OnClick"的行为。如果我们希望点击某个按钮后开始运行Windows XP Pro的安装文件,则需要在"Available Actions"窗口下展开"File",然后双击"Execute",并在弹出的窗口的“File to Execute”下指定要运行的位于"\SETUP\WINXPPRO\"目录下的setup.exe文件,然后点击“确定”退出。如果你不想显示出XP Pro安装程序的屏幕,则可以选择直接运行i386 文件夹下的"winnt32.exe"文件。
      如果你知道怎样使用命令行工具,则可以在这里随心所欲地设置。举例来说,你可以通过一个按钮来安装Microsoft Office 2003并且与此同时通过命令行模式指定一些特殊的用Office Toolkit生成的安装参数(关于这个的具体内容,你可以参考创建无人值守XP安装光盘一文)。
      接下来我们为按钮创建一些提示文字。在工具栏的顶端(你也可以从上面的截图中看到),你可以看到一个带有字母“A”的白色按钮,这个按钮就是用来创建文字对象的。提醒一下,你可以为文字设置各种特性。本例中我没有对文字设置任何行为,并且我把正常、鼠标悬停、鼠标点击的颜色都设置成了白色。
      排列对象
      如果你希望你的按钮和文字都能排列整齐,那么这是很容易做到的。通过用鼠标拖动形成选择框以选中所有你想要重新排列的所有按钮图像,或者在按下Shift的同时分别点击Project Bar中显示的图像。随后你可以看见在设计区域的左下方有一些排列按钮(Align ...),分别点击它们就可以把选中的对象按照特定的方式排列。
      多界面
      如果你希望你的程序有多个页面,例如有一个“其他任务”或者其他什么样的界面,那么就可以点击Project Bar底部的"Pages"选项卡(这个仍然可以在上面的截图中看到的)。如果你不想再重新设置新页面的背景和按钮,那你可以右健点击列出的已有页面,然后选择"Copy",然后右健再次点击这个页面,然后选择"Paste After"。这样你就有两个完全一样的界面了,而在新建的界面上你可以重新编辑按钮、文字以及行为。如果你想新建一个新的空白页,只要在"Pages"窗口的空白处点击鼠标右键,然后选择"Add"即可。同时,你也应该按照功能给新建的页面重新命名。
      在这里我们需要从第一个页面跳到第二个上面去。在你的第一个页面上创建一个按钮,通过这个按钮就可以到达第二页。双击这个按钮,然后在"Actions"选项卡下展开"Page",然后双击"Jump",在下拉菜单中选中你希望点击按钮后到达的页面,然后点击“确定”。请确定这个按钮上没有设置多个行为(例如同时执行文件以及转到某一页)。
      预览新的对话框
      在菜单上选择"Project" -> "Preview",这将会通过一个模拟器显示我们的自动运行文件的真实执行情况。请确保前面设置的每个按钮都可以执行正确的文件或者转到正确的页面。
      创建我们的文件
      一旦对我们制作的自动运行文件完全满意了,就可以通过"Project" -> "Build"命令生成文件了。程序会询问你是否确定,选择是,然后程序就会自动把所有需要的文件生成到"ROOT"文件夹中。
      基本上就是这些了,通过Media Studio你还能做很多其他事情,但我只说明了我这里用到的功能。当你用CDIMAGE创建好ISO文件并且刻录到DVD光盘上,当你把这张光盘插入光驱后就应该能看到弹出的我们自己创建的自动运行界面了。
    CD Shell 引导图像
      更改 CD Shell 引导图像
      当你用DVD光盘启动电脑后CD Shell会显示一张图片并持续几秒钟,然后就会显示你自定义的菜单。本段文章则会告诉你怎样更改显示的图片。这图片是保存在“CDSH”目录下的"tools"子目录中的,而我们要使用"convert"这个程序。
      在使用这个程序之前,我们要先准备好分辨率640x480,24位色深的位图图片,并把这个图片保存在“Tools”文件夹下,接着,打开一个命令提示行窗口,并在命令行下进入"tools"文件夹。
      D:
      cd root\cdsh\tools
      然后输入如下的命令:
      convert -bmp2csi -o splash.csi logo.bmp
      在这里可用的参数有以下几个:
      -bmp2csi
      用这个参数把bmp文件转换成sci文件
      -o splash.csi
      生成一个新的splash.csi文件
      logo.bmp
      需要转换的640x480分辨率位图的名称
      然后把新创建的csi文件复制到"CDSH\graphics\"文件夹下,并且必须命名为"splash.csi"。
     ?Partition Magic, Ghost等
      本段的内容适用于所有可以从软盘上运行的程序和工具,例如Partition Magic 8.0可以从多张软盘上运行,哪怕硬盘上没有装任何操作系统。我们在这里就以Partition Magic 8.0为例进行说明。
      为Partition Magic 8.0创建引导盘,然后在桌面上新建一个文件夹并把引导盘中的文件全部复制进取。运行WinImage,执行"File" -> "New"命令,然后选择"2.88MB",接着把复制出来的文件全部拖动到WinImage的界面上,然后把这个文件保存为PM8.IMA并复制到"ROOT"文件夹中。

    [img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

    TOP

    DIY一张可引导的多操作系统光盘

    制作安装盘及其它

    本节讲述了制作安装盘的结尾工作及相关下载……
    系统基础总结
    创建一个引导菜单
    清理垃圾文件
    测试
    所需工具下载
    屏幕截图


    总结
      这段将会对基于NT的和非NT的系统创建多重引导光盘的基础进行一下总结。
      基于NT的操作系统
      Windows XP Pro, XP Home, 2000, NT 4.0
      通常基于NT的操作系统在安装光盘根目录下都会有一个i386文件夹,这个文件夹中也包含了引导相对应操作系统所必需的文件。当一个可引导的光盘被创建以后,一个名为"xpboot.bin"的文件就会被用来生成相应的引导选项。
      当光盘引导的时候会发生以下情况:
    引导扇区告诉计算机在“i386”文件夹中查找"setupldr.bin"文件
    "setupldr.bin" 吩咐计算机在“i386”文件夹中查找一个名为"txtsetup.sif"的文件加
    "txtsetup.sif"告诉你算机在光盘的根目录找到"setup.exe"文件
      因此当我们要创建一个可引导的多操作系统光盘时,我们要注意以下几点事情:
    必须在保存各个操作系统安装文件的文件夹以外创建一个名称为四个字母的文件夹,这个文件夹用来保存相应操作系统的引导盘中的所有文件。
    "setupldr.bin"文件必须经过编辑,这样原来指向i386的路径就全部指向我们新建的四个字母为名的文件夹去。
    txtsetup.sif文件的"SetupSourcePath="这一行必须经过修改,以映射到正确的保存了安装文件的文件夹去。通常会类似于SetupSourcePath = "\SETUP\WINXPPRO\"
    "xpboot.bin"必须经过修改,这样所有指向i386的路径就会被转向到我们新建的四个字母为名的引导文件夹去。而且这个文件必须被重命名为一个DAT文件(PRO1.DAT, 2PRO.DAT等)。
    把所有的DAT文件都放置在"ROOT"文件夹下。
      因此,"txtsetup.sif"和"setupldr.bin"这两个文件必须放在引导文件夹(PRO1, HOM2, ERD1等),而DAT和IMA文件则应该放在"ROOT"文件夹下。

    非NT操作系统
      Windows 95, 98 SE, ME
      一个非NT的操作系统通常用插入软驱的软盘来引导系统,并运行操作系统的安装程序,虽然有可引导的Windows 98引导光盘,不过无疑使用引导软盘是最简单的方法。
      通常安装一个非NT的操作系统要经过以下步骤:
    下载引导软盘的镜像文件,或者用WinImage通过已有的引导软盘创建一个镜像文件
    在WinImage中展开"autoexec.bat"和"config.sys"两个文件。
    根据安装文件的实际路径编辑"autoexec.bat"文件
    编辑"config.sys"文件以便形成从光盘引导的选项
    把文件保存为IMA格式
    把所有IMA和IMG文件复制到"ROOT"文件夹下。
      创建引导菜单
      你可以在"下载" 页面找到相应文件。注意看一下我的"cdshell.ini"文件,这样你差不多就应该知道CD Shell的脚本是怎样工作的了。如果你把那个文件复制到你的"CDSH"文件加并且运行debugger程序,你就可以看到我的引导菜单是怎样工作的。不用担心,那里的选项不会实际运行任何程序的,这只是向你演示了我的文件起了什么作用。
      现在看一些有趣的东西。要创建我们自己的引导菜单,需要CD Shell 2.0.9b这个软件,这个软件以前叫做BootScriptor。现在你还是可以下载到BootScriptor的,它们之间的差别相当大,所以BootScriptor的内容在这里不再讨论。
      如果你决定使用比较老的"diskemu.cmd"的方式,可能更容易做一些,然而这里也不讨论哪种方法。
      要注意这部分文章非常长,因为没有相关的文件,因此要得到CD Shell使用中的小窍门就很困难了,然而一旦你掌握了基本的操作,那么你就不会遇到太大的问题了。
      使用CD Shell有很多好处,首先CD Shell中显示的目录结构非常清晰明了,你可以设置不同的颜色,你可以直接察看文本文件,而不用打开那个丑陋的蓝色界面的Edit程序,你可以直接预览你的菜单而不用真的把这些文件刻录成光盘或者制作成镜像文件并载入虚拟机中。
      这里就是一个用CD Shell创建的引导菜单的截图:

    如果你是照着“准备开始”一节一直做过来的,那么你的ROOT文件夹下应该有一个"CDSH"文件夹,这个文件夹中的"cdshell.ini"文件就包含了引导菜单中要显示的内容。用记事本或者写字板或者其他你喜欢的编辑器打开那个文件。
      重要:在以下工作都完成后注意看本文的最末尾处。

    CD Shell 命令
      CD Shell的脚本命令非常庞大,而相应的文档则有些缺乏,所以我会在这里演示一些基本的创建引导菜单的内容。
      显示文字
    cls
    print "1) Windows XP Professional SP1 Corporate \n"
      "cls"命令会在显示文字之前先清空整个屏幕上显示的内容。所有想要显示出来的文字必须包含在引号里面。通过使用分号(;),输入一次命令可以执行多个print命令,只要两个print命令之间用分号隔开。\n命令会创建一条横线并返回,因此如果我们要在两个菜单选项之间空出一点空间的时候就可以在第一条Print命令后第二个print命令使用前先使用一个 \n\n 命令。
      要想居中、左对齐或者右对齐,可以使用"c","l"和"r"命令。
    print c "This is an example of centered text"
      如果你想添加注释,只要在你的注视内容前添加一个"#"字符即可。
    # This is a comment. It will not print anything on the screen.
      Creating Sections
      区段(Setions)被用来保持代码整洁和有组织,并且允许命令直接跳到某个特定的区段以执行特定的代码。要想创建一个区段,首先输入区段的名称,然后后面紧跟一个冒号。通常我习惯于把我的第一个区段命名为"menu:"。注意,代码是严格按照写入的顺序按顺序执行的,因此要记得在每个操作系统区段之后要紧跟一个针对那个操作系统的关键区段(key section)。在你看到操作系统区段的时候就明白我在说什么了。例如:
    boot:
    xp_pro:
    moreoptions:
      设置颜色 - 可选
      在每个区段的最前面使用以下命令就可以为整个引导菜单设置颜色。
    menu:
    set textColor= color[grey on black]
    set boldColor= color[cyan on black]
      可用的颜色有:黑色,蓝色,绿色,紫色,红色,品红、棕色,灰色、亮灰色、亮蓝色、亮绿色、亮品红、亮红色、黄色还有白色。
      想要用不同颜色高亮显示某些特定的文字,可以使用"\cXX" 和 "\cxx"命令。"\cXX" 指出随后的文字将会使用高亮色(bold color),而"\cxx" 命令指出随后的文字将会使用普通的颜色。如果你想要使用更多的颜色而不想每次都设置一边,那么可以把XX 用两位数字代替,第一位表示背景色,第二位表示文字的颜色,例如:
    print "\cXXThis text is boldcolor. \cxxThis text is normal color."
      以上的命令会用黑色背景青色文字显示出"This text is boldcolor",并在后面用黑色背景灰色文字显示 "This text is normal color."。
    代码 颜色 代码 颜色
    0 黑色 8 灰色
    1 蓝色 9 亮蓝色
    2 绿色 A 亮绿色
    3 青绿 B 亮青色
    4 红色 C 亮红色
    5 品红色 D 亮品红
    6 棕色 E 黄色
    7 亮灰色 F 白色
    因此如果你仔细看了本也前面的那张截图,那么你就应该明白以下的代码会产生怎样的效果:
    print l "\cXXPress \c0BF1 \cXXfor Help"; print r "\c0Bckite@portraitofakite.com \n"
      "Press"这个词是用青色显示在黑色背景上的,而"F1"则是用亮青色显示在黑色背景上,"For Help"又使用青色显示在黑色背景上,然后我的email地址又一次用亮青色显示在了黑色背景上。
      用户输入
      接下来我们新建一个名为"MainKey:"的区段,这个区段可以放在"menu:"后面,这里是这个区段的头两行:
    MainKey:
    getkey 20 boot 0x80
    if $lastKey == key[1]; then goto XP_Pro
      第一行指定了区段的名称。
      第二行使用"getkey"命令来保存用户输入的信息。"20" 是一个时间的上限,这意味着如果在20秒内没有任何按键被按下去,"boot 0x80"就会被运行。"boot 0x80"会自动从系统中的第一个硬盘驱动器尝试启动。如果当前的硬盘中还没有装操作系统,那么自然什么都不会发生。你可以不设置时间显示,这样如果你一直不按键盘,那么屏幕上就会一直显示最初的信息,直到你按下某个键。
      最后一行用了一个"if"命令来检查用户输入的内容,这里的意思是,如果“$lastkey”中被输入的内容是"1",那么将会转到(goto)"XP_Pro"区段。
      运行文件和条约到区段
    chain /PRO1.DAT
      这个命令将会运行PRO1.DAT这个文件,文件名前面的一个斜线"/"用以告诉 CD Shell PRO1.DAT这个文件保存在光盘的根目录下。
    memdisk /98SE.IMA  
      这个命令会运行98 SE 启动盘的磁盘镜像,并开始安装98 SE。在IMA和IMG文件之前必须先使用一个"memdisk"命令。
    goto XP_Pro:  
      这个命令会跳到"XP_Pro:"区段并继续执行那里的代码。
    type /keycodes.txt  
      这个命令会在屏幕上显示"keycodes.txt"文件的内容,实际上这并不会打开那个文本文件,它只是把文件的内容显示在屏幕上而已。

    操作系统区段
      以"User Input:"区段为例说明,我们现在新建一个名为"XP_Pro:"的区段,每个操作系统的区段后面都要跟着一个关键区段,这个区段会为我们的XP选项新建一个菜单。以下是我的"XP_Pro"区段的内容。注意 "Ä"字符,使用在命令中后,这个字符会显示出一个连续的横线,如果用连字符的话横线就变成了中间有间断的虚线了,像这样:"-----"。
    XP_Pro:
    cls
    print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
    print c "\n\cXXMicrosoft Windows XP Professional SP1 Corporate \n"
    print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"
    print "1) Regular \n"
    print "2) Unattended \n"
    print "3) OEMPreinstall \n"
    print c "\n\n"
    print "Press any key to return to main menu... \n"
    XP_Pro_Key:
    getkey 20 goto menu
    if $lastKey == key[1]; then chain /PRO1.DAT
    if $lastKey == key[2]; then chain /PRO2.DAT
    if $lastKey == key[3]; then chain /PRO3.DAT
    if $lastKey == key[F1]; then goto Help
    goto menu

      会发生什么事?计算机会显示出XP_Pro:区段中的内容,然后继续执行下一个区段(XP_Pro_Key:),在这个区段中就会使用到getkey 命令。因此计算机会等待用户按下一个按键,如果用户按下的是"1",计算机就会开始执行"PRO1.DAT"文件,并开始XP的安装过程。如果20秒之内没有任何按键被按下,那么CD Shell就会返回主菜单。
      如果对于XP你只有一个选项,并且不想再有其他的额外菜单,那么你就可以跳过"XP_Pro:"和"XP_Pro_Key:"这两个区段。
    getkey 20 boot 0x80
    if $lastKey == key[1]; then goto XP_Pro
      以上命令可以变为:
    getkey 20 boot 0x80
    if $lastKey == key[1]; then chain /PRO1.DAT
      更多选项:
      为了使用Partition Magic 8.0, Norton Ghost等程序以及察看相应的产品序列号,我还在我的文件中使用了MoreOptions:这个区段。同时,在"menu:"和"MainKey:"这两个区段还要有相应的入口。
    MoreOptions:
    cls
    print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
    print c "\n\cXXMore Options \n"
    print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"
    print "1) Read/Copy Files From NTFS Volumes To FAT32/16 Drives \n"
    print "2) Partition Magic 8.0 \n"
    print "3) Norton Ghost \n"
    print "4) View Serial Numbers \n"
    print c "\n\n"
    print "Press any key to return to main menu... \n"
    MoreOptions_Key:
    getkey 20 goto menu
    if $lastKey == key[1]; then memdisk NTFS.IMA
    if $lastKey == key[2]; then memdisk PM8.IMG
    if $lastKey == key[3]; then memdisk GHOST.IMA
    if $lastKey == key[4]; then goto SerialNumbers
    goto menu




    [img][/img]
    [img][/img]
    [img][/img]
    [img][/img]
    [img][/img]
    [img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

    TOP

    DIY一张可引导的多操作系统光盘

    结尾
      再你的cdshell.ini文件的最末尾处应该有一个"end"标示。
      end
      大体上就是这些了, "end"命令会把你带入一个CD Shell的命令行界面,就像DOS界面一样,但在那里支持更多的命令并且目录结构的显示也更加漂亮。在命令行中输入"HELP"就可以察看都能做些什么。
      调试
      CD Shell最好用的一个功能就是调试了。想要调试的话只要简单的双击“CDSH”文件夹下的"cdshw.com"文件就可以了。这将会运行一个模拟器,并能精确模仿出计算机启动时将会发生的事情。你不用担心无意中安装了XP或者错误地进行了类似的操作,因为所有的调试过程都是模拟出来的,"chain"或者"boot"或者其他类似的命令实际上是不被调试模式支持的。要退出调试模式,只要在命令行中输入"exit"命令即可。如果你无法退出调试模式,也只用按下"Ctrl+Alt+Del"来结束调试模式的进程。
      如果因为某些原因调试模式无法正常启动,那么你可以把你的整个"CDSH"文件夹复制到其他位置试试看,多换几个地方,直到能够正常工作。例如,你可能会收到类似这样的一个错误信息:"set" command or "print" command or something like that is not supported。我把我的"CDSH"文件夹复制到桌面上然后重新进入调试模式,这下就可以正常工作了。所以我就在桌面上编辑了剩下的代码,然后重新移动到ROOT文件夹下的"CDSH"目录中。
      小花样
      以下的代码我放在了我的"cdshell.ini"文件的最开头处,它能实现如下效果:
      首先,它以一个"boot:"区段开始,这个区段首先在屏幕上显示"Press enter to boot from DVD...",然后才会显示出菜单。如果在5秒钟之内没有按下回车键,那么程序就会跳过菜单,直接引导第一个硬盘分区上的操作系统,无论那是什么系统。
      后面的两个区段时我写的用来显示当前的日期和时间,这个代码的效果可以在顶部的截图中看到。
    boot:
    cls
    print "\n"
    print "Press Enter to boot from DVD... \n"
    getkey 5 boot 0x80
    if $lastKey == key[enter]; then goto time
    # When no key found...
    goto boot
    # Function to display time of day
    time:
    set hour = $timeHour
    set ampm = "am"
    if $timeHour > 12; then set hour = $timeHour - 12
    if $timeHour > 12; then set ampm = "pm"
    set time = "$hour:$timeMinute$ampm"
    # Function to display date
    date:
    set month = "n/a"
    if $dateMonth == 1; then set month = "Jan."
    if $dateMonth == 2; then set month = "Feb."
    if $dateMonth == 3; then set month = "Mar."
    if $dateMonth == 4; then set month = "Apr."
    if $dateMonth == 5; then set month = "May."
    if $dateMonth == 6; then set month = "Jun."
    if $dateMonth == 7; then set month = "Jul."
    if $dateMonth == 8; then set month = "Aug."
    if $dateMonth == 9; then set month = "Sep."
    if $dateMonth == 10; then set month = "Oct."
    if $dateMonth == 11; then set month = "Nov."
    if $dateMonth == 12; then set month = "Dec."
    set date = "$month$dateDay,$dateYear"

      如果想要在实践和日期旁显示一条线,我使用了如下的代码:
    print c "\n\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ<\c0B$time $date\cXX>ÄÄ \n\n"
      使用"Ä"字符可以在屏幕上显示一条直线,而不是用连字符号形成的虚线(-----)

    测试和刻录
      创建ISO文件
      我们可以使用CDIMAGE来创建ISO文件,不过用CDIMAGE无法向已有的ISO文件中添加新的文件。并且一次你只能创建一个ISO文件。
      如果你还没有CDIMAGE,那么你可以在准备开始页的“需要准备的材料”下找到下载。我建议你把CDIMAGE和“ROOT”文件夹保存到同一个文件夹下。例如:
      D:\cdimage.exe
      D:\ROOT\
      打开一个命令行窗口,然后进入到保存了CDIMAGE和ROOT文件夹的路径下,在你使用命令的时候要注意,以下命令是一行输入完的,因为页面宽度的问题这个很长的命令才以两行的形式显示出来,还要注意,我把我的DVD文件保存在D盘的根目录,你当然可以保存在其他地方。
    start D:\cdimage.exe -lXP2K98 -t08/23/2001,09:00:00 -bD:\ROOT\CDSH\loader.bin -h -n -o -m D:\ROOT D:\customdvd.iso
      这些命令代表什么意思?
    start D:\cdimage.exe
      用命令行的方式运行CDIMAGE程序

    -lXP2K98
      把ISO文件的卷标设置为XP2K98。这个你自己可以随意设置,请注意这里是一个连字号后面跟一个小写字母L,不是i,数字1或者其他什么。

    -t08/23/2001,09:00:00
      设置DVD的生成时间,默认设置就可以

    -bD:\ROOT\CDSH\loader.bin
      引导扇区文件的位置,loader.bin

    -h -n -o -m
      特殊的参数,保持默认设置就可以
      D:\ROOT
      欲生成镜像文件的文件的保存位置
      C:\customdvd.iso

    我们要把生成的ISO文件保存的位置以及希望使用的文件名。在本例中我命名该文件为"customdvd.iso",并把它保存在D盘的根目录下,在这里你必须输入iso这个扩展名。请注意,你要保存所生成的镜像文件的分区必须有足够大的硬盘空间,如果没有就无法创建ISO文件了。
      注意:有时候CDIMAGE会给出类似如下的警告:
      WARNING: These two files are identical for the first 65536 bytes, but differ at some point beyond that. This could be intentional, but it might indicate that one of these two source files is corrup:
        D:\ROOT\PRO1\SETUPLDR.BIN
        D:\ROOT\PRO2\SETUPLDR.BIN
      这是正常的,CDIMAGE 认为这些文件可能会被认为是一样的,但实际上不不同的,因此它会给你一个警告。指出文件一致的可能性。我们是了解的,这两个文件虽然看起来一样,但实际上还是不同的,因此这个警告可以不用理会。
      更好的方法是创建一个批处理文件,这样你就可以随时运行这个文件来创建ISO镜像。以下命令只有两行,是一个BAT文件的内容,如果直接复制并粘贴过去,那你应该不会弄错。只要把文件路径部分按照你的实际情况修改一下就可以使用了。
    DEL C:\*.ISO
    start D:\cdimage.exe -lXP2K98 -t08/23/2001,09:00:00 -bD:\ROOT\CDSH\loader.bin -h -n -o -m D:\ROOT C:\customdvd.iso
      测试ISO文件
      VMware 4.0.5 和Virtual PC 5.2都是很好的测试工具。
      Virtual PC - 创建一个新PC,并且随便选一个名字。选择"Guide Me",并选择"Windows XP"作为要安装的操作系统。如果愿意,你还可以调整一下迷人分配的内存大小,尽可能保证不要低于128MB。创建一个新的磁盘镜像,并且随意起一个名字。然后启动这个虚拟机,在"CD" -> "Capture Image"命令下找到你创建的ISO文件,然后选择"PC" -> "Restart"命令,接着就开始安装了,在这过程中你就可以测试一下你的镜像文件到底还有没有问题。
      VMware - 创建一个新的虚拟机,选择"Custom"然后选择"Windows XP Professional"作为操作系统。如果愿你,你可以编辑一下虚拟机的名称和保存位置。你也可以重新调整一下分配给虚拟机的内存大小,接着设置你的网络连接,这里我建议你选择"Do not use a network connection"因为它和我的网络连接有冲突,而且在这个测试中也没必要使用网络。选择"Create a new virtual disk",然后如果愿你你也可以重设一下虚拟机磁盘的大小,默认的大小就是可以使用的最大值。如果你仅仅是为了测试,用不了4GB,那么磁盘文件就不会占据4GB的空间,但如果虚拟机使用超过了4GB,软件会自动分配给虚拟机更多的磁盘空间。如果你想要测试OEM预安装模式,并且要使用6GB左右的空间,那么你最好在这里就调整的大一些。完成后,选择"Edit virtual machine settings",选中光驱,然后选择"Use ISO Image",选中你的ISO文件,点击“确定”,然后启动虚拟机,安装过程就开始了。
      刻录ISO文件
      基本上,你只要有一个能够刻录镜像文件的刻录软件就可以了,我用的是Nero 6.0.0.19,我右键点击那个文件,然后选择"Open With..."并找到Nero,Nero就可以自动运行并且打开刻录对话框,点击“刻录”按钮就可以开始了。
    清理
      为了我们的DVD能更好工作,我们需要清理掉一些垃圾文件。
      你可以使用Windows的搜索功能来搜索"ROOT"文件夹,这样所有子文件夹中的文件都可以被搜索到了。
      unattended.txt
      所有这些文件全部删除
      bootfix.bin
      这个文件是用来显示"Press any key to boot from cd...."的,如果你不想浪费时间来等待这些文字的显示而直接进入安装界面,就可以直接删除所有的这些文件。
      .bak
      .bak文件是由UltraEdit创建的,全部都可以删除。
      txtsetup.sif
      如果相应的i386文件夹中有"txtsetup.sif"文件,则这些文件可以删除。但是如果这些文件位于引导文件夹(PRO1,PRO2,3ENT,NT4S等),那么你就不能删除它们。
      你的所有引导文件夹中都会有一个"txtsetup.sif"文件,如果你只在Windows XP Pro的"i386"文件夹下看到它而没有在“PRO1”文件夹下看到,那么就需要把它移动到引导文件夹中。如果引导文件夹中还没有的时候千万别删除它们。
      txtsetup.si_
      如果有,那么它们全部可以被删除。
      setupldr.bin
      如果相应的i386文件夹中有"setupldr.bin"文件,那么它们可以被删除。但如果是在根目录下(PRO1,PRO2,3ENT,NT4S),则千万不要删除它们。
      setupldr.bi_
      如果有,那么它们全部可以被删除

    [img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

    TOP

    DIY一张可引导的多操作系统光盘

    本文打包下栽
    附件: 您所在的用户组无法下载或查看附件
    [img]http://pic.xabar.net/generator/email/?id=asp30&mail=163.com&tc=&rc=[/img]

    TOP

    发新话题