分类: LINUX
2010-03-04 13:14:08
1.PXE介绍
PXE是Pre-boot eXcutition Environment的缩写,Intel开发的通过网络远程引导系统的技术。
除了软盘、光盘、U盘等,我们有了新的选择。更吸引人的地方是,可以做无盘工作站,想想以前学
校的机房,呵呵。
要想使用PXE引导系统,客户端首先需要BIOS支持,有个网络启动的选项。集成网卡的机器一般都有
,独立网卡需要有个引导ROM插在网卡上,里面存放的是PXE客户端程序。
服务器端需要配置DHCP服务,TFTP服务,放置客户机引导文件
工作方式:
PXE服务器以广播方式送出自己的地址;
DHCP服务器动态分配网络中的IP地址;
客户端启动,读取bootrom里的pxe代码,获得动态IP地址,请求dhcp服务器配置60号选项;
客户端连接服务器用TFTP或者MTFTP协议下载启动软件包并在内存中执行;
客户端以实模式(Real Mode)运行终端操作系统。
简单原理介绍:无光软驱服务器通过PXE网卡启动,从dhcp服务器获取IP 通过tftp 取到pxelinux配置文件,按配置文件进行启动centos 文件进行引导系统安装。 2.环境说明 3.安装配置过程及基本讲解 1)tftp的文件配置 放置的位置为:/etc/xinetd.d/tftp 2)配置nfs 3)配置dhcp ddns-update-style interim; option routers 192.168.1.132; /etc/init.d/dhcpd start 启动服务 4)配置pxe所需要的文件 4、测试 首先要关闭防火墙 #service iptables stop 其次检测69端口是否开启 #netstat -nlp | grep udp udp 0 0 0.0.0.0:33593 0.0.0.0:* 1455/rpc.statd udp 0 0 0.0.0.0:41666 0.0.0.0:* 1250/avahi-daemon: udp 0 0 0.0.0.0:68 0.0.0.0:* 1459/dhclient udp 0 0 0.0.0.0:69 0.0.0.0:* 1530/xinetd 安装的过程中首先在BIOS中设置成从网络启动,然后在boot界面输入linux 之后选择NFS安装系统即可。 5.相关的配置脚本 #!/bin/sh ROOT=`whoami` if [ $# -lt 1 ]; then echo "Please enter the iso file and the mount directory" echo "like xx.sh Fedora12.iso /mnt" exit 1 fi #mount the iso file umount $2 if mount -o loop $1 $2 ; then # find a good place to mount the iso file echo "mount the os file" else echo "Can not mount the os file!" exit 1 fi #make a directory to export the install files if [ $ROOT != "root" ]; then echo "You are not root!" exit 1 fi if [ ! -e /tftpboot ]; then echo "make the tftpboot" mkdir /tftpboot fi if [ ! -e /tftpboot/pxelinux.cfg ]; then echo "make the /tftpboot/pxelinux.cfg" mkdir /tftpboot/pxelinux.cfg fi file1="/usr/lib/syslinux/pxelinux.0" file2="/$2/isolinux/vmlinuz" file3="/$2/isolinux/initrd.img" file4="/$2/isolinux/isolinux.cfg" #copy the files for i in $file1 $file2 $file3 do if [ -e $i ] ; then cp $i /tftpboot/ else echo "$i does not exist!" fi done if [ -e $file4 ] ; then cp -f $file4 /tftpboot/pxelinux.cfg/default else echo "$file4 does not exist!" fi #export the directories echo "/tftpboot *(ro,sync)" > /etc/exports echo "$2 *(ro,sync)" >> /etc/exports exportfs -a showmount -e localhost #start all service and prepare for the network install /etc/rc.d/init.d/dhcpd restart /etc/init.d/portmap restart /etc/init.d/nfs restart /etc/init.d/xinetd restart 6.总结 这个过程中可以还可以将要安装的系统换成redhat或是fedora。后续的脚本的编写还有待完善,有不足的地方也不少,最好大家能够不断的修改玩善最好了! 7.配置文件详解 parameters(参数): declarations(声明): option(选项):
本文测试环境及用到的软件
Server: centos 5.4 dhcp nfs tftp ip:192.168.1.132 (此IP只需要与服务器网卡相连,不管是什么都可以) feedom.net
安装相应的软件:yum -y install dhcp* nfs* tftp*
service tftp
{
disable = no #默认是yes 改为no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot //相关的选项可以查看tftp的配置文件说明
per_source = 11
cps = 100 2
flags = IPv4
}
重启xinetd服务: /etc/init.d/xinetd restart
查看tftp 是否启动:# chkconfig --list |grep tftp
tftp: on
mount -o loop /iso/CentOS-5.4-i386-bin.iso /mnt #挂载的镜像文件,也可以挂载光驱
echo "/tftpboot *(ro,sync)" > /etc/exports
echo "/mnt *(ro,sync)" > /etc/exports #此二步设置共享的目录
exportfs -a #使配置生效
/etc/init.d/portmap start &&/etc/init.d/nfs start #重启服务
Showmount -e localhost #看查共享的目录
Export list for localhost:
/mnt *
/tftpboot *
直接copy配置
[code]# more /etc/dhcpd.conf中国网管联盟
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.132; #本地IP
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.1.12 192.168.1.254; #要分区的IP
default-lease-time 21600;
max-lease-time 43200;
# Group the PXE bootable hosts together
# PXE-specific configuration directives...
next-server 192.168.1.132;
filename "/pxelinux.0"; #方便查找配置文件
}
Mkdir /tftpboot/pxelinux.cfg
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
cp /mnt/isolinux/vmlinuz /tftpboot/
cp /mnt/isolinux/initrd.img /tftpboot/
dhcpd.conf配置的有关说明:
ddns-update-style 配置DHCP-DNS互动更新模式
default-lease-time 指定缺省租赁时间的长度,单位是秒
max-lease-time 指定最大租赁时间长度,单位是秒
hardware 指定网卡接口类型和MAC地址
server-name 通知DHCP客户服务器名称
get-lease-hostnames flag 检查客户端使用的IP地址
fixed-address ip 分配给客户端一个固定的地址
authritative 拒绝不正确的IP地址的要求 网管联盟
shared-network 用来告知是否一些子网络分享相同网络
subnet 描述一个IP地址是否属于该子网
range 起始IP 终止IP 提供动态分配IP 的范围
host 主机名称 参考特别的主机
group 为一组参数提供声明
allow unknown-clients或deny unknown-client 是否动态分配IP给未知的使用者
allow bootp或deny bootp 是否响应激活查询
allow booting或deny booting 是否响应使用者查询
filename 开始启动文件的名称,应用于无盘工作站
next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站
subnet-mask 为客户端设定子网掩码
domain-name 为客户端指明DNS名字
domain-name-servers 为客户端指明DNS服务器IP地址
host-name 为客户端指定主机名称
routers 为客户端设定默认网关
broadcast-address 为客户端设定广播地址
ntp-server 为客户端设定网络时间服务器IP地址
time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。