開機光碟檔案結構????????
開機光碟檔案結構是由哪幾個檔案所構成的?????
◎◎◎ 可開機光碟再進一步研究 (Enhance CD-ROM Boot) ◎◎◎ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓2倍燒錄強烈推鑒 Yamaha CDR-200
HP 6020
SONY CDU-926▓ ▓4倍燒錄強烈推鑒 TEAC CD-R50S
Yamaha CDR 400 ▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓開機型光碟的觀念己成型許久了
只是要如何在Dos的平台上有此能力相較於 Mac及Unix平台是比較困難罷了。
對Mac及Unix系統而言
製作開機型光碟一直 都不是問題
只要將這兩個系統的硬碟
做Byte-to-Byte的拷貝
再將它寫入CD
系統即會自動偵測並對此光碟進行開機的動作。
但是如果你對Dos的硬碟做同 樣的動作
結果還是無法使CD開機的。
在Dos下
你需要有兩個要素才可以讀取CD-ROM:第一是需要有驅動程式隨系 統載入以便使系統能偵測到光碟機的存在;第二便是需要有像MSCDEX的程式 來分配一個磁碟機編號給光碟機以使Dos能從光碟機讀取檔案。
所以要製作一 個可以在Dos下開機的CD-ROM首先的困難便是開機的問題。
一般Dos開機的程 序是先要能將Dos的指令直譯器COMMAND.COM載入
然後是驅動程式(Device Driver)
再來便是MSCDEX可以分配磁碟機編號給光碟機
才可以讀取CD-ROM 的資料。
但是如果要從光碟載入COMMAND.COM必需先載入MSCDEX才行
問題 是如不先載入COMMAND.COM又如何能載入MSCDEX呢? 要在載入COMMAND.COM之前就能偵測到CD-ROM存在的解決方案是透過修改電 腦主機版上的BIOS(Basic Input /Output System)或是SCSI與IDE連接卡上的BIOS。
一旦光碟機被BIOS偵測到之後
CD-ROM必然有能力可以使得BIOS將 COMMAND.COM載入。
Phoenix Technologies與IBM共同發表了開機型光碟的規格書El Torito
規格書 中不但定義了開機映像資料(bootable image)該如何配置在CD-ROM中
還包含了有關開機型光碟製作與結構的一些低階的詳細說明。
這些低階的 說明可能需要花些功夫來了解它
但好處是至少你可以運用現成的工具及 CD-ROM的燒錄程式即可完成開機型光碟的製作。
此外
開機型光碟的規格 仍不脫離ISO 9660的規範
意思就是說
如同其它正常的CD-ROM
Bootable CD-ROM是可以被正常複製或大量生產發行的
只是多了開機的能力罷了。
使用者可以根據個人的需要
選擇以CD-ROM開機或者將Bootable CD-ROM 當做正常的CD-ROM來讀取其中的檔案
甚至於兩者可以同時並存。
製作一片Bootable CD-ROM的過程是非常冗長的
但是除非CD-ROM燒錄程 式的發展商能將程式發展成會自動將ISO 9660的Image File修改成Bootable的 Image File
否則手動的方式還是最好的選擇。
事實上
Creative Digital Reserch的CD-R Publisher已經將製作開機型光碟的功能加入程式中
讓使 用者免去修改ISO 9660 Image的手續
只是程式註冊的費用可不便宜
大約 在四百多塊美金左右。
而另一方面
雖然手動的過程稍嫌繁複
但是彈性 則比較大
至於為什麼
後文自會鈙述。
使用者於製作Bootable CD-ROM所 需的背景知識雖不致如規格書中所提的需要對於BIOS INT 13、ISO 9660、 ATAPI等知識有一定程度的了解
但是如果對於ISO 9660的sector結構有概念
那麼製作Bootable CD-ROM就比較能事半功倍。
要能讀取Bootable CD-ROM的資料
首先你的PC的BIOS要能符合El Torito 的規格以便能讀取CD-ROM上的開機磁區。
大部份的BIOS製造商都已賦予 其CD-ROM的開機能力
也就是說現在大部份的電腦也都有此功能。
Adaptec這家公司便是首先將開機能力加注在其SCSI卡的BIOS中。
以1542CF為例
只要BIOS的版本是2.10或以後的版本都可讓你從CD-ROM 開機。
要確定你的Adaptec SCSI Card是否有支援CD-ROM開機的功能
只要在開機時按下CTRL-A進入設定SCSI Card的公共程式
再選擇 Advanced Configuration Options的選項
此時如果你的SCSI Card有支援開機 功能
你將會看到BIOS Support for Bootable CD-ROM的選項。
在CD-ROM黃皮書(Yellow Book)中定義了一片CD-ROM包含了333
000 個sectors
而每個sector又包含了2
352個Bytes。
2
352 Bytes中的2
048 Bytes是用來存放使用者資料(User Data)的
剩下的304 Bytes則分別 是同步資訊(sync)
位址指標檔頭(header)
錯誤修正與錯誤偵測碼 (errorcorrection and error detection code)
這些304 Bytes的資料都是在錄製 CD-ROM時
由CD-R燒錄器本身或錄寫的程式自動產生的。
在標準的 CD-ROM中
最前面的16個sector(編號0到15的sectors)是沒有用到的
而sector 16(即第17個sector)則包含了主卷冊描述(Primary Volume Descriptor)
接下來是任意數目的次卷冊描述(secondary volume descriptors)
最後則是終結卷冊描述(Set Terminator Volume Descriptor). 在符合 ISO 9660規格的CD-ROM中
PVD永遠位於第17個sector(sector 16)中
且此sector的開頭字串一定是
留言列表