无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3151|回复: 6
打印 上一主题 下一主题

[原创]---续CD shell 与 Bootable CD wizard的完美结合

[复制链接]
跳转到指定楼层
1#
发表于 2004-10-24 19:58:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[这个贴子最后由warriorai在 2004/10/25 02:41pm 第 4 次编辑]

                        
                          CD shell 与 Bootable CD wizard的完美结合
  
  需要准备的材料:
   1.CD shell 2.1.4
(下载地址:http://www.cdshell.org/download/download.html,打开链接后请点击CD shell Binaries进行下载)
   2.Bootable CD wizard 2.0
(下载地址:http://bcdw.bootcd.ru/,打开链接后请点击 bcdw-2.0a1.zip下载,大小为240Kb的那个)
   3. CDimageui (下载地址:http://www.skycn.com/soft/2190.html, 制作ISO文件)
   4.已经整合了sp2的windows xp安装文件

  首先解压缩下载回来的Cds2104压缩包,在D盘下建立一个名为WINXP的文件夹,把解压出的boot,licenses,tools文件夹复制到文件夹WINXP里,并把boot文件夹里面的scripts文件夹删掉。
  然后对bcdw-2.0a1.zip进行解压,解压完成后会有一个cdsh的文件夹,打开这个文件夹,把modules文件夹下的bcdw.csm文件复制到WINXP\boot\modules中。这里bcdw.csm相当于一个插件,使CD shell可以对Bootable CD wizard 的命令进行调用,扩展启动支持的文件类型,如IMG,ISO,WBT,IMA文件等。
  接着把windows xp的安装文件复制到WINXP文件夹中,现在我们开始创建自己的启动菜单。使用CD Shell有很多好处,首先CD Shell中显示的目录结构非常清晰明了,你可以设置不同的颜色,你可以直接察看文本文件,而不用打开那个丑陋的蓝色界面的Edit程序,你可以直接预览你的菜单而不用真的把这些文件刻录成光盘或者制作成镜像文件并载入虚拟机中。
 这里就是一个用CD Shell创建的引导菜单的截图:[UploadFile=Image_1098619060.jpg]
  CD Shell 命令
  CD Shell的脚本命令非常庞大,而相应的文档则有些缺乏,所以这里将演示一些基本的创建引导菜单的内容。
  显示文字
  cls
  print "1) Windows XP Professional with sp2 \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)。在你看到操作系统区段的时候就明白我在说什么了。例如:
  Menu:
  Main:
 
  设置颜色 - 可选
  在每个区段的最前面使用以下命令就可以为整个引导菜单设置颜色。
  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    1    2     3   4     5      6     7    8     9      A      B      C      D      E    F   
  颜色 黑色 蓝色 绿色 青绿 红色 品红色 棕色 亮灰色 灰色 亮蓝色 亮绿色 亮青色 亮红色 亮品红 黄色  白色
 
  因此如果你仔细看了前面的那张截图,那么你就应该明白以下的代码会产生怎样的效果:
   
   print c "\cXX哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪\c01 Vincent\cXX哪哪哪\n"
  "Vincent"这个词是用蓝色显示在黑色背景上的,而一条中间分开的直线是青色的。
  用户输入
  接下来我们新建一个名为"Main:"的区段,这个区段可以放在"menu:"后面,这里是这个区段的头两行:
 
MainKey:
getkey 60 boot 0x80
if ($lastKey == key[f1]); then bcdw boot /I386/SETUPLDR.BIN
 
  第一行指定了区段的名称。
  第二行使用"getkey"命令来保存用户输入的信息。"60" 是一个时间的上限,这意味着如果在60秒内没有任何按键被按下去,"boot 0x80"就会被运行。"boot 0x80"会自动从系统中的第一个硬盘驱动器尝试启动。如果当前的硬盘中还没有装操作系统,那么自然什么都不会发生。你可以不设置时间显示,这样如果你一直不按键盘,那么屏幕上就会一直显示最初的信息,直到你按下某个键。
  最后一行用了一个"if"命令来检查用户输入的内容,这里的意思是,如果“$lastkey”中被输入的内容是"F1",那么将会运行在光盘根目录下的I386文件夹中windows xp 的setupldr.bin文件,从而开始安装window xp。(新版的Bootable CD wizard可以直接启动setupldr.bin,而不用象Easyboot等其他一些软件制作的启动光盘需要先启动Loader.bin,然后由Loader.bin引导I386下的setupldr.bin。
  
   运行文件和条约到区段 
   chain /PRO1.DAT
 
  这个命令将会运行PRO1.DAT这个文件,文件名前面的一个斜线"/"用以告诉 CD Shell PRO1.DAT这个文件保存在光盘的根目录下,chain命令可以运行后缀为DAT和BIN的文件。
  memdisk /98SE.IMA  
 
  这个命令会运行98 SE 启动盘的磁盘镜像,并开始安装98 SE。在IMA和IMG文件之前必须先使用一个"memdisk"命令,diskemu跟memdisk这两个命令都是用来启动在光盘的软盘映像文件的,只不过memdisk是把文件加载到内存中去。 不过强烈建议使用Boot CD wizard的命令来启动软盘映像,因为它支持任意大小的软盘映像以及ISO文件。命令的格式例如 bcdw boot /boot/IM/DISK.IMA; bcdw boot /boot/IM/DISK.ISO
  goto Menu:  
 
  这个命令会跳到"Menu:"区段并继续执行那里的代码。
  type /key.txt  
 
  type---这个命令会在屏幕上显示"key.txt"文件的内容,实际上这并不会打开那个文本文件,它只是把文件的内容显示在屏幕上而已。
   以"Menu:"区段为例说明,我们现在新建一个名为"Menu:"的区段,每个操作系统的区段后面都要跟着一个关键区段,这个区段会为我们的XP选项新建一个菜单。以下是我的"Menu"区段的内容。注意 "哪"字符,使用在命令中后,这个字符会显示出一个连续的横线,如果用连字符的话横线就变成了中间有间断的虚线了,像这样:"-----"。
menu:
set textColor= color[grey on black]
set boldColor= color[cyan on black]
cls
print c "\n\n"
print c "\n\n"
print c "\c0BWindows XP Professional with SP2\n\n"
print c "\cXX哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪\c01 Vincent\cXX哪哪哪\n"
print c "\n\n"
print "\c0A     [F1]  \c02Windows XP Pro with SP2               \c0A[F5]  \c0298 DOS boot disk  \n"
print c "\n"
print "\c0A     [F2]  \c02Disk Director Suite 9.0               \c0A[F6]  \c02Norton ghost 8.0\n"
print c "\n"
print "\c0A     [F3]  \c02Norton Partition Magic 8.05           \c0A[F7]  \c02Disk Manager 9.56 \n"
print c "\n"
print "\c0A     [F4]  \c02Acronis True Image 8.0                \c0A[F8]  \c02OOBC Bluecon\n"
print c "\n"
print c "\n"
print c "\n"
print c "\n"
print c "\n"
print c "\n"
print c "\n"
print "  \c07ESC \c08Boot First HDD                \c07F11 \c08Reboot              \c07F12 \c08Command Prompt \n\n"
Main:
getkey 60 boot 0x80
if ($lastKey == key[f1]); then bcdw boot /I386/SETUPLDR.BIN
if ($lastKey == key[f2]); then bcdw boot /boot/IM/DISK.ISO
if ($lastKey == key[f3]); then diskemu /boot/IM/PQMAGIC.IMG
if ($lastKey == key[f4]); then bcdw boot /boot/IM/IMAGE.ISO
if ($lastkey == key[f5]); then diskemu /boot/IM/DOS98.IMG
if ($lastKey == key[f6]); then diskemu /boot/IM/GHOST.IMG
if ($lastKey == key[f7]); then diskemu /boot/IM/DM.IMG
if ($lastkey == key[f8]); then bcdw boot /OOBC/SETUPLDR.BIN
if ($lastKey == key[esc]); then boot 0x80
if ($lastkey == key[f11]); then reboot
if ($lastkey == key[f12]); then end
会发生什么事?计算机会显示出Menu:区段中的内容,然后继续执行下一个区段(Main:),在这个区段中就会使用到getkey 命令。因此计算机会等待用户按下一个按键,如果用户按下的是"F1",计算机就会开始执行"SETUPLDR.BIN"文件,并开始XP的安装过程。如果60秒之内没有任何按键被按下,那么CD Shell就会返回从硬盘启动(boot 0x80),reboot 命令则重新启动电脑而end命令进入命令行模式。
    结尾 ---在你的cdshell.ini文件的最末尾处应该有一个"end"标示。
  end
  大体上就是这些了, "end"命令会把你带入一个CD Shell的命令行界面,就像DOS界面一样,但在那里支持更多的命令并且目录结构的显示也更加漂亮。在命令行中输入"HELP"就可以察看都能做些什么。
  调试--- CD Shell最好用的一个功能就是调试了。想要调试的话只要简单的双击“CDSH”文件夹下的"cdshw.com"文件就可以了。这将运行一个模拟器,并能精确模仿出计算机启动时将会发生的事情。你不用担心无意中安装了XP或者错误地进行了类似的操作,因为所有的调试过程都是模拟出来的,"chain"或者"boot"或者其他类似的命令实际上是不被调试模式支持的。要退出调试模式,只要在命令行中输入"exit"命令即可。如果你无法退出调试模式,也只用按下"Ctrl+Alt+Del"来结束调试模式的进程。
最后的文件结构如下:[UploadFile=Image1_1098618689.jpg]
下图是boot文件夹的结构[UploadFile=Image2_1098623476.jpg]
最后我们用CD Imagegui来创建ISO文件,引导文件设置为WINXP\boot\loader.bin,其他的相信大家在无忧论坛学这么久不会有问题的。大家也可以加入自己喜欢的工具,如效率源3.0的ISO文件,我上次刻盘测试有效。但是有点要注意的是,这种方式并不是支持所有的ISO文件,只是支持那些象Acronis系列软件生成的ISO文件。也就是那些用WINISO软件看也看不到光盘中有文件的ISO,但是在光盘的引导区里有文件的的ISO。所以遇到这种情况的时候,大家可以用BCDW的命令来启动以前的那些如ERD commander的引导文件setupldr.bin,如我这张光盘中就加入了bluecon administrator';s suite。

   
2#
发表于 2004-10-24 22:59:53 | 只看该作者

[原创]---续CD shell 与 Bootable CD wizard的完美结合

不会弄啊,你能不能直接做一个弄好的阿
摆脱
回复

使用道具 举报

3#
发表于 2004-10-25 00:20:27 | 只看该作者

[原创]---续CD shell 与 Bootable CD wizard的完美结合

好东西,严重支持。
回复

使用道具 举报

4#
发表于 2004-10-25 00:24:46 | 只看该作者

[原创]---续CD shell 与 Bootable CD wizard的完美结合

好东西,支持!
回复

使用道具 举报

5#
发表于 2004-10-25 08:06:40 | 只看该作者

[原创]---续CD shell 与 Bootable CD wizard的完美结合

很长时间没看见教学的帖子了!感谢分享……
回复

使用道具 举报

6#
发表于 2004-10-25 09:33:48 | 只看该作者

[原创]---续CD shell 与 Bootable CD wizard的完美结合

这些功能bcdw都有,特别是调试功能,只要执行dos\bcdw.com就可调试,用不着通过cd shell调用。
回复

使用道具 举报

7#
发表于 2004-10-25 09:44:45 | 只看该作者

[原创]---续CD shell 与 Bootable CD wizard的完美结合

顶死你~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-10-14 15:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表