本文来源于:
一、实现过程
客户端通过网卡PXE启动-->连接到DHCP服务器-->获得IP地址-->客户端从TFTP服务器下载pxelinux.0,根据配置文件 (default)下载指定的vmlinuz,initrd-->启动系统内核,加载初始化镜像文件(加载参数是否有ks)-->安装初始化完成-->到 指定的位置(NFS|FTP|HTTP服务器上)下载软件包进行安装。
服务器端根据不同的设置,可实现RHEL的手动或自动安装,配置救援模式。还可用于同时安装其他版本的LINUX,如OPEN SUSE LINUX,UBUNTU,Fedora,CentOS等,服务器端配置略有不同。
这里测试的环境是在CentOS6.0上面搭建服务,PXE网络启动安装RHEL6.0的系统。本文比较了在RHEL5.x(适用于CentOS5.x)环境中搭建PXE无人职守安装服务器的差异,并进行了注解。
注:对于RHEL5.x(适用于CentOS5.x)以下称“5的版本”
二、配置步骤
1、最小化安装配置CentOS6.0系统;
2、安装配置TFTP;3、安装配置DHCP;
4、安装配置NFS或HTTP,FTP(ubuntu的安装源必须放在HTTP服务器下);
5、要实现自动安装,需配置KickStart;
6、要实现自动分配主机名,需要配置DNS。
CentOS6.0默认使用NetworkManager管理网络连接,这是一个Gnome环境的网络管理工具。最小化安装的系统并不会安装NetworkManager服务程序,所以在命令行中对ifcfg-eth0做如下修改,并重启网络服务。
HWADDR="00:0C:29:AD:FE:AC"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.166.200"
NETMASK="255.255.255.0"
GATEWAY="192.168.166.254"
[root@365linux ~]# service network restart
1、安装tftp服务器端
2、安装dhcp服务器
3、安装nfs服务器
4、安装syslinux
5、安装网络引导目录相关文件system-config-netboot(可选,但装了方便配置很多。经测试RHEL6包括CentOS6已经移 除了system-config-netboot软件包,红帽建议使用Cobbler和Red Hat Satellite,当然后者是要付费的。)
安装使用的命令如下:
[root@365linux ~]# yum install -y dhcp
[root@365linux ~]# yum install -y nfs-utils rpcbind //注:rpcbind是端口地图服务,在5的版本里面被称作portmap
[root@365linux ~]# yum install -y syslinux
——————DHCP的配置————————
[root@365linux ~]# vim /etc/dhcp/dhcpd.conf
option domain-name "365linux.com"; //搜索域;
option domain-name-servers 192.168.166.200, 202.96.128.86; //指定DNS服务器地址;
default-lease-time 600; //租约时间;
max-lease-time 7200;
log-facility local7; //日志方式;
subnet 192.168.166.0 netmask 255.255.255.0 { //网段,要与dhcpd监听的网卡处在同一网段;
range dynamic-bootp 192.168.166.1 192.168.166.253; //分配IP地址范围;
option routers 192.168.166.254; //指定客户端路由;
filename "linux-install/pxelinux.0"; //pxe启动引导文件,放置在tftp的根目录下,使用相对路径;
server-name "192.168.166.200"; //网络引导服务器的IP,也可以使用next-server。
}
——————TFTP的配置————————
disable = no //修改yes为no,xinetd超级守护进程启动时即启动被托管的tftp服务器。
注:值得一提的是,在5的版本中,tftp服务器的根目录为/tftpboot,而在6的版本中为/var/lib/tftpboot/。
——————NFS的配置————————
[root@365linux ~]# vim /etc/exports
/systemiso/rhel6 *(ro,sync)
NFS 共享目录,将要安装的系统ISO镜像放在此目录下。所有网段内的主机只读访问,光盘镜像就放到这里来,NFS方式在局域网内最方便速度最快,而且不用将系统ISO解开。
第四歩:创建tftp目录下引导文件注意:如果是RHEL6(CentOS6)的版本,即使不解开ISO,也需要将镜像中的images目录提取出来放到NFS镜像目录。
在5的版本中,如果安装了system-config-netboot,那么在/tftpboot的目录下自动生成一个linux-install文件夹,我们将所有的文件统一放到这个目录下面,以便需要提供多个系统安装时方便管理。
在RHEL6版本里没有该软件包,我们只能手动一步步建立需要的目录跟文件了。
创建PXE工作的根目录,在DHCP服务器中定义过,保持目录名一致。
注:5版本里面路径是/usr/lib/syslinux/pxelinux.0
复制PXE网络引导程序到工作目录。该程序有syslinux软件包提供,理论上光盘中的isolinux/isolinux.bin也可以。
挂载光盘到系统目录,我们需要几个系统安装引导的文件。
[root@365linux ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/linux-install/pxelinux.cfg/default
从光盘中复制启动引导配置菜单到工作目录的下的pxelinux.cfg目录下。稍后根据要引导安装的系统修改菜单的内容。
一个字符终端界面的背景图,可以写一些提示上去。5版本主要靠这个文件实现都系统引导的提示。
如果你想使用RHEL6版本支持的的图形菜单的话,需要这个文件。
为启动菜单创建一个背景图,我这里是定制的,大小为640×480像素的jpg图片,你可以使用默认的。
第五歩:提取准备安装的系统的安装引导内核文件[root@365linux ~]# umount /mnt
[root@365linux ~]# mount -o loop /systemiso/rhel6/rhel-server-6.0-i386-dvd.iso /mnt
[root@365linux mnt]# cd /mnt/images/pxeboot/
[root@365linux isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/linux-install/rhel6/
从RHEL6的光盘中提取内核vmlinuz和驱动镜像initrd.img到安装工作目录下的RHEL6子目录。
第六步:针对性的修改default文件,形成菜单。default pxelinux.cfg/vesamenu.c32 //默认使用图形菜单,注意这个文件的相对路径;
#prompt 1 //不使用图形菜单,而是用boot.msg定义的菜单时,要启用该项;
timeout 600 //等待时间60秒
#display pxelinux.cfg/boot.msg //文本背景模式,我注释掉了;
menu background pxelinux.cfg/gdlc_splash.jpg //图形背景模式;
menu title Welcome to gdlc installation system! //菜单标题;
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 rhel6 //菜单选项,这里有两个,安装RHEL6和从本地启动。
menu label ^Install or upgrade RHEL6 X86
kernel rhel6/vmlinuz
append initrd=rhel6/initrd.img
label local
menu label Boot from ^local drive
menu default //60秒后默认加载的选项。
localboot 0xffff //启动本地系统。
[root@365linux ~]# service xinetd restart
[root@365linux ~]# /etc/init.d/rpcbind restart
[root@365linux ~]# /etc/init.d/nfs restart
[root@365linux ~]# chkconfig xinetd on
[root@365linux ~]# chkconfig rpcbind on
[root@365linux ~]# chkconfig nfs on
安装过程参考:
五、其他功能1、
2、。
本文来源于: