2008年2月8日星期五

syslinux应用简介

syslinux是一个轻量级的启动装载器,只用Windows的人可能不明白是什么东西,如果玩过Linux,一定知道lilo和grub,是的,所谓轻量级我想就是跟grub们相比而言的,尤其是grub2。

syslinux有很多变种(都是官方的)适用于各种媒质,如syslinux用于从微软的文件系统fat 16/32引导,isolinux用于从光盘引导,pexlinux用于从网络引导,extlinux用于从ext2/3文件系统引导。

从这也可以看出,syslinux对于各种设备的兼容做的很细致,据grub4dos的人说,用于兼容性方面的代码甚至超过了程序主要功能的实现代码。

Ubuntu的Live CD就是使用isolinux来引导的,如果你不想为了一个Alpha版本而浪费一张光盘,可以将iso镜像文件放在U盘或移动硬盘上,轻松的换用syslinux来引导。

  1. 将iso镜像中的casper和isolinux文件夹拷贝到移动硬盘的fat32分区根目录,这对于引导系统,只想体验一下LiveCD来说已经足够了,如果你还要进行系统安装等,可能还要其它文件。
  2. 将isolinux文件夹改名为syslinux,现在将syslinux文件夹中的isolinux.cfg文件改名为syslinux.cfg。
  3. 安装syslinux到移动硬盘。如果是在Windows下,使用下面的命令:
    syslinux.exe /mfa G:
  4. a表示激活分区,f是force的意思,m是写mbr,G:是移动硬盘分区的盘符。运行后会在根目录生成一个ldlinux.sys的隐藏文件。

    Ubuntu的Live CD使用的isolinux打了gfxboot补丁,如果你使用官方版本的syslinux,启动后就没有菜单以及语言选择等内容。所以建议大家使用同样打了补丁的Ubuntu版本的syslinux:
    sudo aptitude install syslinux mtools
    sudo syslinux -f /dev/sdb1
    需要mtools是因为要修改fat32文件系统上的文件属性。/dev/sdb1是移动硬盘fat32设备的文件名,不需要mount。
好了,现在插上移动硬盘,将电脑设置为从USB设备启动,OK?如果启动失败,很有可能是分区表的原因,想想当初,我将移动硬盘上的第一个分区设为主分区,fat32格式,也许是个英明的决定。

附记:除了gfxboot,syslinux也有自己的菜单系统这里有一个样例配置文件,在它的邮件列表上,说起gfxboot,有人似乎很不屑suse写的代码。

1 条评论:

daly 说...

你好,我想问一下,我有一个win98镜像的启动u盘,zip格式启动,能否用dos引导到syslinux?谢谢!