1.PXE 简单介绍
PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统。
2.pxe的启动过程
1)pxe采用c-s模式(客户端服务器模式),在客户端个人电脑开机后,在TCP/IP Bootrom 获得控制权之前先做自我测试;Bootprom 送出 BOOTP/DHCP 要求以取得 IP,网关,DNS服务器地址等参数。
2)由tftp通讯协议从ftp服务器下载开机镜像文件。
3)使用kickstart提供操作系统安装过程中的参数配置。
3.前期准备工作
首先需要一台服务器dhcp服务器用来为客户机分配ip,dns,gateway等参数。其次还需要搭建一台ftp服务器用来提供操作系统的镜像。另外还需要搭建tftp服务器用提供驱动。最后生成一个kickstart文件为系统自动提供参数。硬件配置一台主机用来搭建服务器,一主机做客户端。
4.实现过程及步骤
在redhat enterprise linux 5环境下配置服务器。
1)配置服务器IP地址:
eth0 Link encap:Ethernet HWaddr 00:0C:29:70:3F:F7
inet addr:192.168.1.10 Bcast:192.168.1.255 Mask:255.255.255.0
2) 挂载光盘(此光盘上是客户端操作系统镜像)
mount /dev/cdrom /mnt/cdrom/
3)配置yum服务器(当然也可以使用其它安装工具)
[root@localhost cdrom]# vim /etc/yum.repos.d/rhel-debuginfo.repo
文件的编辑内容如下
[rhel-vt]
name=Red Hat Enterprise Linux vt
baseurl=file:///mnt/cdrom/VT
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-cluster]
name=Red Hat Enterprise Linux cluster
baseurl=file:///mnt/cdrom/Cluster
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
[rhel-clusterstorage]
name=Red Hat Enterprise Linux clusterstorage
baseurl=file:///mnt/cdrom/ClusterStorage
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
4)配置dhcp服务器
--安装
[root@localhost cdrom]# yum install -y dhcp
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package dhcp.i386 12:3.0.5-21.el5 set to be updated
--配置
subnet 192.168.1.0 netmask 255.255.255.0 { // 设置网关,dns
# --- default gateway
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.1.10;
next-server 192.168.1.10; //ftp服务器
filename "pxelinux.0";
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.1.12 192.168.1.120; // 设置地址池
default-lease-time 21600;
max-lease-time 43200;
--启动
[root@localhost cdrom]# service dhcpd start
5)搭建tftp
--查看tftp软件包
[root@localhost cdrom]# yum list all | grep tftp
This system is not registered with RHN.
RHN support will be disabled.
tftp-server.i386 0.49-2 installed
tftp.i386 0.49-2 rhel-server
--配置tftp
[root@localhost ~]# vim /etc/xinetd.d/tftp
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
[root@localhost ~]# cd /tftpboot
[root@localhost ~]#cd /mnt/cdrom/
[root@localhost cdrom]# cp isolinux.cfg pxelinux.cfg/default
[root@localhost tftpboot]# cp /usr/lib/syslinux/pxelinux.0 ./
[root@localhost tftpboot]# cp /mnt/cdrom/images/pxeboot/vmlinuz ./
[root@localhost tftpboot]# cp /mnt/cdrom/images/pxeboot/initrd.img ./
[root@localhost tftpboot]# mkdir -pv pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append ks=ftp://192.168.1.10/pub/ks.cfg ksdevice=eth0 initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
--启动tftp服务器
[root@localhost cdrom]# service xinetd restart
6)搭建ftp服务器
--安装
[root@localhost ~]# yum install -y vsftpd
--复制光盘文件到
[root@localhost ~]# cd /mnt/cdrom
[root@localhost cdrom]# cp �Cr . /var/ftp/pub/
[root@localhost ftp]# yum install -y system-config-kickstart
7)生成kickstart 文件
[root@localhost ftp]# yum install -y system-config-kickstart
kickstart 图形下配置
安装方法选项
引导程序选项
分区信息
网络配置
验证
防火墙配置
软件包选择
最终形成的ks.cfg 文件
[root@localhost ~]# vim ks.cfg
# Disk partitioning information
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=120
part / --bytes-per-inode=4096 --fstype="ext3" --size=10000
part swap --bytes-per-inode=4096 --fstype="swap" --size=1000
%post --interpreter=/bin/bash
ADDRESS=`ifconfig | grep -i bcast | awk ' {print $2}'`
NUM=${ADDRESS##*.}
sed -i "s/HOSTNAME.*$/HOSTNAME=station$NUM.a.com/" /etc/sysconfig/network
%packages
@gnome-desktop
@development-libs
@development-tools
@x-software-development
@system-tools
@admin-tools
@gnome-software-development
@office
@graphical-internet
@text-internet
@editors
"ks.cfg" 62L, 1610C
将此文件复制到/var/ftp/pub
[root@localhost ~]# cp /ks.cfg /var/ftp/pub
[root@localhost ~]# service vsftpd restart //重启ftp
[root@localhost ~]# cd /tftpboot
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append ks=ftp://192.168.1.10/pub/ks.cfg ksdevice=eth0 initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
5.最终结果
最后只需把客户机与服务器连到同一块网卡并关闭vmware自带的dhcp加电就行了,系统会自动安装。