By:Crushlinux
发扬开源精神,普及 linux 教育 - 1 -
作者:Crushlinux
时间:2010-08-02
E-mail:[email protected]
Blog:http://crushlinux.blog.51cto.com
------------------------------------------------------
RHEL5下
DHCP+TFTP+NFS+KICKSTART
PXE无人职守安装
PXE原理图:
实现原理:
1.1说明:
PXE Client:表示需要安装操作系统的机器,统称客户端。
TFTP Server:表示安装TFTPD服务的机器。
DHCP Server:表示安装DHCPD服务的机器。
在实际的操作中往往将TFTP Server,DHCP Server部署在一台机器上,统称服务端
1.2流程:
(1)客户端向服务端上的DHCP发送请求IP地址消息,DHCP检查客户端是否合法(主要检测客户端的网卡地址),如果合法则返回客户端的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给客户端发送pxelinux.0。
By:Crushlinux
发扬开源精神,普及 linux 教育 - 2 -
(2)客户端向服务器上的TFTP发送获取pxelinux.0消息,TFTP接受到消息之后再向客户端发送pxelinux.0大小信息,试探客户端是否满意。当TFTP收到客户端返回的同意大小信息之后,正式向客户端发送pxelinux.0。
(3)客户端运行接收到的pxelinux.0文件
(4) 客户端向TFTP发送针对本机的配置文件信息(记录在TFTP上的pxelinux.cfg目录下),
TFTP将配置文件发给客户端,客户端根据配置文件执行后续操作。
(5)客户端向TFTP发送请求Linux内核信息,TFTP接受到消息之后将内核发送给客户端
(6)客户端向TFTP发送跟文件请求,TFTP接受到消息之后返回Linux根文件系统
(7)客户端启动Linux内核
(8)客户端进入自动安装模式
1.3 适用环境
(1)机器无光驱或者光驱损坏,需要网络安装Linux操作系统
(2)由于人品问题到时系统经常瘫痪,需要隔三差五装系统
(3)需要大规模批量部署Linux操作系统(应用于企业)
环境部署:
服务端IP:192.168.200.104
[root@crushlinux4 ~]# service iptables stop
[root@crushlinux4 ~]# setenforce 0
[root@crushlinux4 ~]# mount /dev/cdrom /mnt/
[root@crushlinux4 ~]# vi /etc/yum.repos.d/yum.repo
[base]
name=base
baseurl=file:///mnt/Server
enable=1
gpgcheck=0
[root@crushlinux4 ~]# rpm -qa |grep tftp
tftp-server-0.49-2
[root@crushlinux4 ~]# rpm -qa |grep dhcp
dhcpv6-client-1.0.10-18.el5
dhcp-3.0.5-23.el5
[root@crushlinux4 ~]# rpm -qa |grep nfs
nfs-utils-lib-1.0.8-7.6.el5
nfs-utils-1.0.9-44.el5
[root@crushlinux4 ~]# rpm -qa |grep portmap
portmap-4.0-65.2.2.1
[root@crushlinux4 /]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
[root@crushlinux4 ~]# vi /etc/dhcpd.conf ddns-update-style interim;
By:Crushlinux
发扬开源精神,普及 linux 教育 - 3 -
ignore client-updates;
subnet 192.168.200.0 netmask 255.255.255.0 {
option routers 192.168.200.1; option subnet-mask 255.255.255.0;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.200.128 192.168.200.254; default-lease-time 21600; max-lease-time 43200; filename "pxelinux.0"; next-server 192.168.200.104; }
[root@crushlinux4 ~]# service dhcpd start
[root@crushlinux4 ~]# cd /tftpboot/
[root@crushlinux4 tftpboot]# cp /mnt/isolinux/* ./
[root@crushlinux4 tftpboot]# mkdir pxelinux.cfg
[root@crushlinux4 tftpboot]# mv isolinux.cfg pxelinux.cfg/default
[root@crushlinux4 tftpboot]# cp /usr/lib/syslinux/pxelinux.0 ./
[root@crushlinux4 tftpboot]# vi /etc/xinetd.d/tftp
修改文件第14行:将disable = yes 更改成no disable = no
[root@crushlinux4 tftpboot]# service xinetd restart
[root@crushlinux4 tftpboot]# vi /tftpboot/pxelinux.cfg/default
修改文件第3,12行: timeout 10 append ks=nfs:192.168.200.104:/pub/ks.cfg initrd=initrd.img
[root@crushlinux4 tftpboot]# yum -y install *kickstart*
[root@crushlinux4 ~]# system-config-kickstart
By:Crushlinux
发扬开源精神,普及 linux 教育 - 4 -
By:Crushlinux
发扬开源精神,普及 linux 教育 - 5 -
By:Crushlinux
发扬开源精神,普及 linux 教育 - 6 -
By:Crushlinux
发扬开源精神,普及 linux 教育 - 7 -
By:Crushlinux
发扬开源精神,普及 linux 教育 - 8 -
[root@crushlinux4 ~]# mkdir /pub
[root@crushlinux4 ~]# mv /root/ks.cfg /pub/
[root@crushlinux4 ~]# chmod 757 /pub/ks.cfg
[root@crushlinux4 ~]# vi /pub/ks.cfg
By:Crushlinux
发扬开源精神,普及 linux 教育 - 9 -
查看第6,10行内容没有请手动添加
key --skip 跳过安装序列号,需要手动修改添加
clearpart --all --initlabel 初始化所有分区(裸机安装最好添加此行)
ks.cfg脚本内容: #platform=x86, AMD64, 或 Intel EM64T # System authorization information auth --useshadow --enablemd5 # System bootloader configuration bootloader --location=mbr key --skip # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Use graphical install graphical # Firewall configuration firewall --disabled # Run the Setup Agent on first boot firstboot --disable # System keyboard keyboard us # System language lang zh_CN # Installation logging level logging --level=info # Use NFS installation media nfs --server=192.168.200.104 --dir=/mnt # Network information network --bootproto=dhcp --device=eth0 --onboot=on # Reboot after installation reboot #Root password rootpw --iscrypted $1$1XcrmvYC$NMhnjtW6I4QUDWpECSK6L0
# SELinux configuration selinux --disabled # System timezone timezone Asia/Shanghai # Install OS instead of upgrade install # X Window System configuration information xconfig --defaultdesktop=GNOME --depth=8 --resolution=1024x768
By:Crushlinux
发扬开源精神,普及 linux 教育 - 10 -
# Disk partitioning information part /boot --bytes-per-inode=4096 --fstype="ext3" --size=100 part swap --asprimary --bytes-per-inode=4096 --fstype="swap" --size=2048 part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages @base @gnome-desktop @development-libs @admin-tools @base-x @legacy-software-development @development-tools @chinese-support @gnome-software-development @x-software-development @openfabrics-enterprise-distribution @java-development @legacy-software-support @graphical-internet @system-tools @text-internet @ruby @java
[root@crushlinux4 ~]# vi /etc/exports /mnt *(ro) /pub *(ro)
[root@crushlinux4 ~]# service dhcpd restart
[root@crushlinux4 ~]# service xinetd restart
[root@crushlinux4 ~]# service nfs restart
环境测试:
新建一虚拟机网络模式启动与PXE Server用同一网卡
实验拓展:
问题:使用system-config-kickstart来配置ks.cfg文件时,在软件包选择栏中提示"由于下载软件包信息失败,软件包选择被禁止"
解决方法:
创建一个yum仓库名字一定要是“base”
By:Crushlinux
发扬开源精神,普及 linux 教育 - 11 -
[base]
name=base
baseurl=file:///mnt/cdrom/Server
enabled=1
gpgcheck=0
配置kickstart控制台多lable
[root@crushlinux4 ~]# cd /tftpboot/pxelinux.cfg/
[root@crushlinux4 pxelinux.cfg]# vi default default linux prompt 1 timeout 600 display boot.msg F1 boot.msg F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg label 1 kernel vmlinuz append ks=nfs:192.168.200.104:/pub/1.cfg initrd=initrd.img label 2 kernel vmlinuz append ks=nfs:192.168.200.104:/pub/2.cfg initrd=initrd.img label 3 kernel vmlinuz append ks=nfs:192.168.200.104:/pub/3.cfg initrd=initrd.img label 4 kernel vmlinuz append ks=nfs:192.168.200.104:/pub/4.cfg initrd=initrd.img
[root@crushlinux4 pxelinux.cfg]# cd ../
[root@crushlinux4 tftpboot]# vi boot.msg ^L ^Xsplash.lss
- To install or upgrade in graphical mode, press the ^O01
- To install or upgrade in text mode, type: ^O01linux text
- Use the function keys listed below for more information.
^O0f[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07
By:Crushlinux
发扬开源精神,普及 linux 教育 - 12 -
lable 1 --> 1 lable 2 --> 2 lable 3 --> 3 lable 4 --> 4
[root@crushlinux4 tftpboot]# cd /pub/
[root@crushlinux4 pub]# mv ks.cfg 1.cfg
[root@crushlinux4 pub]# cp 1.cfg 2.cfg
[root@crushlinux4 pub]# cp 1.cfg 3.cfg
[root@crushlinux4 pub]# cp 1.cfg 4.cfg
环境测试:
新建一虚拟机网络模式启动与PXE Server用同一网卡