通过WDS+MDT+Syxlinux引导模块部署多类操作系统
【前言】
通过PXE(预备执行系统)网络引导安装各类系统,因为各类系统环境的原因,传统的Windows安装我们使用WDS+MDT进行部署,如果需要安装Linux呢? 这里引导模块引入使用syslinux来引导Linux环境系统部署;通过syslinux+wds引导来部署不同环境下的操作系统。本文不展开介绍WDS和MDT2013的安装部署,仅介绍利用WDS来引导部署Windows/Linux/ESXI/WinPE.着重要点是部署linux和UNIX。
【正文】
运维工作经常会要安装操作系统,非常繁杂。安装系统的途径有:光驱/U盘/镜像/硬盘等安装方式,有时我们经常会遇到这些东西都没有怎么办?可以通过网络来解决这些烦恼,之前已经在使用WDS+MDT2013来部署WINPE和Windows系统,但现在由于工作需要要把VMware ESXI和Linux/UNIX也通过网络来部署;在Linux下面我们通常使用Kickstart + cobbler来完成网络linux部署,但现在我需要做的是在兼容WDS安装菜单选择性地环境部署,这里使用syslinux轻量系统引导。
要网络引导,首先介绍一下
PXE:在网卡上有一快 ROM(firmware) 里面存放了一些基本的网络协议如:Internet Protocol (IP), User Datagram Protocol (UDP), Dynamic Host Configuration Protocol (DHCP) ,Trivial File Transfer Protocol (TFTP) 通过这些协议使得PXE可以获得网络上的资源。
PXE引导过程:
PXE Client 从PXE网卡启动,向DHCP服务器获取IP信息;
DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置;
PXE Client 向网络中的TFTP服务器获取pxelinux.0 文件;
PXE Client 取得pxelinux.0 文件后执行该文件;
根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统
要实现WDS来引导我们需要安装WDS服务器,FTP服务器,syslinux支持linux引导文件包,DHCP服务器。
因为我们已经有了WDS/DHCP,这里我们不讲WDS安装和配置以及MDT2013的安装和部署(网上有很多这方面的资料)
我们只需要配置FTP和syslinux即可。
1. 先下载syslinux包:Syslinux系统启动加载器
下载地址:https://www.kernel.org/pub/linux/utils/boot/syslinux/
2. FTP服务器使用“简单FTP服务器”,这里做测试所以不需要太麻烦,正式环境还是考虑其它FTP方案
【介绍syslinux文件以及配置】
这里需要用到2个版本:6.03、4.07,这里为什么需要2个版本?这是因为在使用最新版本6.03出现无法引导ESXI的情况,
测试发现4.07这个版本是可以正常引导ESXI的;
将syslinux解压包里面文件,复制以下文件至RemoteInstall\Boot\x86 、RemoteInstall\Boot\x64 文件夹
syslinux-4.07.zip\core\pxelinux.0
syslinux-4.07.zip\com32\chain\chain.c32
syslinux-4.07.zip\com32\menu\menu.c32
syslinux-4.07.zip\com32\menu\vesamenu.c32
\syslinux-6.03\bios\com32\cmenu\libmenu\libmenu.c32
\syslinux-6.03\bios\com32\libutil\libutil.c32
\syslinux-6.03\bios\com32\lib\libcom32.c32
\syslinux-6.03\bios\com32\elflink\ldlinux\ldlinux.c32
这里还可以将reboot.c32这个文件也复制过去,这里最好使用syslinux4.07中的reboot版本,这个作用就是重启系统命令。
复制完到wds引导目录下面, 将一些文件重命名,因为引导wds下面引导只识别这个名字:
重名名以下文件:
x86架构:
RemoteInstall\Boot\x86\abortpxe.com abortpxe.0
RemoteInstall\Boot\x86\pxeboot.n12 pxeboot.0
RemoteInstall\Boot\x86\pxelinux.0 pxelinux.com
x64架构:
RemoteInstall\Boot\x64\abortpxe.com abortpxe.0
RemoteInstall\Boot\x64\pxeboot.n12 pxeboot.0
RemoteInstall\Boot\x64\pxelinux.0 pxelinux.com
引导配置文件目录及文件:
新建文件夹:pxelinuc.cfg[这里是文件夹] ,引导的时候会从这里去找启动菜单配置,默认是default ,这个default没有我们可以从syslinux里面复制过去改名,具体里面的内容可以根据自己环境部署的需要而变化,这里我只贴出来我的供大家参考:
这个是default启动菜单配置文件:中文支持较烦,也没有必要,这里不讲解了如果感兴趣可以下载一个字体软件处理。
DEFAULT vesamenu.c32
F2 pxelinux.cfg/default
#FONT myfont.psf
MENU color border 0 #0000 #0000 none
MENU BACKGROUND pxelinux.cfg/img.jpg
MENU INCLUDE pxelinux.cfg/graphics.conf
Menu TITLE KS-SUNWILL PXEDeployment System V1.0
prompt 0
timeout 90
MENU AUTOBOOT Starting Local System in # seconds
TIMEOUT 180
#--Abort boot-from PXE
LABEL 0
MENU LABEL ^[0]----Abort PXE
Kernel abortpxe.0
TEXT HELP
EXIT THIS MENU
ENDTEXT
#--boot to HardDisk
LABEL 1
MENU DEFAULT
MENU LABEL ^[1]----BOOT FROM HARDDISK
loaclboot 0x80
TEXT HELP
BOOT TO LOCAL HARDDISK
ENDTEXT
#--boot to MDT/WDS IMAGES
LABEL 2
MENU LABEL ^[2]----WINDOWS INSTALL via WDS/MDT[7/10/2012]
KERNEL pxeboot.0
TEXT HELP
INSTALLATION WINDOWS 7/10/2012/DEEPING WINPE
ENDTEXT
#--boot to Linux/ESXI/UNIX
LABEL 3
MENU Label ^[3]----Linux/Unix/ESXI MENU
#MENU PASSPROMPT "Please Requires a Password:"
MENU PASSWD MD5 jlsdfsd54df12df21df
KERNEL vesamenu.c32
APPEND pxelinux.cfg/Linux.menu
#--boot to Reboot
LABEL 4
MENU Label ^[4]----Reboot System
KERNEL reboot.c32
TEXT HELP
More about currently selected:
reboot.
ENDTEXT
二级子菜单配置文件:
Menu TITLE Linux Setup Menu
MENU color border 0 #0000 #0000 none
MENU BACKGROUND pxelinux.cfg/img.jpg
MENU INCLUDE pxelinux.cfg/graphics.conf
#--boot to Linux Installer
LABEL 0
MENU LABEL ^[0]----Centos7(MINI) Installation
KERNEL linux/Centos7/vmlinuz
APPEND initrd=linux/Centos7/initrd.img ip=dhcp inst.stage2=ftp://10.6.7.11/Centos7
#--boot to Vmware Installer
LABEL 1
MENU LABEL ^[1]----VMware Vsphere ESXI6.5 Installer
KERNEL linux/ESXI/6.5/MBOOT.C32
APPEND -c linux/ESXI/6.5/BOOT.CFG ks=linux/ESXI/6.5/ks.cfg 
#--boot to Cisco ACS5.3 Installer
LABEL 2
MENU Label ^[2]----CISCO ACS5.3 Installer
KERNEL linux/ACS/vmlinuz
APPEND ks=ftp://10.6.7.11/linux/ks.cfg initrd=linux/ACS/initrd.img ramdisk_size=8192
#--boot to DEEPIN WinPE
LABEL 3
MENU Label ^[3]----DEEPIN WINPE
KERNEL WinPE/UDS/grldr
APPEND initrd=WinPE/UDS/grldr
#--Back to MainMenu
LABEL 4
MENU Label ^[4]----Bakc to MainMenu
KERNEL vesamenu.c32
APPEND /pxelinx.cfg/default
WDS中默认引导文件变更:
使用以下命令配置WDS默认引导文件,这里是默认的目录,如果你的目录引导不同也可以自行变更。比如有些人喜欢放在/boot/syslinux里面来引导:
x86架构
wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86
wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86
x64架构
wdsutil /set-server /bootprogram:boot\x64\pxelinux.com /architecture:x64
wdsutil /set-server /N12bootprogram:boot\x64\pxelinux.com /architecture:x64
【结尾:】
实际引导效果:
进入菜单要求使用密码认证:
认证通过之后进入二级子菜单:
经常测试可以正常引导安装。最后感谢AT工作室的学习资料:http://stastudio.net/?p=1533