nre
银牌会员
nre
积分 1210
发帖 361
注册 2002-12-28
状态 离线
|
『楼 主』:
单启动光盘制作1
!此帖子只作为对启动光盘原理感兴趣的朋友的一个参考
!如果您的目的只是为了做出个启动光盘,那您最好跳过这篇帖子
这里说的方法是根据"EL TORITO" Format Specification V1.0实施的.
换句话说,通过这种方式做启动盘只需要一个16进制编辑器,和一个制作ISO映像的工具就可以了。
这是最底层的调用,所以兼容性不存在问题,其他工具做出来的启动盘其实也基于这个Format
"EL TORITO" BOOTABLE CDROM FORMAT V1.0 支持
多重引导(无数量限制),多平台80X86,POWER PC,MAC,及多映像格式(1.2M,1.44M,2.88M,HD)
[upload=jpg]Http://www2.zzu.edu.cn/ie/newdos/uploadImages/200311923251832792.jpg[/upload]
这篇文章主要说明SINGLE BOOT-IMAGE的制作过程
找一个现成的磁盘映像,或者自己做一个,HD-COPY做的映像可能不行,用WINIMAGE做的没问题.
用制作ISO映像的软件,把这个IMG作成ISO光盘映像.
手工将这个普通的ISO变成可启动的单启动光盘
先说几个概念,能帮助你理解制作过程.
标准的ISO9660光盘有333,000个sectors,每个sector有2,352个字节,其中2048个字节是用来存数据的
光盘中的sector和磁盘中的簇个概念是一样的,就是光盘的最小存储单位.
换句话说,如果一个文件,只有1个字节,在光盘中也占一个sector 2048个字节
前16个sector(0-15 sectors)系统并没有使用,第17个 (sector 16)是CDROM的主卷描述
第18个sector (sector 17) 是CDROM的Boot Record Volume,而启动光盘的标识也在这里
刚才说过每个sector是2048字节,所以第18个sector (sector 17)的地址就是20487*17=34816
这是用WINISO做的一个普通的ISO光盘映像
CD001是ISO9660光盘的标识,必须存在,否则光盘可能就不被识别.这个sector里也只有这个CD001标识是必须的
其他的信息都是由ISO制作软件生成的,如卷标之类的... 把它们都清零不会影响光盘
这是启动光盘的Boot Record Volume标识,有4个要点.
1.必须是第18个secrtor (sector 17) 因为有sector 0 所以第18个sector是sector 17
2.把 CD001之后的ASCII码,改成EL TORITO SPECIFICATION这个是启动光盘的标识,BIOS通过这个来识别是不是BOOTABLE CD
3.EL TORITO SPECIFICATION 之后的2个字节必须是0,而不是ASCII的空格,ASCII的空格16进制是20
4.34887那个地址里的02,就是指定第一张照片里说的Booting Catalog的LBA地址
理论上Booting Catalog可以放在光盘的任何地方。以前我看过一些类似文章的介绍,他们做的方法是先建立一个
2048字节的文件,把它和启动盘的映像一块做到ISO里,然后把这2048字节文件的LBA地址放在34887,用来做Booting Caltalog
我觉得这种方法没必要,以前说了,ISO9660光盘每个Sector都是2048,而且前16个Sector系统并不使用,所直接从
前16里随便拿出一个sector做Booting Catalog不就行了吗.这个启动盘我就用了sector 2来做Bootable Catalog所以
在34887里我写的02 所以这张盘的Booting Catalog地址=2048*2=4096
[此贴子已经被作者于2003-2-19 23:23:00编辑过]
|
Teamwork ! |
|