PXE网络装机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PXE网络装机相关的知识,希望对你有一定的参考价值。
##什么是PXE?
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术, 工作于Client/Server的网络模式, 只想hi工作站通过网络从远程服务器下载镜像, 并由此支持通过网络启动操作系统, 在启动过程中, 终端要求服务器分配IP地址, 在用TFTP(Trivial file transfer protocol)或MTFTP(Multicast Trivial File Transfer Protocol)协议卸载一个启动软件包到本机内存中执行, 这个启动软件包完成终端基本软件设置, 从而引导预先安装服务器中的操作系统. PXE可以引导多种操作系统, 如: Windows 95/98/2000/windows 2008/xp/win 7/win8;
PXE:ip:192.168.15.11
1. 配置静态IP地址、修改主机名;
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 #修改eth0网卡;
DEVICE=eth0
HWADDR=00:0C:29:5B:40:E0
TYPE=Ethernet
UUID=9315dbdf-ae02-4814-af4c-00e29504e82d
ONBOOT=yes #开机启动网卡;
NM_CONTROLLED=yes
BOOTPROTO=static #设置为静态模式;
IPADDR=192.168.15.11 #设置IP地址;
NETMASK=255.255.255.0 #设置子网掩码;
GATEWAY=192.168.5.2 #设置网关;
DNS1=114.114.114.114 #设置DNS;
[[email protected] ~]# vim /etc/sysconfig/network #修改主机名;
NETWORKING=yes
HOSTNAME=PXE
[[email protected] ~]# service network restart #重启网络服务;
2. 搭建本地yum源 (插上系统光盘); (这一步,有同学有错误,大家还可以参考http://www.apelearn.com/study_v2/chapter12.html#id2)
[[email protected] ~]# mount /dev/cdrom /media/ #挂载系统光盘;
[[email protected] ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base #仓库名称;
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=file:///media #修改光盘挂载点;
gpgcheck=1 #是否检查GPG,一种秘钥方式签名;
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #GPG公钥存放位置;
[[email protected] ~]# yum -y clean all #清除yum缓存;
3. 安装PXE所需服务;
dhcp: 主机配置协议, 给客户端提供IP地址;
tftp-server: tftp服务器端, 提供系统安装所需文件;
xinetd: tftp服务超级守护进程, 用于唤醒tftp服务;
httpd: 基于http服务提供安装源;
syslinux: 提供pxelinux.0文件, 此文件用于引导系统, 相当于bootloader;
[[email protected] ~]# yum -y install dhcp tftp-server xinetd syslinux httpd
4. 配置dhcp服务;
dhcp服务的配置文件默认是/etc/dhcp/dhcpd.conf, 但此文件默认是没任何配置的, 此服务提供了一个参考文件/usr/share/doc/dhcp*/dhcpd.conf.sample,复制此文件覆盖原配置文件, 直接修改即可。
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf #dhcp服务配置
====================================================
subnet 192.168.15.0 netmask 255.255.255.0 { #提供dhcp服务的网段;
range 192.168.15.20 192.168.15.30; #地址池;
option domain-name "internal.example.org"; #分配dns域;
option routers 192.168.15.11; #网关;
next-server 192.168.15.11; #tftp服务器地址;
filename "pxelinux.0"; #PXE引导文件;
default-lease-time 600; #默认租约时长;
max-lease-time 7200; #最大租约时长;
option domain-name-servers 192.168.15.11; #分配dns地址;
}
====================================================
[[email protected] ~]# service dhcpd configtest #测试配置dhcp语法是否有误;
Syntax: OK
[[email protected] ~]# service dhcpd start #启动dhcp服务;
Starting dhcpd: [ OK ]
[[email protected] ~]# chkconfig dhcpd on #将dhcp服务设置开启自启;
5. 配置tftp服务;
xinetd是tftp的超级守护进程, 即tftp是xinetd的子服务, 修改配置文件, 确保tftp服务没有被禁用
[[email protected] ~]# vim /etc/xinetd.d/tftp
[[email protected] ~]# service xinetd start #启动xinetd服务;
Starting xinetd: [ OK ]
[[email protected] ~]# chkconfig tftp on #将tftp服务设置为开机自启;
6. 提供引导内核等文件 (将光盘中PXE所需文件复制到/var/lib/tftpboot);
[[email protected] ~]# cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[[email protected] ~]# cd /media/isolinux/
[[email protected] isolinux]# cp boot.msg /var/lib/tftpboot/
[[email protected] isolinux]# cp splash.jpg /var/lib/tftpboot/
[[email protected] isolinux]# cp vesamenu.c32 /var/lib/tftpboot/
[[email protected] isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
[[email protected] isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[[email protected] isolinux]# ls /var/lib/tftpboot/
boot.msg initrd.img splash.jpg vesamenu.c32 vmlinuz
提供PXE工作环境
[[email protected] isolinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
提供安装源
[[email protected] ~]# mkdir /var/www/html/yum
[[email protected] ~]# mount --bind /media/ /var/www/html/yum/
[[email protected] ~]# service httpd start
[[email protected] ~]# chkconfig httpd on
提供kickstart文件
kickstart文件可以自己创建(需安装system-config-kickstart.noarch工具), 也可以复制系统文件直接修改。
这里我们就不演示创建过程了, 直接复制文件修改(此文件/root/anaconda-ks.cfg)
[[email protected] ~]# cp anaconda-ks.cfg /var/www/html/ks.cfg
[[email protected] ~]# chmod +r /var/www/html/ks.cfg
[[email protected] ~]# vim /var/www/html/ks.cfg
================添加以下两项, 目标指向安装源===================
url --url=http://192.168.15.11/yum
repo --name="Centos" --baseurl=http://192.168.15.11/yum --cost=100
====================================================
为了启动时能够加载kickstart文件, 还需要修改/var/lib/tftpboot/pxelinux.cfg/default文件, 添加ks文件的位置。
[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
====================================================
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.15.11/ks.cfg #指定ks文件;
====================================================
7. 关闭iptables、selinux防火墙;
[[email protected] ~]# iptables -F
[[email protected] ~]# iptables -X
[[email protected] ~]# service iptables stop
[[email protected] ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
finally:测试
1. 将客户机设置为网卡启动
如有错误请指正;
以上是关于PXE网络装机的主要内容,如果未能解决你的问题,请参考以下文章