史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-05-17, 02:05 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 (引導)啟動光碟的製作!

【原創】(多引導)啟動光碟的製作! 鳳凰啟動碟

今天看到很多人問關於啟動光碟製作的事情,所以,決定把前段時間貼在會員區的帖子再貼到這裡來,和大家一起共同研究!

使用isolinux/memdisk方式製作多引導啟動光碟!

現在網上流傳著很多的多引導光碟啟動碟,最著名的要算是鳳凰啟動碟了。這些啟動光碟大都是使用diskemu的技術來製作的,另外,還有一些是使用easyboot這個工具來製作的,其實,製作啟動光碟的方法還有很多,具體的可以參看nu2.nu網站,上面有很多這方面的資料。

這裡想和大家談的是一種isolinux/memdisk的方法,個人覺得這種方法比較簡單,易於實現,文件結構上也比較簡潔,使用diskemu技術製作的啟動碟,都會在根目錄產生一些和diskemu相關的附加文件,給人一種文件比較亂的印象,不過,使用這種方法製作的時候,那些附加的文件也是可以調整的,不過,本人能力有限,至今也不是太明白。所以,個人來說,比較喜歡用isolinux這種方法,這裡給大家做個簡單介紹,有興趣的朋友可以自己動手試試看。

我們需要的軟體有CDRPack,isoinux插件,ultraedit(或其他二進制編輯軟體),CDRPack和isoinux插件都可以在nu2.nu上下載得到,至於ultraedit這類二進制編輯軟體,我想大多數朋友,用的比我更熟練吧,呵呵!

CDRPack目前的版本是1.3,解壓縮後目錄結構如下:

CDRPack子目錄----bin子目錄
----cdrpack.txt
----gnugpl.txt
----main.bat
----run.bat

bin子目錄下就是我們要用的真正的製作cd鏡像的工具了!

isoinux插件解壓縮後,整體是個cds子目錄,這個子目錄必須放在CDRPack子目錄裡,下面來看看,這裡面有什麼。

cds子目錄下,是multi_memdisk子目錄,裡面是disk1子目錄和build.mak文件,這個disk1子目錄,就相當於是光碟的根目錄了,而這個build.mak文件,實際上就是個文本,記錄的是製作者的一些信息,可以直接用ultraedit修改。disk1目錄下就是isolinux子目錄,這個isolinux終於露面了!

isolinux目錄下有4個文件,bootmsg.txt、isolinux.bin、isolinux.cfg、memdisk。bootmsg.txt文件是文本文件,就是啟動光碟的啟動畫面,直接列出選項,預設的內容為:

1f諛哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目07 1f?1e Bart's way to create bootable CD-Roms 1f?07 1f?1e http://www.nu2.nu/bootcd/ 1f?07 1f濫哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪餒07 0) Boot from first harddisk (0x80) 1) Boot Dos with CD-Rom support 2) Boot Dos with Network support 3) Boot Linux (tomsrtbt) a) Boot from first floppy drive (0x00) q) Skip CD-Rom boot (try next boot device) When no key is pressed for 20 sec, or when you hit Enter "0" will be run... Type command at the prompt...

可根據自己的喜好和製作的光碟的內容自行修改(我個人比較喜歡這種簡單的選項界面,覺得比easyboot的那種功能表式的界面好)。

isolinux.bin文件就是我們真正要用到的光碟啟動檔案了,isolinux.cfg是配置文件,定義選項的內容和對應的啟動檔案,預設內容為:

default 0
display bootmsg.txt
prompt 1
label 0
localboot 0x80
label a
localboot 0x00
label q
localboot -1
label 1
kernel memdisk
append initrd=cdrom.img
label 2
kernel memdisk
append initrd=msnet.img
label 3
kernel memdisk
append initrd=tomsrtbt.img
timeout 200

memdisk文件也是一個啟動檔案,使用win98這一類的模擬啟動鏡像的。

下面以製作win98啟動碟和ERD Commander 2002的多啟動光碟為例,來說明isolinux的製作程序。

首先將產生的ERD Commander 2002的光碟鏡像提取出來,這個就不多說了,但是這裡要注意一點,就是一定要用joliet的格式來提取,而不能用iso9660的格式,不然是無法啟動的!使用winiso 5.3可以對提取的格式進行選項。

將解壓縮後的ERD Commander 2002的文件拷貝到disk1目錄下,原來ERD Commander 2002根目錄下的文件除了bootsect.bin和win51ip外,其他的都可以刪除,因為如winbom.ini等文件,都在i386目錄下存在了,根目錄下的就沒有什麼實際用途了。win51ip文件是windows系統的啟動標誌文件,沒有標誌文件windows系統就無法啟動了,這裡用的ERD Commander 2002是基於windows xp的,所以,對應的標誌文件為win51ip,原來還有一個win51文件,也是windows標誌文件,不過是其他的windows xp系統的,好像是server用的吧,而在2000時代的標誌文件則是如CDROM_IS.5這樣的文件,我也記得不是很清楚,因為和本文的宗旨關聯不是很大,所以,就不詳細介紹了,有興趣的朋友可以搜尋相關的資料。再將windows98的img文件拷貝到isolinux目錄下,這樣,光碟的基本文件結構就形成了。

下面就是最重要的部分了,形成光碟啟動信息。主要是修改bootmsg.txt、isolinux.bin、isolinux.cfg這三個文件。

bootmsg.txt的修改,這裡就不多說了,因為,這只是個界面,根據個人喜好來設置就行了,沒什麼可說的。首先是isolinux.cfg的修改,這是定義相對按鈕的文件,比如說定義「1」為windows 98啟動,「2」為ERD Commander 2002啟動,修改後的文件如下:

default 0
display bootmsg.txt
prompt 1
label 0
localboot 0x80
label a
localboot 0x00
label q
localboot -1
label 1
kernel memdisk
append initrd=98se.img
label 2
kernel erd.bin
timeout 200

文件的開頭部分定義的「0」、「a」、「q」分別代表,從硬碟啟動、從軟驅啟動和退出,同樣可以根據個人的想法來修改或者刪除,timeout處設置的是功能表等待時間。如果你修改了bootmsg.txt的檔案名,那麼這裡也要作對應的修改。

至此,這個啟動碟的製作基本完成了,返回到CDRPack目錄下,執行下面的run.bat,按照它的提示來燒錄光碟以及光碟鏡像文件。

一張簡單的多引導啟動光碟就這樣誕生了!再根據個人的具體需要,在disk1目錄下增加dos下的各種常用工具,這就是完全適合你的一張啟動光碟了。

下面還要說說,一些相關內容的修改。

對於自己動手作的東西,大家通常都希望可以加入自己的信息,專利喲!所以,對於這些朋友來說,光碟下的isolinux目錄就會給人一種異樣的感覺了,那麼,能不能把這個目錄改名呢?答案是肯定的,可以!

通過分析,我們知道,這張啟動光碟的核心啟動檔案就是isolinux.bin,所以,注意力當然要集中到這裡了。用ultraedit開啟isolinux.bin,搜尋isolinux,我們會找到很多相關的信息,當然,不是什麼都要改的,來找我們需要的就行了。我們可以找到這樣一段「default./isolinux.isolinux.cfg」,這就是關鍵所在了把isolinux修改成你自定義的名稱,為了保持文件的原字元不變,最好修改的名稱也是8位就好了,如果改變的原文件的字元長度,可能會導致無法啟動的。還有isolinux.cfg的檔案名可以同樣進行修改,當然也要在這裡作相應的修改了。另外,還有一個地方,就是「ISOLINUX 1.68 0x3c7f7718 Copyright (C) 1994-2001 H. Peter Anvinnn...isolinux:」這裡是啟動是顯示的isolinux的版權信息,這裡後面的「isolinux:」處也要修改成你自定義的名字,至於前面的版權信息,就看你自己的了。

有一點要說明的,就是這裡所作的修改一定要一致,就是isolinux.bin的主檔案名一定要和修改的目錄名一樣才行的!

至於build.mak的修改,就不說了,就是文本,開啟後大家自然試一目瞭然了。

好了,剩下的問題就留給大家去摸索吧,本文只是和大家探討一種方法和思路,僅供大家參考,本人不對此負任何法律責任!

還要告訴大家一個已知的bug,就是使用memdisk方式啟動win98的dos模式後,fdisk指令將不能使用,估計是memdisk啟動方式佔用的記憶體位址和fdisk的有衝突,未經驗證,也可能是和我的主機板的bios不太相容吧,也請大家試試看,不過,這不影響什麼,我們可以使用pq一類的其他工具嗎,呵呵!
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2003-05-17, 02:07 PM   #2 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

使用Boot Scriptor製作多功能啟動光碟
上次和大家談了關於使用isolinux製作多功能啟動光碟的問題,今天來介紹一下另一種製作多功能啟動光碟的方法 - Boot Scriptor!

Boot Scriptor採用一種類似指令碼的方法來實現啟動功能表的顯示和選項,很多功能實現起來都很方便,功能強大並且靈活,不愧是製作多引導光碟的好方法。Boot Scriptor的主頁是http://www.bootscriptor.org/上面有詳細的語言和指令的介紹,有興趣的朋友可以去看看,不過是英文的喔!

首先到它的主頁http://www.bootscriptor.org/下載Boot Scriptor的程序包,目前的版本事1.2.18。將壓縮包解開後可以看到裡面的文件結構大致如下:
-- \bscript\
\licenses\
\tools\
\changes.txt
\rpm.txt

我們要用到只有bscript目錄下的文件,其他的東西,我們都不需要,再來看看這個bscript目錄下的內容:

bscript\modules\
(顧名思義,「模組」,這個目錄是bscript所使用的模組,支持的bscript的指令碼語言,不過,不是所有的模組我們都需要,根據使用的指令碼語言的不同,所需要的模組文件也是不同的,也包含了diskemu和isolinux的模組,具體的就不多說了,可以參照主頁上的說明來檢視哪些指令,屬於哪些模組)
\bscript.bin (bscript的引導文件)
\bscript.bmp (bscript支持啟動時顯示圖形,這個位圖就是啟動時顯示的圖像,可以不要)
\bscript.bsi (同上,bscript自身特殊的圖像格式,可以不要)
\bscriptw.com (相當於DOS下的DEBUG)
\loader.bin (光碟引導文件,光碟啟動時,首先通過這個文件引導,然後再將引導任務交給bscript.bin

好了,知道了這些文件的作用,我們就可以開始製作多引導啟動光碟了,以製作windows98se,erd commander 2002和disk commander三項啟動為例來說明。

首先,還是準備這三個項目各自所需的文件,一些需要注意的事情,上次已經說過了,這裡就不重複了,不知道的朋友可以參照http://bbs.et8.net/bbs/showthread.ph...t=%D4%AD%B4%B4
建立一個目錄,作為光碟的根目錄,如「D:\ROOT」,將bscript整個目錄放在root目錄下,windows98se啟動碟的img文件和ERD、disk Commander的引導文件,可以根據自己的定義放在任意的目錄下,這裡放在root\boot\
(注意:由於ERD和disk Commander,都是採用windows 2/XP的方式來引導的,所以,引導文件,都是bootsect.bin,要將這兩個文件改名,這裡ERD的改為「ERDC.bin」,disk Commander的改為「DCDB.bin」。另外,由於這兩個軟體都是要使用「I386」目錄,而且一個是windows2000的,一個時windows xp的,不能共用,所以,也要改名,同上,分別改為ERDC和DCBC,目錄名更改後,要對引導文件ERDC.bin和DCDB.bin作相應的修改,這個將在下面詳細介紹)

目錄和文件結構設定好以後,就可以開始最重要的工作了,編寫bscript.ini文件了,也就是bscript的啟動指令碼,這個文件同樣要放在bscript目錄下,我自己寫的內容如下:

clear
setpos 1 2
print l "MultiFuctional Bootable Disc\n"
setpos 20 7
print "[1] Windows 98 SE Boot with Tools Kit\n"
setpos 20 8
print "[2] Winternals ERD Commander 2002\n"
setpos 20 9
print "[3] Winternals Disk Commander\n"
print "\n"
print "\n"
setpos 1 13
print "The system will boot with the 1st option automatically after 30 Seconds"
getkey 30 goto item_1
;
onkey 1 goto item_1
onkey 2 goto item_2
onkey 3 goto item_3
;
item_1:
cls
Diskemu \Boot\98se.img
;
item_2:
cls
chain \Boot\ERDC.bin
;
item_3:
cls
chain \Boot\DCBC.bin

EOF
;

簡單說明一下上面的指令碼(其實,和批次處理的語言差不多),這裡一共使用了9個指令碼指令:clear,setpos,print,getkey,onkey,goto,cls,diskemu,chain,這些指令使用的模組,請對照Boot Scriptor的說明我的文件。

這裡的clear和cls指令,實際上是一樣的,可有可無,都是簡單的清屏指令;setpos是定位指令,為了使啟動功能表看上去更整潔,所以,將它們定位是個很好的辦法;print指令就是輸出指令;getkey指令是等待輸入的指令,就是在啟動功能表顯示後,等待用戶的選項;onkey是定義輸入鍵的指令,從上面的指令碼中可以得到,1、2、3三個定義的鍵;goto指令就是跳轉指令,這個很好理解;diskemu和chain指令是載入啟動鏡像的指令,不同的是diskemu指令是載入如dos,windows98se等模擬式啟動的img鏡像的,而chain是載入非模擬式的,如windows2000,XP等。

現在,大家應該可以很好的理解上面的指令碼的含義了吧,這裡的啟動功能表,還是最原始的那種很簡單的方式,大家可以根據自己的喜好來自行修改,Boot Scriptor能夠作出很漂亮的啟動功能表的,有興趣的朋友自己好好研究一下吧,呵呵!

這裡要說明一點,一些習慣編程的朋友,可能會將啟動功能表,也做成如上面item_1、2、3那樣的一個「段」,來隨時使用(使用call指令),這樣當然是沒問題的,不過,如果這樣作,要注意一點,就是一定要在最後加上「return」指令,這樣才能保證功能表的顯示,否則,啟動後將直接進入Boot Scriptor的debug模式了!

好了,最主要的工作,我們已經完成了,下面該說說上面提到的bin文件的修改了,以ERDC.BIN為例。
其實很簡單,就是使用ultraedit這樣的二進制編輯器開啟文件,將裡面的「I386」字段改成ERDC(就是您自己修改後目錄名。由於涉及到引導的問題,所以,還是要使用4個字元的名稱,否則,會造成無法引導)就可以了。除了上面說的ERDC.BIN和DCBC.BIN兩個文件外,還有兩個文件需要修改,就是ERD和DISK Commander各自目錄下的setupldr.bin和txtsetup.sif,這兩個文件裡,也需要把「I386」字段作相應的修改,其中的txtsetup.sif文件,實際上是文本文件,開啟後找到如下內容:

[SourceDisksNames.x86]
1 = %cdname%,%cdtagfilei%,,\i386

將這裡的「I386」修改後就可以了,下面還有一些「I386」的內容,是系統相關的,和我們使用ERD和DISK Commander沒什麼關係,所以,沒必要修改。

到了最後一步了,就是製作iso鏡像,這次使用的是CD Image軟體,這個軟體確實很好,特別是使用GUI後,十分方便,推薦大家使用。關於CD Image的使用,GUI的界面十分簡潔明瞭,設置起來一點麻煩都沒有,這裡就不多說了。

modules目錄下的模組文件,在編輯好bscript.ini文件後,整理所使用的指令,對照找出需要的模組文件,其餘的就可以刪除了。

最後說一下,就是在最後製作iso文件,選項引導文件時,由於loader.bin文件引導後也是將引導權交給bscript.bin文件,所以,直接選項bscript.bin作為引導文件就可以了,loader.bin嗎,沒用了,刪除吧,呵呵,我就是這樣作的,沒問題!

使用Boot Scriptor後,覺得比isolinux方式強大,靈活很多,所以,以後也都會使用這種方式了,呵呵!現在Boot Scriptor已經不再開發、更新了,作者將新版本更名為CD Shell,並且做了較大的改動,目前還沒有正式發佈,也沒有相關的我的文件,簡單的看了一下介紹,覺得語言更加像是在編程了,相信大家也會很有興趣的,等正式發佈後,我再和大家共同研究吧!
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2003-05-26, 11:00 PM   #3 (permalink)
劍狂刀痴
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

好複雜,看來我要好好的來研究一下了,謝謝大大的分享!!
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
舊 2003-05-27, 06:56 AM   #4 (permalink)
akira370
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

謝謝大大的分享
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
舊 2003-07-14, 05:06 PM   #5 (permalink)
twomax
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

好像好復雜,看到我快眼花了
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
舊 2003-07-15, 12:18 PM   #6 (permalink)
貝斯特
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

謝謝分享
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 05:57 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1