一、基本原理:
先了解一下PXE网络安装工作流程:
第一步:PXE Client(将要通过网络安装系统的主机)向DHCP服务器发送请求
第二步:DHCP服务器提供信息
第三步:PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server响应客户端请求并传送文件
第五步:请求下载自动应答文件
第六步:客户端安装操作系统
PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。
作为网路安装服务器需要提供TFTP Server 、DHCP Server、和HTTP Server(或者NFS Server、FTP Server) 这几个服务
二、配置过程:
配置PXE安装,要进行如下步骤:
① 配置DHCP,用于给客户端提供IP地址及其它信息
② 配置TFTP服务器,用于提供客户端PXE引导所必须的文件
③ 配置HTTP/FTP/NFS服务器,用于存放安装树
④ 配置Kickstart,用于自动应答安装#如需安装: yum -y install system-config-kickstart*
⑤ 使用PXE功能引导客户机
依照上述步骤
一、dhcp服务器的安装及配置:
1.安装dhcp软件包
创建一个目录将光盘挂载上去
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
安装dhcp服务器:
[root@localhost ~]# rpm -ivh /mnt/cdrom/Server/dhcp-3.0.5-21.el5.i386.rpm
2.配置dhcp文件
[root@localhost ~]# vim /etc/dhcpd.conf
重新启动dhcp服务器
[root@localhost ~]# service dhcpd start
设置 开机自启动:
[root@localhost ~]# chkconfig on
二、安装ftp服务器并配置
安装vsftp:
[root@localhost ~]# rpm -ivh /mnt/cdrom/Server/vsftpd-2.0.5-16.el5.i386.rpm
[root@localhost ~]# chkconfig on 设置开机启动
查看tftp是否安装
[root@localhost ~]# rpm -qa |grep tftp
安装完毕
[root@localhost ~]# rpm -ql tftp-server
编辑tftp配置文件
[root@localhost ~]# vim /etc/xinetd.d/tftp
tftp依赖于超级守护进程运行:
重新启动超级守护进程
[root@localhost ~]# service xinetd restart
Tftp访问时的的主目录位置为:
把通过网络引导的引导文件 内核及驱动文件 放到tftpboot下
[root@localhost tftpboot]# cp /mnt/cdrom/p_w_picpaths/pxeboot/initrd.img ./
[root@localhost tftpboot]# cp /mnt/cdrom/p_w_picpaths/pxeboot/vmlinuz ./
将引导文件拷贝制tftpboot目录下
[root@localhost tftpboot]# cp /usr/lib/syslinux/pxelinux.0 ./
引导文件需要配置 在tftpboot目录下创建一个配置文件目录
[root@localhost tftpboot]# mkdir pxelinux.cfg
拷贝一个配置文件并将其改名为default
[root@localhost tftpboot]# cp /mnt/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default
配置文件的内容
----------------------------------------------------------------------------------------------------------------------
default linux
# 默认启动的是label linux'中标记的启动内核
prompt 1
# 显示boot:提示符。为0时则不提示,将会直接启动default参数中指定的内容
timeout 600
# 在用户输入之前的超时时间,单位为 1/10 秒。
#install/boot.msg(/tftpboot目录下install目录中的boot.msg文件)。
display boot.msg
#显示某个文件的内容,注意文件的路径。默认是在 /tftpboot 目录下。也可以类似
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
#按下F1这样的键后显示的文件。注意路径。默认是 /tftpboot。注:syslinux 官方网站上说目前只能使用 F1-F10。
label linux # label指定你在boot:提示符下输入的关键字。
kernel vmlinuz # kernel 参数指定要启动的内核。同样要注意路径,默认是 /tftpboot 目录。
append initrd=initrd.img # append 指定追加给内核的参数,能够在 gurb 里使用的追加给内核的参数,在这里也都可以使用。
label text# 这个会启动 label text下标记的 kernel 和 initrd.img 文件(也就是文本安装模式).
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1label memtest86
kernel memtest
append -
修改之后的配置文件
说明:
ks 参数,使用 kickstart 安装(无人值守自动应答),指定 kickstart 文件的位置,如果不需要全自动安装可以不加该参数
Tftp服务器配置完成
三、改变dhcp的配置文档
四、切换到/var/ftp目录下 将光盘所有文件拷贝过去
[root@localhost ~]# cd /var/ftp/
[root@localhost ~]# cp -r /mnt/cdrom/. ./
五.、编辑一个后安装脚本 利用ip地址的最后一个值来改变主机名
---------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
ADDRESS=`/sbin/ifconfig eth0 |grep -i "inet\>" |awk '{print $2}'`
NUM=${ADDRESS##*.}
#modify hostname
sed -i -e "/HOSTNAME/c /HOSTNAME=sta$NUM.com" /etc/sysconfig/network
#modify ip address
sed -i -e "/BOOTPROTO/c BOOTPROTO=static\nIPADDRESS=192.168.2.$NUM\nNETMASTK=255.255.255.0" /etc/sysconfig/network-scripts/ifcfg-eth0
~
六、安装kickstart产生ks.cfg
[root@localhost yum.repos.d]# yum install system-config-kickstart (采用yum方式安装)
执行system-config-kickstart
产生ks.cfg
修改ks.cfg文件
将ks.cfg拷贝到/vfar/ftp目录下 并重启vsftp和tftp服务
[root@localhost ~]# cp ks.cfg /var/ftp