| PC 可開機光碟 DIY 實作 (四) 來源:T.C. Tsai |
□ 前言
本文敘述以 SCSI 硬碟的分割磁區做成開機 Image檔 ( 而不必使用一整顆硬碟),再
以此 Image 檔製作模擬硬碟開機的 PC 可開機光碟,不過僅能用 SCSI 光碟機來開機
。不能用 IDE 硬碟來做 Image 檔,也無法用 IDE 光碟機來使用以 SCSI 硬碟所做的
開機光碟。原因不明。
□ 所需軟硬體
- SCSI 硬碟,在關掉支援大於 1 GB 的 SCSI BIOS 選項之後,分割出一個小於
650 MB 的磁區,並使它可以開機。(如果您想先實驗看看,建議分割出一個 5 MB 的
磁區即可,燒錄時不要 Close Disk,這樣即使沒有燒成功也可以用 Multisession 的
方式利用剩下的空間。)
- 所用的開機 OS 以 DOS 6.2 為主。
- Norton Utility 中的 DISKEDIT.EXE。
- BOOTCAT.BIN、HEAD.BIN。
- 光碟燒錄器、空白片(不能燒在第二個 session 以後)、燒錄軟體等等。
- 一個大於 650 MB 的 SCSI 或 IDE 硬碟空間,供放置 ISO 檔之用。建議還是把
ISO 檔放在 IDE 硬碟上,因為如果放在 SCSI 硬碟上,而不是從 SCSI 硬碟開機
的話,無法在 SCSI 硬碟上使用 Diskedit.exe。
- 支援光碟開機的 SCSI 卡及 SCSI 光碟機 (燒錄器也可以)。
□ 流程:
- 先製作開機 SCSI 硬碟的分割磁區。
- 以 Norton Utility 的 diskedit.exe 製作可開機磁區的 Image file。命名為 hdboot.img
(假設的,名稱隨你取) 。
- 使用燒錄軟體把 Bootcat.bin, head.bin, 及 hdboot.img (按此順序排列,如果還有
其它一般檔案要燒錄的話,放在這三個檔案的後面。) 燒成一個 ISO 檔。
- 用 Norton Utility 的 Diskedit.exe 來修改此 ISO 檔。
- 用燒錄軟體,採 Image file To Disk 的燒錄方式,把改過的 ISO 檔燒成光碟。(不
是把 ISO 檔當做一般檔案燒進光碟喔! 這裡我假設您了解 ISO 檔的意義。希望
不要再有人告訴我,"燒完之後怎麼不能開機啊? CD 內只見到一個 *.iso 檔。" )
- 最後測試階段:打開 SCSI 卡的開機 BIOS 選項,主機板 BIOS 開機順序改為
SCSI 先,IDE 後。(或是把 IDE 硬碟改為 "None"),把開機光碟放進 SCSI 唯讀
光碟機或燒錄器,重新開機。
□ 說明:
當模擬硬碟開機的光碟開機時,就像是由 C 碟開機一樣。而原 C 磁碟則變成為 D,
(以下類推)。 內容完全和用來製作 Image file 的開機硬碟一樣,而且也只有由此 CD 開
機時才看得到裡面的檔案。而 Image file 以外的檔案,就像一般燒錄的情形一樣,要
掛光碟機驅動程式才看得到。所以就好像是把一片光碟分成兩部份,一是開機區,一
是資料區。在製作開機硬碟分割區時就要把開機設定弄好,最好用多重開機的方式,
有多重的設定可選擇。而且也要把光碟機的 driver 設好,最好多設幾種光碟機的驅動
程式,這樣才能應用在各種廠牌的光碟機上。由於是用 SCSI 光碟機開機,所以 SCSI
卡及光碟、硬碟驅動的選項也是免不了的。
硬碟裡不論放了多少檔案,做成的 Image file 一定都跟分割磁區的大小一樣。
燒錄時不要 Close disk,這樣所有用來實驗用的片子都可以再利用。我用此方法燒錄
5 mb 及 600 mb 的分割區都成功了,您最好也從 5 mb 的分割區開始,確定無誤後以後
便可以用大一點的分割區。這樣實驗用的片子才不會浪費太多空間。
還有如果您的 SCSI 硬碟是大於 1 GB 的話,在製作分割區前,一定要把 SCSI BIOS
裡面的 "For DOS Driver > 1 G Bytes" 的選項關掉 (disabled),然後再用 Fdisk 分割。
□ 實作
一、準備 SCSI 硬碟分割區
以我的為例,我平常是用 IDE 硬碟開機,SCSI 的 BIOS 是 disabled 的,DOS 開機
時是掛驅動程式驅動 SCSI 卡、硬碟及光碟機。這時如何進行呢?(如果您不是新手的
話,除第 4 項外其它可以略過)
- 備份好 SCSI 硬碟的資料,因為等一下的過程會使資料全部消失。
- 準備一張 DOS 6.2 的開機軟碟片,內有 Fdisk.exe 及 Format.com 等工具程式。
- 把主機板 BIOS 的 IDE 硬碟改成 None (不必真的拔下來)。或是改開機順序為 SCSI 先。
- 修改 SCSI 的 BIOS :以 Aha 2940 u 卡為例,按 Ctrl + A 進入 BIOS 設定畫面,進
入 "Advanced Configuration Options":
- 把 " Host Adapter BIOS (Configuration Utility Reserve BIOS Space)" 那一項改成 Enable (如此便可由 SCSI 硬碟開機)。
- 把 " Extended BIOS Translation for DOS drives > 1 G Byte" 那一項改成 Disable。
- 開機軟碟放進去,重開機。(如果是用 Yamaha CDR 的話,可以隨便放一片 CD 在
CDR 裡面,不然開機會很慢。)
- 用 Fdisk.exe 刪除 SCSI 硬碟上的所有分割區。然後再重新分割,假設分割出一個
5 MB 的磁區 (及其它延伸磁區)。把這個磁區設定為 Active。重新開機 (用軟碟)。
- 用軟碟去 Format 所有新磁區。 Format 開機磁區時要加上 /s 參數。設置硬碟開機
的 config.sys 及 autoexec.bat 及複製所需檔案。取出軟碟重開機。
- 若確定此 SCSI 硬碟分割區可以開機的話,那就進入下一階段。
二、製作開機映像檔 (Image File)
- 用 SCSI 硬碟開機,執行 Norton Utility 的 Diskedit.exe。
- Object -> Drive -> C: Hard disk -> Logical disks -> OK。
- Object -> Sector (不是 Physical sectors 喔!) -> 不修改直接按 OK。
- Tools -> Write -> To a File -> 設檔名 [假設是 D:\hdboot.img ,也可以把這個檔案存
放在其它分割區或其它硬碟上。] -> OK -> Yes。
- 上床,小睡片刻 ( 如果磁區很大的話)。
三、製作 ISO 9660 檔
- 把系統恢復成平時燒錄時的情況。(不必再用 SCSI 開機)
- 啟動燒錄軟體,依順序把 bootcat.bin、head.bin、及 hdboot.img "拉進" 燒錄軟體的
視窗內。如果有其它的資料要燒的話可以放在這三個檔的後面。
- 燒錄成一個光碟的 ISO image 檔 (選 Mode 1 CDROM),把它存在 IDE 硬碟中。
四、修改 ISO 檔:
使用 Norton's DISKEDIT.EXE。開啟剛才製作的 ISO 檔。
步驟一
尋找 ASCII 字串 "BOOTCAT" 。找到之後,使游標跑到畫面的右半部,即 ASCII
區,然後把游標放第一個字母 " B " 上,向上按兩次,再向右按一次。然後看左邊的畫
面,記下游標位置開始的 4 個 bytes 的數字,例如,左邊畫面的游標位在 15 00 00 00
那就記下 15 00 00 00 四個 bytes。 同樣方法找 ASCII 字串"HEAD.BIN" (不是
"HDBOOT.IMG" 喔! 因為這個 head.bin 已經成為 hdboot.img 的檔頭。所以剛才這三個
檔案的排列順序絕不能錯),找到後以同樣方式記下四個 bytes。假設是 16 00 00 00。
這四個 bytes 就是該檔案的位址 (Logical Block
Address)。
※ 如果您想把這三個檔案變成隱藏檔,以 BOOTCAT.BIN 為例,請在找到檔案
後,把游標放在第一個字母 "B" 上,向左移動八格 (按八次向左鍵),然後使游標移到
左畫面,把這個位置的 BYTE 加上 hex 01 即可。一般檔案是 00,改成 01,但用 dir /a
可以看到。若是改成 04 則一般用 dir/a 也看不到。
步驟二
接著回到開頭,找 HEX CODE " 88 02 " ,這就是 BOOTCAT.BIN 所在之處。找到
之後,把 HEAD.BIN 的 Logical Block Address 從第三行的 BB 的地方開始填進去
﹝這個 BB 是我設的,是標記用的,沒有意義﹞。同時把 02 改為 04。例如記下來的四個 bytes 是 16 00 00 00 ,
那 BOOTCAT.BIN 所在的 sector 的第三行就如此
修改:
原來: 88 02 00 00 00 00 01 00 BB 00 00 00
改成: 88 04 00 00 00 00 01 00 16 00 00 00
注意!原本第二個 byte 02,是表示它是模擬 1.44 MB 軟碟開機,但因為我們
是用模擬硬碟開機,所以要改成 04。
步驟三
修改 Sector� 17:
先回到最前面 ( 按 Home 鍵)。向下找到 Offset� 34816 的位置。(注意畫面右
下角的 OFFSET 數字) 這裡就是 Sector 17 開頭的部份。一個 sector 是 2048 bytes
(十進位),2048 * 17 = 34816 ,所以是在 Offset 34816。
從 offset 34816 的地方開始,以下面的數碼置換原來的:
(HEX) (ASCII)
00 43 44 30 30 31 01 45 4C 20 54 4F 52 49 54 4F .CD001.EL TORITO
20 53 50 45 43 49 46 49 43 41 54 49 4F 4E 00 00 SPECIFICATION
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 **
在第五行的 **處,就是要填入 BOOTCAT.BIN 的 LBA 的地方。剛剛得到的是 15
00 00 00 ,所以就這樣填﹝把原來的 CODE 置換掉﹞:
00 00 00 00 00 00 00 **
填入: 00 00 00 00 00 00 00 15 00 00 00
這個 sector 剩下的部份 ( 一直到 offset 36863 ) 都改成 00。
五、燒錄 ISO 檔
把改完的 ISO 檔燒進光碟即可。以 Easy-CD Pro For Win 3.1 為例,選 CD-Recorder ->
Write -> File -> Select -> 指向剛剛製作的那個 ISO 檔 -> OK -> Write。
注意不要 Close disk!只需要 Close session,如此才能使這片 CD 在"實驗"完後還可以
再利用剩下的空間 (使用 Multi-session,若原先可開機,燒入第二個 session 後仍然可以
開機 )。
六、測試
- 把剛剛製作的 CD 片放進 SCSI CDROM 或燒錄器內。
- 把主機板 BIOS 的 IDE 硬碟改成 None (不必真的拔下來)。或是改開機順序為 SCSI 先。
- 修改 SCSI 的 BIOS :以 Aha 2940 u 卡為例,按 Ctrl + A 進入 BIOS 設定畫面,進
入 "Advanced Configuration Options":
- 把 " Host Adapter BIOS (Configuration Utility Reserve BIOS Space)" 那一項改成 Enable (如此便可由 SCSI 裝備開機)。
- 把 " BIOS Support for Bootable CDROM" 那一項改成 Enable 。
- 重新開機。