syslinux简介 - syslinux制作启动U盘 Unknown 2008/10/18

| |

三、用 SYSLINUX/ISOLINUX 引导软盘和光盘

上 文已经说过了,SYSLINUX/ISOLINUX 是专门用来引导可移动介质的轻量级引导程序,因为这样的介质通常不会固定只针对一种硬件,initrd 当然是 SYSLINUX/ISOLINUX 必须支持的功能了。这两种引导程序其实是一样的,没有多大区别,只是放在不同的设备的引导区罢了。

3.1 配置 SYSLINUX/ISOLINUX

对于这两种引导程序,都会有一段引导代码,写入引导代码的时候,还同时需要一个配置文件: syslinux.cfg/isolinux.cfg,同样,这两个文件也是一样的,唯一的区别在于文件名,其各个字段的写法如下:

     DISPLAY xxx.txt
这指定了一个文件名,会在启动的时候显示的内容,该文件甚至可以包含一个 RLE 编码的图形文件,也就是大家在安装光盘启动时看到的那个;不过这个字段不甚重要,我们就略过了。

     DEFAULT linux
指定 label 是 linux 的启动选项为缺省,当然也可以是别的。

     LABEL linux
kernel vmlinuz
append initrd=initrd26.gz ramdisk_size=1000000 vga=791
这就是一个启动描述,前面的 label 大家都认识了,之后分别是指定 kernel 和内核参数,其中重要的参数就是 initrd= 指定 initrd 的文件和 ramdisk_size= 指定 initrd 的尺寸上限。其余的内核参数还可能有很多,不过这里的参数我们一般都可以抄过来。这样的启动选项描述是可以有若干个的。

     PROMPT=1
这是说,向用户提示输入选择,直接回车就是缺省选项了

     TIMEOUT=0
没有时间限制,当然也可以指定一定时间之后自动进入缺省选项。

好了,就这么多,如果你会用 LILO 的话,用这个一定得心应手,说实话 grub 也差不了太多。

3.2 安装 SYSLINUX/ISOLINUX

配置文件写完了,现在进入实质阶段,这里,两种引导程序还是略有差别的,首先介绍SYSLINUX:

首先格式化引导介质为 FAT16 格式 (软盘似乎应该是 FAT12),我们的例子里面是 U 盘,
mkdosfs -F16 -I /dev/sda
我们是操作整个 U 盘,而不是里面的唯一分区,这种情况不是很多见,只是手上的 U 盘比较特殊,大部分情况下,我们也可以
mkdosfs -F16 /dev/sda1
然后挂在该 U 盘,放入我们的 syslinux.cfg 以及 kernel 和 initrd.gz,还有其他启动所需要的东东,之后 umount 该 U 盘。

* 执行下面操作之前,必须 umount U 盘!*

然后写引导区:
syslinux /dev/sda (或 syslinux /dev/sda1,如果是格式化的 /dev/sda1 的话)
至此就完成了。

对于光盘,同样不复杂,我们用 ISOLINUX:

在 准备制作 ISO 的目录里添加一个子目录,比如 boot/isolinux/ ,然后放入 isolinux.cfg 和一个对所有光盘都一样的 isolinux 提供的引导介质 isolinux.bin,当然还要放入相应的 kernel, initrd 等等,然后,制作 iso 的时候要使用 -b 参数:
mkisofs -o output.iso \
-b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
for-iso-dir/
最后的参数就是指定的光盘的目录了,-c 参数的那个文件是自动生成的,不用太担心,其余参数都是固定的。事实上,也常常有人用 isolinux/ 而不是 boot/isolinux/ ,这都是约定俗成的,你完全可以用自己的。这里的路径都是相对于光盘的根的,而和制作光盘时的工作目录没有关系。

至此,你也会用 SYSLINUX/ISOLINUX 了。 :)

内文分页: [1] [2]
请给这篇日志评个分吧~!

本文评分: 5.7/10 (55 votes)    提示:您还未对本文评分,您可以进行评分并发表您的意见!

加入收藏!

Tags: , , ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [注册]