Syslinux使用

1. 介绍

Syslinux是一个功能强大的引导加载程序, 可以装在U盘上来引导系统

在5.00版本以前,几乎所有c32模块是独立的,即没有其他模块依赖;但在5.00以后,很多c32模块则是依赖于其他模块

这里同时介绍4.05和6.03版本

2. 使用

Windows下使用方式如下
1. 将U盘格式成FAT32
2. 在U盘根目录里建立boot/syslinux文件夹
3. 打开命令行,找到U盘目录,进入syslinux目录里执行如下命令,假设U盘盘符为H

V4.05: ~\win32>syslinux.exe -ma -d \boot\syslinux H:
V6.03: ~\bios\win32>syslinux.exe --mbr --active --directory /boot/syslinux/ --install H:

执行成功后将在/boot/syslinux目录下生成启动系统文件ldlinux.sys
4. 在syslinux-*\bios文件夹里搜索如何文件(对于6.03需要找到对应的依赖库)

memdisk             引导IMG镜像文件
menu.c32            窗口模块
vesamenu.c32        窗口模块
chain.c32           指定分区(硬盘)启动
reboot.c32          重新启动计算机
poweroff.c32        关闭计算机

几个文件复制到U盘的boot/syslinux文件夹里,同时在此文件里新建配置文件syslinux.cfg。

3. 配置

syslinux的配置文件syslinux.cfg需要填写菜单及相关系统配置项

3.1 菜单项

菜单项的配置可参考
<Syslinux Menu>
<Archlinux Syslinux>

3.2 引导配置项

WinPE

LABEL Winpe
MENU LABEL Winpe
  kernel /boot/isope.bin
  append initrd=/boot/SETUPLDR.BIN

Linux

LABEL linux
MENU LABEL Puppy linux
  kernel /boot/linux/vmlinuz
  append initrd=/boot/syslinux/initrd.gz

硬盘

LABEL StartHD
  MENU LABEL StartHD
  COM32 /boot/syslinux/chain.c32 hd0

关闭系统

LABEL Poweroff
    MENU LABEL Poweroff
    COM32 /boot/syslinux/poweroff.c32

重启系统

LABEL reboot
  MENU LABEL Reboot
  COM32 /boot/syslinux/reboot.c32

磁盘镜像引导

syslinux支持gzip或zip压缩格式的(memdisk),标准floppy镜像可直接引导启动,非标准(容量大于2880K)要附加CHS参数
其中,CHS参数可通过软件GDParam来获取

LABEL maxdos
  kernel memdisk
  append initrd=boot/maxdos.img floppy c=555 h=2 s=18

ISO光盘

LABEL WIN7PE.iso
  LINUX memdisk
  INITRD /boot/wins/WIN7PE.iso
  APPEND iso raw

LiveCD

引导LiveCD需要指定root设备(通过UUID或LABEL)和squashfs所在路径(实际路劲为/boot/CentOS/squashfs.img)

LABEL CentOS
    MENU LABLE CentOS
    kernel /boot/CentOS/vmlinuz0
    append initrd=/boot/CentOS/initrd0.img root=UUID=4C9E-56D3 rootfstype=vfat rw quiet liveimg SQUASHED="/sysroot/boot/CentOS/squashfs.img"
#root=LABEL=FIX

其中,获取UUID的方法如下

/* Linux */
# /lib/udev/vol_id -u $dev       -> 获取UUID
# /lib/udev/vol_id -l $dev       -> 获取LABEL
# blkid                          -> 获取UUID

/* Windows */
C:\> wmic LogicalDisk where "DriveType='2'" get VolumeSerialNumber / value
VolumeSerialNumber=72E11326      -> UUID为72E1-1326

关于LiveCD,参考:
<Linux Live Kit>
<Fedora LiveOS>

其他比较不错的LiveCD有4MLinux,Slitaz

4. PE定制

首先来了解下iso和img镜像格式

iso: ISO 9660 CD/DVD image, ElTorito 
img: 磁盘映像, 准确的来说是Floppy Disk Image

iso修改工具有WinISO和UltraISO;可引导需要Bootable_NoEmulation.img
img文件可以使用WinImage进行修改;.SI_文件通常是使用CAB压缩的文件,可使用WinCab中的makecab.exe来得到

makecab.exe WinPE.iso WINPE.IS_

<WinPE的DIY知识简介>
<Windows Preinstallation Phases>

参考:
<Syslinux Wiki>
<Syslinux HowTos>

posted @ 2013-09-26 19:04  北落不吉  阅读(7408)  评论(0编辑  收藏  举报