中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 单启动光盘制作1 上一主题 | 下一主题
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 !
2003-1-19 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
minisheep
高级用户




积分 830
发帖 233
注册 2002-11-29
状态 离线
『第 2 楼』:  

摆脱!多重启动多好呀!



┃ \\\\//// ┃通缉:杨小邪 特点:贼丑
┃ (-●●-) ┃年龄:刚成年   性别:男
┃  \    /  ┃罪名:长的丑/总想见网友
┃   \︶/   ┃犯罪事实:吓死一片~
2003-1-19 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nre
银牌会员

nre


积分 1210
发帖 361
注册 2002-12-28
状态 离线
『第 3 楼』:  

单的不会做,多的肯定不会做。




Teamwork !
2003-1-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
minisheep
高级用户




积分 830
发帖 233
注册 2002-11-29
状态 离线
『第 4 楼』:  

科技是为人服务的!象人这样算来算去的!狠麻烦!你去无忧!雨微看看就能马上明白多重启动!不过让人遗憾的是!用的软件多数是老外做的!



┃ \\\\//// ┃通缉:杨小邪 特点:贼丑
┃ (-●●-) ┃年龄:刚成年   性别:男
┃  \    /  ┃罪名:长的丑/总想见网友
┃   \︶/   ┃犯罪事实:吓死一片~
2003-1-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nre
银牌会员

nre


积分 1210
发帖 361
注册 2002-12-28
状态 离线
『第 5 楼』:  

他们做的实际是单启动光盘(下个他们的ISO对照一下启动光盘格式就明白了)。
因为他们要在单启动光盘上实现多启动(当然还一个目的是为了图形界面),所以才不得不使用第三方编的软件,实际上BIOS本身就支持多启动光盘。




[此贴子已经被作者于2003-2-19 22:46:39编辑过]







Teamwork !
2003-1-20 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
闪猛
中级用户




积分 327
发帖 69
注册 2002-12-1
状态 离线
『第 6 楼』:  

这片文章不错,
对启动光盘的原理性介绍的文章希望楼主能多发表一些。
希望能快点看到“单启动光盘制作2”“单启动光盘制作3”“单启动光盘制作……N”

2003-2-22 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: