天行健 君子当自强而不息

【ZT】Windows启动光盘引导原理及Win98启动光盘的制作

我们都知道,Windows 98直到Windows XP系列的安装光盘都是可启动的,但Windows 95安装光盘却不能启动,你知道为什么吗?要想知道事情的原因,我们就必须要探寻一下可启动CD-ROM的起源。

可启动CD-ROM(或称可引导光盘)的概念早在1994年(辉煌的DOS年代)就被提出来了,当时CD-ROM还是PC机的一个昂贵的附属设备(CD-ROM加声卡在当时被成为多媒体套件,带多媒体套件的电脑被成为多媒体电脑),而且在DOS平台下实现光盘引导还存在一些技术上的困难:要在载入DOS之前就必须检测到CD-ROM,而这一点,当时从软件上是无法实现的,惟一的解决之道就是修改电脑主板上的BIOS(或是SCSI与IDE控制器上的BIOS),使之在硬件级而不是软件级首先识别CD-ROM,并自动加载CD-ROM上的启动引导器(存放在CD-ROM上特定区域的一段特殊代码,用以控制CD-ROM的启动)。

1995年1月25日,Phoenix Technologies与IBM联合发表了可启动CD-ROM格式规范(Bootable CD-ROM Format Specification)1.0——El Torito规范,该规范中定义了可启动CD-ROM的数据结构与映像数据的配置及光盘制作的一些详细说明。实际上,该规范也隐含地制定了能够读取可启动CD-ROM光盘的BIOS的规范,使得符合El Torito规范的可启动CD-ROM在电脑上能够正常启动。如果可启动CD-ROM有了,但在电脑上无法读取,岂不还是白搭?!

随后,Phoenix又独自或联合其他厂家相继发布了一系列支持可启动CD-ROM的规范和标准,其中值得一提的是1996年1月11日COMPAQ、Phoenix与Intel联合发布的BIOS启动规范(BIOS Boot Specification)1.01,该规范为BIOS厂家提供了制造支持可启动CD-ROM的BIOS的标准。

自从El Torito规范推出之后,采用单重启动映像的可启动CD-ROM大量涌现,El Torito规范也成为事实上的工业标准。

可启动CD-ROM仍遵循ISO 9660的规范,简单地说,普通CD-ROM+开机功能=可启动CD-ROM。

这也就是为什么Windows 95安装光盘不可启动的根本原因——Windows 95发布时El Torito规范还没有诞生。

El Torito规范定义了CD-ROM中启动映像(bootable image)的配置,还提供了有关可启动CD-ROM的制作与结构的一些详细说明。这些说明的技术性很强,要想弄得很明白需要花费一番大力气。但我们的目的是制作出符合El Torito规范的可启动CD-ROM,所以没有必要在理论上了解那么多,很多现成的烧录软件以能够帮助我们制作出完美的单启动CD-ROM。

多重启动CD-ROM的工作原理

El Torito规范中不仅定义了单重启动映像(single boot image)的配置,而且非常富有远见地定义了多重启动映像(multiple boot images)的配置。



上图是El Torito规范中定义的普通CD-ROM、单重启动CD-ROM和多重启动CD-ROM的启动映像配置图,从图中可以看出,可启动CD-ROM的工作原理如下:

BIOS首先检查光盘的第17个扇区(sector 17),查找其中的代码,若发现其中的启动记录卷描述表(Boot Record Volume Descripter),它就根据表中的地址继续查找启动目录(Booting Catalog),找到启动目录后 ,再根据其中描述的启动入口(Boot Entry)找到相应的启动磁盘映像(Bootable Disk Image)或启动引导文件,找到启动磁盘映像后,读取其中的数据,并执行相应的开机动作。

相对于单重启动CD-ROM而言,多重启动CD-ROM的启动目录中包含多个启动入口,指向多个启动磁盘映像。

上图所描述的多重启动配置是El Torito规范所描述的多重启动映像配置,但由于多重启动CD-ROM在实际工作中的应用较少,目前大多数主板的BIOS对此支持得不是很好。在这类主板上,用遵循El Torito规范所制作的多重启动CD-ROM往往只能引导第1个(默认启动出口所指向的)启动映像,而其他的启动映像莫名其妙地消失了!

为了解决这个问题,人们又相继研究出了一些办法来实现CD-ROM的多重启动,目前最流行的办法是“非模拟”(软盘、硬盘)式BIOS模拟法。其工作原理与El Torito规范所描述的单重启动映像配置原理基本相同,只是默认启动的不是软盘映像,而是1个启动引导文件,该启动引导文件引导光盘启动,再由它去查找其他的启动磁盘映像或引导文件,根据配置文件列出启动选项共用户选择。

目前采用这种方法的工具软件主要有3个:Diskemu、ISOLINUX/MEMDISK和Boot Scriptor。实际上,Boot Scriptor是Michael K Ter Louw在ISOLINUX的基础上二次开发的产品,但它对ISOLINUX的功能和性能都进行了非常大的扩充,与ISOLINUX的差别较大,特别是从1.2.3b版开始引入了Diskemu,使其兼容性大大提高,所以我们将其作为第3种方法加以介绍。

这3个软件的网址分列如下:

  Diskemu:
  http://www.nu2.nu/diskemu/

  ISOLINUX:
  http://syslinux.zytor.com/iso.php

  Boot Scriptor:
  http://www.bootscriptor.org/

工欲善其事,必先利其器。做启动光盘离不开工具,合适的工具使你事半功倍.

1、CDImage.exe(命令行界面)或CDImagegui.exe(图形界面)

必须。可启动光盘镜像制作工具,生成标准的ISO文件,同时具有优化光盘上文件的功能,使相同的文件只刻录1个,其他的文件都连接到该文件,是做N合1的核心软件。

2、WinImg

解安装软盘的img文件。

3、UltraEdit

十六进制编辑器,修改启动引导文件中的显示文字。

4、VMware(或Virtual PC)

 测试制作完成的镜像文件,不用刻盘就试能不能启动了。你可以在XP下装LINUX,9X及DOS等。

5、NERO

刻盘工具,不用多说,当然你也可以用别的刻录软件。

系统要求:
1、最好是WIN2K或XP的系统,因为上述工具有的不能在9X下运行。
2、硬盘最好有2G以上的空间,多多益善。
3、最好有个刻录机,不过没有也没关系,可以用做ISO。



WIN9X的启动安装盘的制作

主要是WIN98的启动安装盘制作,包括WINME和WIN95,WIN97等。原版WIN95不支持光盘启动,但我们可以通过上述方法实现光盘启动。所以我下面以WIN98为例。

你要有做一个WIN98软盘启动盘(或者其镜像).在Win 98系统下可以通过两种方式制作启动盘:第一种方式就是在Win 98系统安装过程中,系统将自动询问是否需要在此创建启动盘,你只要选择需要在此时创建。插入软盘,按屏幕提示操作,就可以创建成功。

  第二种方式就是在Win 98使用过程中随时创建启动盘,方法是:单击“控制面板”,双击“添加/删除程序”,然后在出现的窗口中选择“启动盘”选项卡,就会进入“创建启动盘”对话框。插入磁盘,然后单击“创建启动盘”按钮就可以了,系统同时将显示制作进度。

然后用WINIMAGE,做成IMG或IMA格式,放到硬盘上。很简单,不详细说了。

如果你想做成引导后,自动SETUP的,将AUTOEXEC.BAT从WIN98.IMG中用WINIMAGE解开,调整SETUP的路径。默认的我设为\SIMPCHIN\WIN98\WIN98.你可以设为自已的实际光盘路径。修改后,将其再导入到WIN98.IMG中。

上面的东东都有了,我们可以用NERO刻盘了。

posted on 2007-05-31 13:47 lovedday 阅读(8117) 评论(1)  编辑 收藏 引用 所属分类: ▲ About Windows

评论

# re: 【ZT】Windows启动光盘引导原理及Win98启动光盘的制作 2011-06-08 15:36 hi

地势坤,君子以厚德载物

好文,谢了  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论