未完待續 主卷描述符(primary volume descriptor) 輔助卷描述符(supplementary volume descriptor); 卷分割描述符(volume partition descriptor); 引導記錄(boot record) El Torito:可開機光碟規格,是ISO 9660光碟規格的擴充,此規格設計讓電腦可從光碟開機。設計時所在「El Torito」餐廳,以此為名。 可啟動的光碟須符合 ISO9660和El Torito標準,ISO9660定義光碟的相對於本段開始處的第16個磁區為主卷描述表( Primary Volume Descriptor ),El Torito標準定義光碟最後一段的第17個磁區為啟動記錄卷描述表( Boot Record Volume Descriptor )。 光碟啟動先由系統BISO根據主卷描述資訊找到光碟中帶啟動資訊的段,然後按啟動記錄卷描述資訊中的絕對指針讀取啟動目錄「Boot Catalog」檔,再讀取相應的啟動映像檔完成開機引導過程。 CD-ROM、D-R和CD-RW光碟啟動,原理如下: 1)在BIOS中設定光碟啟動 2)POST(Power On Self Test,開機自測試)後光碟機檢查光碟是否有引導功能 3)主標記敘述:即光碟的Sector 17區,放光碟啟動的資訊和啟動目錄檔的位置。依照黃皮書標準,普通CD-ROM有333000個磁區,0~16為保留值,第17個磁區是主標記敘述。 4)啟動目錄檔(BCF,Boot Catalog File):放光碟的作業系統、啟動方式、BIF的位置。可放置多個啟動入口,指向多個啟動磁碟映像。 5)啟動映像檔(BIF,Boot Image File):放了啟動程式。 6)運行啟動映像檔中的引導程式,開始進入作業系統,可以是Windows 9x或DOS系統。 主標記敘述內有以下三類資訊: 1)CD001,黃皮書的標準開頭字元 2)E1 Torito,啟動光碟規格的識別字元 3)位址8847h指向啟動目錄檔的位置,指向BCF的邏輯區段 啟動目錄檔包含了7種資訊 1)第一位01,啟動光碟ID號,其值定為01 2)第二位指示此光碟用於何種硬體系統,00用於X86系統,01用於PowerPC系統,02用於Macintosh系統 3)ID字串(光碟名稱),可人工輸入的光碟識別資訊 4)55 AA,結束標記 5)是否可啟動(位於55 AA之後):88代表可啟動,00則不可啟動 6)模擬代碼(位於88之後):00代表不模擬,01則表示模擬1.2MB軟碟啟動,02表示模擬1.44MB軟碟,03表示模擬2.88M軟碟,04表示模擬硬碟啟動 7)啟動映像檔位置,指向BIF的邏輯區段 簡史 Windows 95安裝光碟不能啟動,Windows 98直到Windows XP系列的安裝光碟都可啟動。因為Windows 95發佈時El Torito規範還沒有誕生。 可啟動CD-ROM的概念早在1994年被提出來了,當時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在電腦上能夠正常啟動。 1996年1月11日COMPAQ、Phoenix與Intel聯合發佈的BIOS啟動規範(BIOS Boot Specification)1.01,該規範為BIOS廠家提供了製造支援可啟動CD-ROM的BIOS的標準。 可啟動CD-ROM仍遵循ISO 9660的規範,簡單地說,普通CD-ROM+開機功能=可啟動CD-ROM。 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的啟動目錄中包含多個啟動入口,指向多個啟動磁碟映像。 但由於多重啟動CD-ROM在實際工作中的應用較少,目前大多數主板的BIOS對此支援得不是很好,往往只能引導預設的啟動出口(第1個)所指向的啟動映像,而其他的啟動映像莫名其妙地消失了! 解決這個問題,目前最流行的辦法是「非模擬」(軟碟、硬碟)式BIOS模擬法。其工作原理是先用單重啟動1個啟動引導檔,該啟動引導檔引導光碟啟動,再由它去查找其他的啟動磁碟映像或引導檔,根據配置檔列出啟動選項供用戶選擇。 目前採用這種方法的工具軟體主要有3個,依演進順序列出如下: ISOLINUX http://syslinux.zytor.com/iso.php ,跨平台,持續更新中 =>Boot Scriptor http://www.bootscriptor.org/,作業系統 windows ,正出售網緎名稱中 =>Diskemu http://www.nu2.nu/diskemu/ ,作業系統 windows ,已停止開發