通过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可以获得网络上的资源。

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

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

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

引导配置文件目录及文件:

新建文件夹:pxelinuc.cfg[这里是文件夹] ,引导的时候会从这里去找启动菜单配置,默认是default ,这个default没有我们可以从syslinux里面复制过去改名,具体里面的内容可以根据自己环境部署的需要而变化,这里我只贴出来我的供大家参考:

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

这个是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

【结尾:】

实际引导效果:

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

进入菜单要求使用密码认证:

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

认证通过之后进入二级子菜单:

通过WDS+MDT+Syxlinux引导模块部署多类操作系统

经常测试可以正常引导安装。最后感谢AT工作室的学习资料:http://stastudio.net/?p=1533