pxe-dhcp-tftp-nfs无人值守安装系统

时间:2021-07-26 10:01:00


首先说一下这个的流程

1.客户端通过dhcp服务获取一个IP地址,客户端根据dhcp服务器里的next-serverfilename2个参数指定tftp服务器地址和引导文件,客户端从tftp服务器上下载引导文件到内存中并启动客户端,如果dhcptftp在一台服务器上,则不需要指定next-server地址

2.加载引导文件,这时会读取tftp根目录下的initrd.imgvmlinuzpxelinux.cfg下的default文件,该文件指定了模板配置文件ks.cfg的位置。

3.安装程序启动后要求选择安装介质所在的服务器地址和目录,可以通过vsftpdhttpdnfs等提供文件的传输

4.最后就会按照ks.cfg文件中指定的配置来安装操作系统。

下面开始进行具体的配置,服务器IP地址为192.168.10.3

安装必要的服务

yuminstall �Cy dhcp* nfs* tftp* system-config-kickstart


配置dhcp

1 vi /etc/dhcp/dhcpd.conf

ddns-update-style none;

ignore client-updates;

subnet 192.168.10.0 netmask 255.255.255.0 {

option routers 192.168.10.3;//dhcp地址

option subnet-mask 255.255.255.0;

default-lease-time 21600;

max-lease-time 43200;

range192.168.10.150192.168.10.200;

filename "pxelinux.0";

next-server 192.168.10.3;//ftp地址

}

配置nfs

1.mkdir /nfs/dir /ks

2.vi /etc/export

/nfs/dir*(ro.sync)

/ks*(fsid=0,ro,sync)

配置tftp

1 vi/etc/xinetd.d/tftp

service tftp

{

socket_type= dgram

protocol= udp

wait= yes

user= root

server=/usr/sbin/in.tftpd

server_args= -s /tftpboot//修改

disable= no//yes改为no

per_source= 11

cps= 100 2

flags= IPv4

}

2.复制必要的文件

1.把光盘中的文件拷贝至/nfs/dir

mount/dev/cdrom /media/CentOS/

cp -Rf/media/CentOS/* /nfs/dir

2. a.将initrd.imgpxelinux.0vmlinuz 拷贝至 /tftpboot目录中

mkdir/tftpboot

cp/media/CentOS/isolinux/initrd.img /tftpboot

cp/media/CentOS/isolinux/vmlinuz /tftpboot

cp/usr/share/syslinux/pxelinux.0 /tftpboot

chmod 777 -Rf /tfrpboot/

如果没有pxelinux.0

yum install�Cy syslinux

b.default文件放在/tftpboot/pxelinux.cfg/

mkdir/tftpboot/pxelinux.cfg/

cp /nfs/dir/isolinux/isolinux.cfg/tftpboot/pxelinux.cfg/default

3.vi /tftpboot/pxelinux.cfg/default

label linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append initrd=initrd.img ks=ftp://192.168.10.3/ks.cfg

4. cp/root/anaconda-ks.cfg/nfs/dir/ks.cfg

5.vi /nfs/dir/ks.cfg

firewall --disabled

install

#nfs共享出来的镜像位置

nfs --server=192.168.10.3 --dir=/nfs/dir

rootpw --iscrypted $1$3kqcZEc6$pLcphgB0XkP3yDrqFbB1N1

auth--useshadow--passalgo=sha512

graphical

keyboard us

lang en_US

selinux --disabled

skipx

logging --level=info

reboot

#时区

timezoneAsia/Shanghai

bootloader --location=mbr

#下面是开机禁用的启动项

services �Cdisabled NetworkManager,abrt-ccpp (由于格式问题,省略一些)

#下面是分区设置

clearpart --all --initlabel

part / --fstype ext4 --size=50000

part /home --fstype ext4 --size=1 --grow

part swap --size=4092

#下面是定制的安装包

%packages

@core

#service dhcpd start

#service xinetd start

#service nfs start

以上就布置好了无人值守的环境,只要按下开机键系统就会自动安装成功,中间如果出现一些小问题就慢慢排查。主要是要理解文件间的先后顺序。首先是dhcp服务器分配IP地址,dhcp会告诉客户端启动文件位置pxelinux.0、initrd.img、vmlinuz,这三个都是在tftp的目录下,然后客户端去找pxelinux.cfg下的配置文件default,default中指定了ks.cfg,这样就完成了整套操作。





本文出自 “Jeff” 博客,请务必保留此出处http://zhangxz.blog.51cto.com/5490116/1333311