基於syslinux (isolinux) 光盤引導

基於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或者是imgiam等的文件大於了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一些。(但是貌似我的系統裏沒有mkisofsman文檔呢)

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章