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.: ~\win32>syslinux.exe -ma -d \boot\syslinux H:
V6.: ~\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= h= s=

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-

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

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

4. PE定制

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

iso: ISO  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>

Syslinux使用的更多相关文章

  1. syslinux 3.84 2009-12-18 ebios copyright (c) 1994-2009 H. Peter Anvin et al

    使用USB方式安装win7+Ubuntu12.04双系统时出现"syslinux 3.84 2009-12-18 ebios copyright (c) 1994-2009 H. Peter ...

  2. 理解syslinux,SYSLINUX和PXELINUX

    在研究网络装机的过程中,菜菜地被Syslinux.SYSLINUX和PXELINUX这些定义折磨了一下 它们有什么区别和联系?为什么配置PXELINUX要安装的是Syslinux而不是Pxelinux ...

  3. syslinux 和 grub

    syslinux是一个功能强大的引导加载程序,而且兼容各种介质.它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘.它的安装很简单,一旦安装syslinux好之后,sysLinu ...

  4. syslinux启动盘制作

    # <font color=DarkCyan >syslinux启动盘制作</font> # ### 准备工具 ### 1. BOOTICEx64 软件 ##分区引导制作工具 ...

  5. Syslinux编译环境配置简要步骤

    由于毕业设计要做一个加密U盘的LINUX,需要修改一sysylinux引导程序,在网上很少有关于syslinux编译环境配置的文章,在此简要总结一下,发出来共享. 需要的软件: 1.  vmware ...

  6. 关于SYSLINUX的一些重要描述摘录

    以下资源都来自官方文档,原文摘录 The SYSLINUX suite contains the following boot loaders ("derivatives"), f ...

  7. SYSLINUX官方文档

    帮助正确认识SYSLINUX http://www.syslinux.org/wiki/index.php/Doc/syslinux http://www.syslinux.org/wiki/inde ...

  8. x01.os.23: 制作 linux LiveCD

    1.首先运行如下命令  sudo apt-get install wget bc build-essential gawk genisoimage 2.下载如下资源,make all 即可 http: ...

  9. Linux PXE无盘工作站

    • 关于PXE无盘工作站系统的简介 PXE无盘工作站系统是指由一台或多台“系统服务器”和多台“PXE客户端(无盘工作站)”通过 交换机 相连组成的局域网系统. (图1:无盘工作站系统部署拓扑图) • ...

随机推荐

  1. go包的理解

    结论: import时指定的字符串,是相对于$GOPATH的目录路径,告诉了go,要去加载这个目录下所有的包文件(不包括子目录中的文件) 一个目录中所有的源文件(不包括子目录)代表了单独的一个包,这些 ...

  2. php微信分享demo

    php微信分享demo //定义JSSDK类 <?php class JSSDK { private $appId; private $appSecret; private $redis; pu ...

  3. jsp--提交表单→插入数据库→成功后返回提示信息

    <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="u ...

  4. JS大小转化B KB MB GB的转化方法

    function conver(limit){ var size = ""; ){ //如果小于0.1KB转化成B size = limit.toFixed() + "B ...

  5. 获取PHP页面的当前文件名(包括后缀名)

    // $curPhp = substr($_SERVER['PHP_SELF'],strripos($_SERVER['PHP_SELF'],'/')+1); // print_r($_SERVER[ ...

  6. PHP判断时关于null,0,true,flase的值

    <?php// $wh = 0; //等于整数0,等于字符串'0',等于空字符串,等于空格字符串, 等于空(null),等于字符串('null')// $wh = '0'; //=>等于整 ...

  7. 数据分析处理库Pandas——概述

    导入Pandas库 创建DataFrame结构 读取.csv文件 titanic_train.csv文件:https://files.cnblogs.com/files/gloria-zhang/ti ...

  8. Harbor HA部署-使用Ceph RADOS后端

    1. 前言 Harbor 1.4.0版本开始提供了HA部署方式,和非HA的主要区别就是把有状态的服务分离出来,使用外部集群,而不是运行在本地的容器上.而无状态的服务则可以部署在多个节点上,通过配置上层 ...

  9. 查询语句为“%string_”的情况

    select * from t_user where user_name like '%Joe_%'实际查询出来的语句为: 而不像预计的前两条.

  10. SVM python小样例

    SVM有很多种实现,但是本章只关注其中最流行的一种实现,即序列最小化(SMO)算法在此之后,我们将介绍如何使用一种称为核函数的方式将SVM扩展到更多的数据集上基于最大间隔的分割数据优点:泛化错误率低, ...