配置原理和安装思路:

1、客户端网卡在主机启动初始化时通过网卡内置的PXE芯片启动DHCP进程向server获取IP地址,网卡获取到IP地址后,server会提供给client一个下载Bootloader的指令,就是dhcp服务器中dhcpd.conf配置文件中filename这个选项。

2、网卡PXE芯片中已经包含了tftp-client程序,获取到IP地址后,网卡会启动tftp服务去向tftp-server请求传输这个Bootloader文件PXElinux.0。当Bootloader加载后我们可以看到主机屏幕上有信息显示,而这个画面就是我们在用光盘介质安装linux的时候看到的第一个画面。画面提示选择图形界面安装还是linux text字符界面安装等信息。如果在server端的tftpboot目录下只有这个文件,那么客户机会一直停留在boot这个地方,因为没有default这个Bootloader配置文件告诉机器下一步加载哪个系统内核,default配置文件的作用是告诉主机从哪里去加载操作系统内核,这个时候如果我们按照正常光碟装机时会看到提示:输入回车或者linux text等信息。Bootloader会去调用default配置文件中的操作系统内核文件。

3、default 文件配置好之后,接着就是指定内核文件,这个在default文件最后。就是vmlinuz,initrd.img *.msg 这几个文件。

4、到这一步加载成功后,系统就按照我们平常光碟装系统看到的过程一模一样了,选择语言,鼠标,键盘等,但因为有了KS这个自动安装脚步,这些都不要我们手工去指定,全部会自动完成。


系统环境:

这里使用nfs、dhcp、tftp组建无人值守安装:

Red Hat Enterprise Linux 5 (2.6.18-8.el5)

软件环境:

dhcp-3.0.5-3.el5 # 提供动态主机地址分配功能

nfs-utils-1.0.9-16.el5 #提供类UNIX架构的操作系统间文件共享功能

syslinux-3.11-4 #提供系统的启动镜像文件.

tftp-server-0.42-3.1 #提供无需验证的TFTP服务器端

xinetd-2.3.14-10.el5 #提供超级服务器管理

[上述软件均可从RHEL5系统安装盘中获取]


一、准备RHEL5安装源:

 1、创建一个安装源目录

[root@david ~ 18:54 &1]#mkdir -pv /install/rhel5

2、将iso文件挂载到本机

[root@david ~ 19:05 &2]#mount /dev/cdrom /mnt/

3、将iso文件拷贝到安装源目录下

[root@david ~ 19:06 &3]#cp -rf /mnt/* /install/rhel5/


二、安装所需要的模块:

1、进入到rpm包目录

[root@david ~ 19:14 &4]#cd /install/rhel5/Server/

2、安装所需要的模块,执行‘如果软件包已经安装可以覆盖命令--replacepkgs’

[root@david Server 19:26 &5]#rpm -ivh tftp-server-0.42-3.1.i386.rpm dhcp-3.0.5-3.el5.i386.rpm nfs-utils-1.0.9-16.el5.i386.rpm syslinux-3.11-4.i386.rpm xinetd-2.3.14-10.el5.i386.rpm --replacepkgs

 

三、配置nfs服务:

配置nfs共享文件

[root@david Server 19:30 &6]#vim /etc/exports

(添加配置参数,将安装源共享给所有主机,赋予只读权限)

/install/rhel5 *(ro)


四、配置PXE引导目录及文件:

1、建立TFTP根目录及客户端配置目录

[root@david Server 19:34 &7]#mkdir -pv /tftpboot/pxelinux.cfg/

2、 拷贝系统引导文件

[root@david Server 19:37 &8]#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

3、拷贝安装源的内核文件   

[root@david Server 19:46 &9]#cp /install/rhel5/p_w_picpaths/pxeboot/vmlinuz /tftpboot/

4、拷贝安装源的ramdisk初始化文件

[root@david Server 19:46 &10]#cp /install/rhel5/p_w_picpaths/pxeboot/initrd.img /tftpboot/


五、建立引导客户端的配置文件:

建立客户机默认启动应用文件

[root@david ~ 21:26 &8]#cp /install/rhel5/isolinux/*.msg /tftpboot/pxelinux.cfg/  
[root@david Server 19:50 &11]#vim /tftpboot/pxelinux.cfg/default
default rhel5   #默认标签设为rhel5
prompt 1        #开启显示过程信息
timeout 30      #检测超时等待的时间值
label rhel5     #标签为rhel5的启动加载情况
kernel vmlinuz  #定义内核文件
append initrd=initrd.img ks=nfs:192.168.0.122:/install/rhel5/ks.cfg       #重点,不能搞错路径,否则无法加载网卡启动文件


六、配置DHCP服务器:

配置DHCP文件

[root@david Server 20:25 &12]#vim /etc/dhcpd.conf
ddns-update-style none; #动态dns更新方式为NONE
ignore client-updates; #忽略客户端更新
subnet 192.168.0.0 netmask 255.255.255.0 { #关键部位,宣告自己的DNS服务器服务的网段
option routers 192.168.0.1; # 相当于作用域选项的路由器选项(003)
option subnet-mask 255.255.255.0; # 子网掩码选项
option domain-name "localdomain"; #相当于DNS后缀(015)
option domain-name-servers 202.96.209.6,202.96.209.133; #相当于DNS服务器地址(006)
default-lease-time 21600; #默认租约 6小时
max-lease-time 43200; #最大租约12小时
range 192.168.0.100 192.168.0.200; #关键部位 : 定义作用域(地址池) ----一段可供DHCP服务器分配的地址范围.
next-server 192.168.0.122; #指定TFTP服务器的地址
filename "pxelinux.0"; #该文件位于tftp服务器中指定的/tftpboot/目录中,是PXE启动时用到的BOOTLOADER文件.
#host PC001 { #如有需要,可以为个别客户机设置IP/MAC地址绑定,专业称之为保留.这里PC001是主机名.
#hardware ethernet 00:0C:29:de:44:82; #客户机的MAC地址,在裸机开机启动时从网卡启动看到的地址.
#fixed-address 192.168.10.101; #为客户机保留的地址,绑定到固定的IP.
#}
}

  

七、配置tftp服务器:

[root@david Server 20:41 &13]#vim /etc/xinetd.d/tftp

找到disable这一行,将yes换成no,并且保存退出


八、在/install/rhel5目录下创建自动安装配置文件 ks.cfg:

1、可以复制本机安装配置文件进行修改

[root@david Server 20:44 &14]#cp /root/anaconda-ks.cfg /install/rhel5/ks.cfg

2、修改权限

[root@david Server 20:49 &15]#chmod +r /install/rhel5/ks.cfg

3、修改安装配置文件

[root@david Server 20:50 &16]#vim /install/rhel5/ks.cfg
# Kickstart file automatically generated by anaconda.

install         #表示安装,而不是升级
text            #文本方式安装
nfs --server 192.168.0.122 --dir=/install/rhel5
#安装方式,如果是网络安装的话可以写成 url --url ftp://192.168.0.122/dir 或者 nfs --server=192.168.0.122 --dir=/install/rhel5
key 2515dd4e215225dd
#因为是redhat系统,会要求输入key,如果想跳过,可以配置为:key --skip
lang en_US.UTF-8
#语言配置
keyboard us
#键盘式样
network --device eth0 --bootproto dhcp --hostname david1
#网络设置及主机名,网络配置具体参数样例:network –onboot yes --bootproto=static --ip=192.168.0.x --netmask=255.255.255.0 其他网关,DNS等格式和ifcfg-ethx的方式一样
rootpw --iscrypted $1$OL9BN3ZY$Z4DPRSimm/VDmMFIAwxqL0
#管理员密码,是加密过的 要是使用不加密的方式则这样写:rootpw 123456
firewall --enabled --port=22:tcp
#开启防火墙,并打开ssh端口
authconfig --enableshadow --enablemd5
#用户认证和密码加密方式
selinux --enforcing
#强制打开selinux
timezone --utc Asia/Shanghai
#时区设置

zerombr yes
#清空磁盘mbr,特别注意新机子,在没有格式化磁盘时需加上这条

bootloader --location=mbr --driveorder=sda      #引导程序相关参数
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --linux --drives=sda          #初始化磁盘
part /boot --fstype ext3 --size=100 --ondisk=sda
part pv.2 --size=0 --grow --ondisk=sda
volgroup VolGroup00 --pesize=32768 pv.2
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=512 --grow --maxsize=1024
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#这里的配置中,volgroup是卷组的意思,后面的VolGroup00是卷组名,LogVol00是逻辑卷

reboot
%packages       #安装的核心软件包组
@dialup

#这里还可以添加些其他需要的软件包,如开发包等,或者可以写一些需求的脚本等


九、开启各项服务,注意顺序,及关闭selinux与防火墙iptables或者配置iptables规则:

(iptables在INPUT链上也可以指定一条规则:iptables -A INPUT -p udp --dport 67 -j ACCEPT)

[root@david Server 21:16 &17]#service portmap start
[root@david Server 21:20 &18]#service nfs start
[root@david Server 21:20 &19]#service dhcpd start
[root@david Server 21:21 &20]#service xinetd start