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 ootsyslinux H:
V6.03: ~ioswin32>syslinux.exe --mbr --active --directory /boot/syslinux/ --install H:
执行成功后将在/boot/syslinux目录下生成启动系统文件ldlinux.sys
4. 在syslinux-*ios文件夹里搜索如何文件(对于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 菜单项
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有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_