使用gPXE做网络启动引导DOS/PE/Linux

用了很久的syslinux了,虽然已经实现了PXE网络启动DOS、PE1.0、PE2.0、PE3.0、网络安装各种Linux(Redhat、CentOS、Debian等),但老版本的syslinux是基于TFTP来传输所有的启动文件的,这个在跨网段的情况下,传输速度会比较慢,一直想解决。
听说gPXE有一段时间了,它支持通过HTTP和FTP方式传输引导文件,一直没时间研究,最近研究了下,加上朋友的参考,基本上把功能实现了。
原理非常简单,新版本的syslinux已经支持gPXE了,直接更改DHCP配置文件,指向到gpxelinux.0就可以了,我是直接把gpxelinux.0改名成pxelinux.0,原始配置文件基本不变。
旧版本引导dos镜像的方法

1
2
3
4
5
LABEL dostools
#MENU PASSWD 1
MENU LABEL ^A- DOS Disk Tools
kernel gpxe/memdisk c=938 h=2 s=32 floppy
append initrd=grub/dos.img

gPXE引导方式支持HTTP和FTP协议

1
2
3
4
5
LABEL dostools
#MENU PASSWD 1
MENU LABEL ^A- DOS Tools FTP
kernel ftp://192.168.1.1/gpxe/memdisk c=938 h=2 s=32 floppy
append initrd=ftp://192.168.1.1/gpxe/dos.img

旧版本引导PE的方法分为PE1.x和PE2.0/PE3.0
引导多个PE1.x需要修改startrom.0、ntldr和winnt.sif,引导PE2.0/PE3.0则需要bootmgr.exe等等,在此不详细说了,有兴趣的可以上无忧上搜索
旧配置文件

1
2
3
4
5
6
7
8
LABEL PE1.x
#MENU PASSWD 1
MENU LABEL ^B- PE XP
kernel startrom.0
LABEL PE3.0
#MENU PASSWD 1
MENU LABEL ^C- PE Win7
kernel Boot/pxeboot.0

gPXE引导方式

1
2
3
4
5
6
LABEL PE XP FTP
#MENU PASSWD 1
MENU LABEL ^D- PE XP FTP
linux ftp://192.168.1.1/gpxe/memdisk
append raw iso
initrd ftp://192.168.1.1/win/RAMXP.iso

Linux网络安装和引导dos的img基本类似,另外,关于引导PE,旧版本的方式速度太慢,而gPXE已经可以直接通过HTTP/FTP方式实现了,免去很多繁琐的制作过程了,只要找个自己喜欢的PE的ISO就好啦。