基于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文档呢)

 


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