DHCP+PXE+NFS+Kickstart 全自动系统安装
本文档基于 CentOS6.5 来编写,与 CentOS5 不同的地方将会注明。其他 RHEL5 请参考
CentOS5 的配置,RHEL6 参考 CentOS6 的配置。
1 dhcp 服务的安装和配置
1.1 dhcp 服务的安装
yum install dhcp -y
1.1 dhcp 服务的配置
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
[root@kickstart_server xinetd.d]# egrep -v '#|^$' /etc/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
/etc/dhcpd.conf
192.168.0.254;
255.255.255.0;
"hisilicon.com";
"hisilicon.com";
option routers
option subnet-mask
option nis-domain
option domain-name
192.168.0.254;
option domain-name-servers
option ntp-servers
210.72.145.44;
range dynamic-bootp 192.168.0.190 192.168.0.199;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.0.250;#tftp 服务器地址
filename "/pxelinux.0";#boot loader 配置文件
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
以上/pxelinux.0 的/代表的是 tftp 服务器的根目录,对于 CentOS6,tftp 服务器的根目录默认
为/var/lib/tftpboot,对于 CentOS5 是/tftpboot/。
1.2 dhcp 服务的启动和设置随机启动
[root@kickstart_server xinetd.d]# service dhcpd start
Starting dhcpd:
[root@kickstart_server xinetd.d]# chkconfig dhcpd on
[ OK ]
2 tftp 服务器的安装和配置
2.1 tftp 服务的安装
[root@kickstart_server xinetd.d]# yum install tftp-server -y
2.2 tftp 服务的配置
[root@kickstart_server xinetd.d]# cd /etc/xinetd.d/
[root@kickstart_server xinetd.d]# sed -i 's/disable.*=.*yes/disable
tftp
[root@kickstart_server xinetd.d]# egrep -v '^$|#' tftp
service tftp
{
socket_type
protocol
wait
user
server
server_args
disable
per_source
cps
flags
= dgram
= udp
= yes
= root
= /usr/sbin/in.tftpd
= -s /var/lib/tftpboot
= no
= 11
= 100 2
= IPv4
= no/g'
}
在以上配置中,server_args 表示的是 tftp 的根目录,这个在 CentOS5 中,默认位置为/tftpboot。
2.3 启动 tftp 服务
[root@kickstart_server isolinux]# /etc/init.d/xinetd start
Starting xinetd:
[root@kickstart_server isolinux]# chkconfig xinetd on
[root@kickstart_server isolinux]# lsof -i :69
COMMAND
PID USER
[ OK ]
FD
TYPE DEVICE SIZE/OFF NODE NAME
xinetd 11028 root
5u IPv4 88801
0t0 UDP *:tftp
3 PXE 服务器的搭建
3.1 syslinux 包的安装
[root@PXE_Server ~]# yum install syslinux
[root@PXE_Server ~]# rpm -ql syslinux|egrep 'vesamenu.c32|/pxelinux.0'
/usr/share/syslinux/pxelinux.0
/usr/share/syslinux/vesamenu.c32
3.2 PXE 配置文件复制
3.2.1
pxelinux.0 和 vesamenu.c32 文件复制
[root@PXE_Server ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
如果是 CentOS5,需 copy 到/tftpboot/目录下。
3.2.2 创建新的目录
[root@PXE_Server ~]# cd /var/lib/tftpboot/
[root@PXE_Server tftpboot]# mkdir pxelinux.cfg
[root@PXE_Server tftpboot]# mkdir CentOS6.5 RHEL6.5
3.2.3
vmlinuz、initrd.img 文件复制
将 RHEL6.5 和 CentOS6.5 光盘挂载到/mnt 目录下,将各自的内核文件与初始化 RAMDISK 镜
像 copy 到上面创建的目录。
[root@PXE_Server tftpboot]# tree CentOS6.5/ RHEL6.5/
CentOS6.5/
├── initrd.img
└── vmlinuz
RHEL6.5
├── initrd.img
└── vmlinuz
0 directories, 4 files
3.2.4 memtest 文件和背景图片的复制
memtest 为内存测试文件,背景图片也可以自己制作。
注:本文档最后的附件中有相关附件,供参考。
[root@PXE_Server tftpboot]# ls -l memtest splash.jpg
-r--r--r-- 1 root root 165080 May 3 07:48 memtest
-rw-r--r-- 1 root root 255030 May 2 18:28 splash.jpg
以上两个文件和内核在光盘中的位置如下:
[root@PXE_Server tftpboot]# ls -l /mnt/cdrom/isolinux/{splash.jpg,memtest,vmlinuz,initrd.img}
-r--r--r-- 2 root root 33392971 Nov 28 05:52 /mnt/cdrom/isolinux/initrd.img
-r--r--r-- 2 root root
165080 Nov 29 20:04 /mnt/cdrom/isolinux/memtest
-r--r--r-- 2 root root
151230 Nov 29 20:04 /mnt/cdrom/isolinux/splash.jpg
-r-xr-xr-x 4 root root 4128368 Nov 29 20:04 /mnt/cdrom/isolinux/vmlinuz
3.3 default 文件配置
#主机先从 TFTP 服务器上面获取 pxelinux.0 文件上,pxelinux.0 是个 bootloder 文件 通过这个
文件再去读取 default 文件,default 文件设置了开机选单。
[root@PXE_Server pxelinux.cfg]# ls /var/lib/tftpboot/pxelinux.cfg/default
/var/lib/tftpboot/pxelinux.cfg/default
注:本文档最后的附件中有相关附件,供参考。
4 自动应答文件的设置
4.1 ks.cfg 的配置
[root@PXE_Server pxelinux.cfg]# ls -l /tmp/ks.cfg
-rw-r--r-- 1 root root 1890 May 3 09:19 /tmp/ks.cfg
注:本文档最后的附件中有相关附件,供参考。
5 nfs 共享 ks.cfg 和 ISO 镜像文件
5.1 nfs 服务 配置
[root@kickstart_server ks]# cat /etc/exports
/tmp
*(async,rw)
5.2 ks.cfg 放在 nfs 共享目录下
[root@PXE_Server pxelinux.cfg]# ls -l /tmp/ks.cfg
-rw-r--r-- 1 root root 1890 May 3 09:19 /tmp/ks.cfg
5.3 ISO 镜像放在 nfs 共享目录下
[root@PXE_Server pxelinux.cfg]# tree /tmp/{RHEL6.5,CentOS6.5}
/tmp/RHEL6.5
├── images
│ ├── install.img
│ └── product.img
└── rhel-server-6.5-beta-x86_64-dvd.iso
/tmp/CentOS6.5
├── CentOS-6.5-x86_64-bin-DVD1.iso
└── images
└── install.img
2 directories, 5 files
5.4 nfs 服务启动
[root@PXE_Server pxelinux.cfg]# /etc/init.d/nfs start
[root@PXE_Server pxelinux.cfg]# chkconfig nfs on
6 结果展示
6.1 相关附件
tftpboot.rar
6.2 结果展示
一级菜单
二级菜单