如何制作一个通用的多系统安装U盘五(制作主配置文件)

准备U盘

    因为要放置的系统比较多,我自己的U盘是128G的,最好是64G容量以上的U盘。为了保证兼容性,我一般是用FAT32来格式化。FAT32理论最大卷大小为2TB,单个文件最大大小为4GB。这是它的一个最大缺陷。另外,因为FAT32文件分配采用单链表结构,一个文件由一个一个链接的簇组成,而这些簇链不一定是连续的,所以经常产生碎片问题。

    虽然我已经用GRUB4DOS 的映射虚拟磁盘和映射虚拟内存盘方式对系统ISO进行了映射,但是考虑到ISO的尺寸比较大,如果内存不足的话会影响系统的安装,所以我们需要连续的存放文件。因为我只是在Windows安装的时候用到GRUB4DOS,所以我们只要制作的时候一次性的把Windows 相关ISO拷贝进U盘中就行了。如果使用了一段时间,并且增删了很多文件后,就有可能出现文件碎片,表现在U盘安装过程中就会出现加载ISO到内存的情况。这时候我们就要格式化一下U盘或者是用碎片整理软件整理一下了。


格式化

    在Linux下我们可以用fdisk命令或者是parted来给U盘分区并标记为fat32格式,然后通过mkfs.vfat格式化。而在windows下,因为微软的限制我们无法格式化大于32G的U盘为fat32格式,windows下格式化超过32G的U盘都会默认到exFAT的文件系统格式。所以我们在windows下格式化大容量U盘的时候一定要用第三方的分区格式化软件,比如DiskGenius。千万要注意啊,exFAT是无法兼容于Syslinux的!


Windows 格式化超过32GU盘时的提示:

wKiom1Rqsr-BCyG1AADhPae85GA195.jpg

在Windows下用DISKGenius 制作分区并格式化:

wKioL1RqtCGTX1pHAAGKJrhAp9Y103.jpg

wKiom1Rqs6yhRV32AAE1IYHWWTc943.jpg

LINUX下的分区和格式化(也可以用parted来分区)

fdisk -l       #查看U盘是哪个设备名
fdisk /dev/sdd #给U盘分区
n              #新建分区
p              #主分区
enter          #默认分区号为1               
enter          #默认起始扇区
enter          #默认结束扇区
t              #修改分区类型
c              #0c为LBA FAT32
a              #活动分区
w              #保存修改

#格式化
mkfs.vfat /dev/sdd1

拷贝相关软件并建立相关目录

根据定义的目录结构把syslinux,grub4dos等内容拷贝进U盘,并建立config目录。现在的结构如下:


F: U盘根目录
+---boot 启动相关项目
|   +---config 启动配置文件目录
|   +---grub GRUB4DOS程序和配置目录
|   |   |   bootlace.com
|   |   |   bootlace64.com
|   |   |   grldr
|   |   |   grub.exe GRUB4DOS主程序
|   |   |   grubinst.exe
|   |   |   Menu.lst
|   |   |   message
|   |   |   version.txt
|   +---syslinux Syslinux主程序目录
|   |   |   menu.c32 文本菜单程序
|   |   |   syslinux.exe Syslinux Windows安装程序,32位
|   |   |   syslinux64.exe Syslinux Windows安装程序,64位
|   |   |   vesamenu.c32 图形菜单程序
|   |   |   ldlinux.sys Syslinux 第二阶段引导程序
|   |   |   ..............



建立syslinux.cfg配置文件

在建立主配置文件之前,考虑到复用。我们把syslinux的配置分为三个部分:

    1.common.cfg 共用的配置和参数,包括整体标题,菜单的大小,背景颜色等等

    2.syslinux.cfg 主菜单,包括各大类(windows,linux)的菜单指向等

    3.mainmenu.cfg 返回主菜单菜单项,抽取出来为各大类返回主菜单用


common.cfg

prompt 1 #总是显示boot:提示。
menu title System Install UFD 0.91(Test) By steven xie #主菜单的名称
#font /boot/syslinux/xiezhile.psf #菜单字体
#timeout 100 #表示要等待多长时间自动进入默认的启动项,单位为1/10秒。0为禁用超时,没有此项默认也为禁用超时。
menu autoboot Automatic boot in # second(,s)... #可自定义提示信息替换自动启动的提示
menu tabmsg Press [Tab] to edit options #替换按tab键编辑的提示
menu notabmsg Mailto:[email protected] #如果tab键禁用,显示在tabmsg的位置
#menu indent 10 #只能在LABEL标签之后,对前一项菜单缩进多少个空格
#menu disable   #只能在LABEL标签之后,禁用这个菜单项,使其无法选中
#menu hidden    #只能在LABEL标签之后,隐藏这个菜单项,使其不显示
#menu separator #在菜单上插入一个空行
#menu default   #只能在LABEL标签之后,表示为默认的菜单项
#menu begin tagname 
#menu end
#开始,结束一个子菜单。右边显示>标记,子菜单可以继承主菜单的属性,也可以覆盖主菜单的属性,有自己的背景,超时等设置。
#menu goto tagname    #只能在LABEL标签之后,转移到指定的菜单项。比如menu goto .top。
#menu exit [tagname]  #只能在LABEL标签之后,退出到上一级菜单或到tagname的菜单
#menu quit            #只能在LABEL标签之后,退出菜单系统
#menu start           #只能在menu begin ... menu end之间,定义默认选项
#menu save 
#menu nosave
#是否记录菜单最后选择的项目
menu background /boot/syslinux/back800.jpg #在使用vesamenu.c32图形菜单的时候,设置背景图片或颜色。支持的图片格式有PNG,JPEG或LSS16格式
menu resolution 800 600 #定义屏幕的分辨率,如果分辨率不可用,将显示文本菜单
#控制屏幕上菜单布局的选项
menu width 80 
menu margin 10
menu passwordmargin 3
menu rows 24
menu tabmsgrow 29
menu cmdlinerow 29
menu endrow -1
menu passwordrow 30
menu timeoutrow 32
menu helpmsgrow 34
menu helpmsgendrow -1
menu hiddenrow -2
menu hshift 8
menu vshift 0
#菜单的相关颜色定义
menu color screen37;44      #ff00ff00 #0000ff00 none
menu color border30;44      #00000000 #00000000 none
menu color title1;36;44    #ffff0000 #1000ff00 std
menu color unsel37;44      #ffffffff #0000ff00 std
menu color hotkey1;37;44    #ffff0000 #00000000 std
menu color sel7;37;40    #ffffffff #20ff8000 std
menu color hotsel1;7;37;40  #ff400000 #20ff8000 std
menu color disabled1;30;44    #ffcccccc #00000000 none
menu color scrollbar30;44      #00000000 #00000000 none
menu color tabmsg31;40      #90ffff00 #00000000 none
menu color cmdmark1;36;40    #c000ffff #00000000 none
menu color cmdline37;40      #c0ffffff #00000000 none
menu color pwdborder30;47      #80ffffff #20ffffff none
menu color pwdheader31;47      #80ff8080 #20ffffff none
menu color pwdentry30;47      #80ffffff #20ffffff none
menu color timeout_msg37;40      #80ffffff #00000000 none
menu color timeout1;37;40    #c0ffffff #00000000 none
menu color help37;40      #ff000000 #00000000 none
menu color msg0737;40      #ffffffff #ff000000 none



mainmenu.cfg #内容只有一项,就是返回主菜单

menu separator  #插入空行
label mainmenu  #syslinux菜单内部名称,必须为唯一的
        menu label Return To Main Menu   #只能在LABEL标签下,显示在屏幕上的菜单名称
        kernel /boot/syslinux/vesamenu.c32 #加载的核心。可以是
                LINUX image- Linux kernel image (default)
                BOOT image- Bootstrap program (.bs, .bin)
                BSS image- BSS image (.bss)
                PXE image- PXE Network Bootstrap Program (.0)
                FDIMAGE image        - Floppy disk image (.img)
                COM32 image- COM32 program (.c32)
                CONFIG image        - New configuration file
        append ~  #添加一个或多个核心命令行选项,此处~是指主配置文件



syslinux.cfg #主配置文件

ui /boot/syslinux/vesamenu.c32 #选择UI模块是用图形菜单(vesamenu.c32)还是文本菜单(menu.c32)
default windowsinstall         #定义默认菜单项
onerror /boot/syslinux/menu.c32 /boot/syslinux/syslinux.cfg #当发生错误(比如未找到内核镜像文件)时运行定义的命令
include /boot/config/common.cfg #插入公用配置文件
menu master passwd xiele #定义一个主密码,在用户进入命令行编辑时必须输入(按下[Tab]或[Esc])
menu passprompt Please Input Password #定义密码提示信息
#F1 /boot.msg
#F2 /syslinux.cfg
#F3 /linux/linux.cfg
F4 /help/xperror.txt 
F5 /help/pciid.txt
按下相应快捷键提供一个全屏的帮助信息,可添加自定义背景(F1-F12 textfile [background])
下面统一为定义菜单项和附加相应的配置文件
#-------------------------------hp--------------------------------------------
LABEL hpinstall
MENU LABEL ^HP SmartStart CDROM
KERNEL /boot/syslinux/vesamenu.c32
APPEND /boot/config/hp.cfg /boot/config/mainmenu.cfg #附加hp.cfg 和 mainmenu.cfg
menu separator
#-------------------------------linux-----------------------------------------
LABEL linuxinstall
MENU LABEL ^Linux System Install
KERNEL /boot/syslinux/vesamenu.c32
APPEND /boot/config/linux.cfg /boot/config/mainmenu.cfg #附加linux.cfg 和 mainmenu.cfg 
menu separator
#-------------------------------windows----------------------------------------
LABEL windowsinstall
MENU LABEL ^Windows System Install
KERNEL /boot/syslinux/vesamenu.c32
APPEND /boot/config/windows.cfg /boot/config/mainmenu.cfg #附加windows.cfg 和 mainmenu.cfg
menu separator
#-------------------------------vmware esx--------------------------------------
LABEL vmwareinstall
MENU LABEL ^VMware ESX And ESXi Install
KERNEL /boot/syslinux/vesamenu.c32
APPEND /boot/config/vmware.cfg /boot/config/mainmenu.cfg #附加vmware.cfg 和 mainmenu.cfg
menu separator
#-------------------------------tools-----------------------------------------
label tools
menu label ^Tools
kernel /boot/syslinux/vesamenu.c32
append /boot/config/tools.cfg /boot/config/mainmenu.cfg #附加tools.cfg 和 mainmenu.cfg
menu separator
#-------------------------------my small system--------------------------------
label mytools
menu label ^Small Live System
kernel /boot/syslinux/vesamenu.c32
append /boot/config/livelinux.cfg /boot/config/mainmenu.cfg #附加livelinux.cfg 和 mainmenu.cfg
menu separator
#-------------------------------common--------------------------------------------
#隐藏的grub4dos进入项,测试用
label grub4dos
menu label grub4dos
menu hide 
boot /boot/grub/grldr
#自定义一个分隔条,主要是为了好看
label separator
menu label ----------------------------------------
menu disable
#调用syslinux的内存测试模块
label memtest86
menu label ^MemTest 86+ 4.2
linux /boot/syslinux/memtest.bin
#调用syslinux的硬件检测模块
label hdt
menu label ^Infomation Of HardWare 
com32 /boot/syslinux/hdt.c32
#调用syslinux的重启模块
label reboot
menu label ^Reboot
com32 /boot/syslinux/reboot.c32
#调用syslinux的关机模块
label poweroff
menu label ^Power Off
com32 /boot/syslinux/poweroff.c32
#从本地硬盘启动,不一定百分百成功。有可能还是从U盘启动。
LABEL hddboot
menu label ^Boot From 1st Hard Disk
kernel /boot/grub/grub.exe
append --config-file="checkrange 0x80 read 0x8280 && map (hd1) (hd0);checkrange 0x80 read 0x8280 && map --hook;chainloader (hd0)+1"


你可能感兴趣的:(系统安装)