PXE概述
使用 Linux 预引导执行环境 (preboot execution environment, PXE) 可从网络接口而不是本地存储 引导服务器。对于 OS 安装,从基于 PXE 的 OS 分发映像引导目标服务器就像从 DVD 引导一样,不同之处在于介质位于网络中。要使用 PXE,您需要设置必需的网络基础结构:
· 运行 Linux 且已针对 PXE 引导进行配置的 DHCP 服务器。在本部分所列的示例中,DHCP 服务器也将是 PXE 服务器。
· 支持 PXE 引导的 TFTP 服务器。PXE 引导映像将位于 TFTP 服务器上。在本部分所列的示例中,DHCP 服务器将用作 PXE 服务器,TFTP 作为服务在其上运行。
· PXE 服务器上的 PXE 映像。在本部分所列的示例中,映像将是 Linux OS 分发安装介质,将用于在 PXE 客户机上执行远程 OS 安装。
· 具有支持网络引导的网络接口卡的 PXE 客户机(也称为“目标系统”)。该客户机将使用 PXE 映像通过网络进行引导。
注 - 您的 PXE 网络必须运行 IPv4 网络(IPv6 不支持 PXE 网络引导)。
1,安装DHCP服务
a--->查询是否安装DHCP
[root@localhost ~]# rpm -qa | grepdhcp-
dhcp-4.1.1-38.P1.el6.centos.x86_64
dhcp-common-4.1.1-38.P1.el6.centos.x86_64
显示已安装,未安装的话
#yum install httpd
b--->设置 DHCP 配置文件(例 /etc/dhcp/dhcpd.conf),以便只有 PXEClient(PXE 客户机)可以请求接收 PXEClient 响应。
subnet 192.168.100.0netmask 255.255.255.0 { #要分配的IP断
range 192.168.100.81192.168.100.100; #分配的范围
option routers192.168.100.1; #网关
}
c--->启动 DHCP 服务并且查看监听端口
# service dhcpd start
查看监听端口
[root@localhost ~]# ss -nul
UNCONN 0 0 *:67 *:* //dhcp 端口启动成功
d 将服务器配置为始终启动 DHCP 服务
# chkconfig dhcpdon
2,配置TFTP
a--->确定 PXE 服务器上是否已安装 TFTP 服务器软件包
# rpm -qa| grep tftp-server
[root@localhost ~]# rpm -qa |grep tftp-server
tftp-server-0.49-7.el6.x86_64
如未安装
yum install tftp-server
b--->编辑并保存 /etc/xinetd.d/tftp 文件。
service tftp
{
disable= yes #将yes改为no,启动。
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
c--->重新启动 inetd 服务器
# service xinetd restart
查看端口
[root@localhost ~]# ss -nul
UNCONN 0 0 *:69 *:* /tftp 端口启动成功
3--提供PEX的工作环境
a--->查询syslinux是否安装
[root@localhost ~]# rpm-qa syslinux
syslinux-4.02-8.el6.x86_64
4,提供引导内核文件
[root@node1 ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/
[root@node1 ~]# cp/var/ftp/pub/centos-6.4-x86_64/isolinux/{boot.msg,splash.jpg,vesamenu.c32}/var/lib/tftpboot/
[root@node1 ~]# ls /var/lib/tftpboot/
boot.msg pxelinux.0 splash.jpg vesamenu.c32
[root@node1 ~]# cp/var/ftp/pub/centos-6.4-x86_64/images/pxeboot/{vmlinuz,initrd.img}/var/lib/tftpboot/
[root@node1 ~]# ls /var/lib/tftpboot/
boot.msg initrd.img pxelinux.0 splash.jpg vesamenu.c32 vmlinuz
5,提供安装源:
a--->查询是否安装http
[root@localhostcdrom]# rpm -qa httpd
httpd-2.2.15-29.el6.centos.x86_64
如果未安装的话
yum install httpd
然后再创建 mkdir /var/www/html/centos/6/x84_64
再用 mount --bind /media/cdrom /var/www/html/centos/6/x84_64
6提供ks.cfg文件
用# syslinux-config-kickstart 打开图形配置接口
在图形配置下,选系统所安装的文件包,然后保存到一个路径下,一般在/目录下,
然后
cp ks.cfg /var/www/html/centos6.cfg
7 修改default文件和centos6.cfg配置文件内容
[root@localhost cdrom]# vim/var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.5!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img textks=http://192.168.100.10/centos6.cfg # 配置KS去哪个地方下载.cfg文件,由于本机ip为192.168.100.10,所以配置为192.168.100.10
label vesa
menu labelInstall system with ^basic video driver
kernel vmlinuz
appendinitrd=initrd.img xdriver=vesa nomodeset
[root@localhost cdrom]# vim /var/www/html/centos6.cfg
# Use network installation
url --url="http://192.168.100.10/centos6"
repo --name="CentOS"--baseurl=http://192.168.100.10/centos6/ --cost=100
# Root password
rootpw --iscrypted $1$KP6jIcos$vyZpG9W56Lwi6zrCtaPFN.
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
zerombr yes #这个地方加上此条命令,能够自动装载
clearpart --all
# Disk partitioning information
part / --fstype="ext4" --size=1000
part /boot --fstype="ext4" --size=10000
part /home --fstype="ext4" --size=10000
part /var --fstype="ext4" --size=10000
part /tmp --fstype="ext4" --size=10000
本文出自 “Linux” 博客,请务必保留此出处http://clarence.blog.51cto.com/8161461/1533039
原文:http://clarence.blog.51cto.com/8161461/1533039