基于syslinux (isolinux) 光盘引导
注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文档呢)
本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1978945,如需转载请自行联系原作者