本节讲述了几大操作系统的复制和创建引导文件夹……
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文件。
编辑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 版才有 作者: cqmis 时间: 2003-11-30 00:30 标题: 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" 这个选项,否则以后会出错的。
编辑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" 这个选项,否则以后会出错的。
创建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" 这个选项,否则以后会出错的。
建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"文件夹中。
首先 要说明的是,我并不是程序员,我也不懂怎样用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”下最好能给你的图片起一个比较有逻辑性的名称,这样对于每张图片,我们马上就能很清楚地指导这个图片将会被用在何处。你还可以继续察看一下所有的选项卡,看看都有哪些可用的属性设置,同时我建议你双击右侧的小锁图标,这样你就可以锁定背景,这样在你移动按钮的时候背景图片就不会跟着一起移动了。
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
结尾
再你的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文件保存的位置以及希望使用的文件名。在本例中我命名该文件为"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_
如果有,那么它们全部可以被删除