分享

基于syslinux (isolinux) 光盘引导

 瓦烁 2014-03-11


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文档呢,还是Google一下吧。)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多