基於syslinux (isolinux) 光盤引導
Linux IDC資料下載:http://linux.linuxidc.com/index.php?folder=cHViL7Oj08O5pL7f
注1: isolinux
注2:Syslinux 4.05 released.發佈,大家可以去前往下載最新的版本
注3:從官網上的Changelog可以看出,remove the .img file support。這點很重要,需要詳細瞭解的請前往
本文的目的是基於對linux下製作啓動光盤的研究.我使用的syslinux核心文件來自官方網站的4.03版。
步驟一:
解壓下載的syslinux文件,提取如下的文件:
isolinux.bin 注:光盤鏡像引導文件
isolinux.cfg 注:啓動菜單的配置文件;自編輯
memdisk 注:引導IMG鏡像的文件
vesamenu.c32(或menu.c32) 注:官方提供的二種窗口模塊
chain.c32 注:指定分區啓動 如:chain.c32 hd0,1 (或chain.c32 hd0,2)
reboot.c32 注:重新啓動計算機的文件
m16-640x640-syslinux.jpg(或syslinux_splash.jpg) 注:自己可以定義新的圖片作爲背景,圖圖片格式 640*480 jpg/png)
步驟二:
將提取的文件按照如下的文件目錄放置:("//" 表示註釋內容,使用的時候去掉)
根目錄(iso-dir)
|
|---isolinux---| isolinux.bin
| | isolinux.cfg
| | memdisk
| | vesamenu.c32(或menu.c32)
| | chain.c32
| | reboot.c32
| | m16-640x640-syslinux.jpg(或syslinux_splash.jpg) //這個文件的名字是可以自己定義的,圖片也是可以自己更換的
|
|---boot-----存放IMG鏡像以及啓動文件 //主要就是放置一些winpe 或者 grub 再或 dos等的一些文件。
步驟三:
isolinux.cfg 配置文件的編輯 (如下式樣本,自己可修改其中的內容“//”後爲註釋內容,使用時去掉)
F1 readme.txt //注:F1~~F12 自定義熱鍵,個人建議使用linux格式編譯這些文檔,否則會顯示亂碼等,對中文的支持不好,所以使用英文編寫
F2 isolinux.cfg //同上
default vesamenu.c32 //注:默認啓動窗口
MENU BACKGROUND m16.jpg //注:窗口的背景圖案
MENU TITLE xxxxxxxxxxxx // 注:窗口菜單的名稱
LABEL boothd //注:單項菜單名,區分不同的啓動項使用的,在光盤啓動的時候不顯示,這個是不能和後面的重複的
MENU LABEL Boot System of HD0,1 //注:在窗口中顯示單項菜單名,即光盤啓動時顯示的文件名
kernel /isolinux/chain.c32 hd0,1 // 注:指第一硬盤第一分區啓動
LABEL xxxxxxxxxxxxx
MENU LABEL xxxxxxxxxxxxxxxxx
kernel /isolinux/memdisk //注:IMG鏡像引導器 少於2.88MB的鏡像,不需指定C/H/S,這個文件很重要,不要做更改
append initrd=/boot/xly.gz //注:IMG鏡像可採用wingzip 壓縮
LABEL ghost
MENU LABEL Symantec GHOST 11.0.2 Corporate Edition
kernel /isolinux/memdisk c=214 h=2 s=18 floppy //注:大於2.88MB 必需指定C/H/S
append initrd=/boot/onekey.gz //如果這*.gz或者是img、iam等的文件大於了2.88MB,需要指定C/H/S。推薦軟件:GDParam查看
LABEL peldr
MENU LABEL Boot WinPE of Windows XP SP2
kernel /boot/peldr.bin // 注:此文件需經處理,見引導文件處理 ,此處處理所需要的軟件loadbin (windows平臺下)
LABEL grldr
MENU LABEL Goto Grub4dos Boot Menu
kernel /boot/mygrldr //注:此文件需經處理,見引導文件處理,本人並沒有進行嘗試,理由:本人採用grub1/grub2代替這裏
LABEL g2ldr
MENU LABEL Goto Grub2 Boot Menu
kernel /boot/g2ldr // 注:同上面的註釋,官網上貌似沒有現成的,因爲需要自己編譯,可以使用super grub這個公司的文件
LABEL reboot
MENU LABEL Reboot Your Computer
kernel /isolinux/reboot.c32 // 注:啓動計算機
主要寫在此條目的最後:有很多的實用的設置(可能我並不需要,或者這項功能我並不知道)我沒有列舉出來,比如設置字體顏色等等,需要的朋友再去查看其他的資料吧。
附 isolinux.cfg 簡單示例
default iso-dir
prompt 0 // prompt=1這是說,向用戶提示輸入選擇,直接回車就是缺省選項了。當然,如果使其等於0則,不向用戶提示輸入選擇。
LABEL Fedora
kernel /isolinux/vmlinuz
append initrd=/isolinux/initrd.img
步驟四:
在準備製作ISO的目錄裏添加一個子目錄,比如boot/isolinux/,然後放入 isolinux.cfg和一個對所有光盤都一樣的isolinux提供的引導介質 isolinux.bin,當然還要放入相應的kernel,initrd等我們需要在引導時調用到的文件,然後製作iso的時候要使用-b參數,來指明要使用isolinux.bin文件啓動:
mkisofs -o output.iso \
-b isolinux/isolinux.bin –c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
iso-dir/
最後的參數就是指定的光盤的目錄了,-c參數的那個文件是自動生成的,不用太擔心,其餘參數都是固定的。
至此,整個系統的啓動和製作過程就已經完成了。可以說有了這些知識,就可以設計一個簡單的啓動光盤,至於光盤的功能,需要用戶根據自己的需求來修改和調整!
在linux使用命令mkisofs命令:
CODE:
mkisofs -o myiso.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table iso-dir
解釋:
mkisofs是產生ISO光盤鏡像的命令;
-o 輸出文件
-b 引導程序
-c 引導目錄文件
-l 允許32 字符長度的文件名(取代默認iso9660標準的8.3文件名)
-J Joliet文件系統(Windows兼容)
-r RockRide Unix擴展支持
注:這種方法就不做解釋了,不會的朋友就自己man一些。(但是貌似我的系統裏沒有mkisofs的man文檔呢)