zoukankan      html  css  js  c++  java
  • 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 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 菜单项

    菜单项的配置可参考
    <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>

  • 相关阅读:
    你有认真了解过自己的“Java对象”吗? 渣男
    布隆过滤器,你也可以处理十几亿的大数据
    阻塞队列——手写生产者消费者模式、线程池原理面试题真正的答案
    Java集合面试题汇总篇
    Github 骚操作
    责任链模式——更灵活的if else
    时间复杂度到底怎么算
    创造DotNet Core轻量级框架【二】
    创造DotNet Core轻量级框架【一】
    小胖李的面试之旅(二)
  • 原文地址:https://www.cnblogs.com/hzl6255/p/3341374.html
Copyright © 2011-2022 走看看