1、PXE环境安装所需要用到的软件:dhcpd、tftp-server、http(ftp)、syslinux
2、PXE 执行流程:
(1) 设置拥有pex功能的客户端主机开机启动项为网络启动,一般默认都此选项,如果没有可自行设置bios启动项
(2) 客户端开机之后进入网络启动,此时客户端没有IP地址需要发送广播报文(pxe网卡内置dhcp客户端程序),dhcp服务器相应客户端请求,分配给客户端相应的IP地址与掩码等信息
(3) 客户端得到IP地址之后,与tftp通信,下载pxelinux.0,default文件,根据default指定的vmlinuz,initrd.img启动系统内核,并下载指定的ks.cfg文件
(4) 根据ks.cfg文件去文件共享服务器(http/ftp/nfs)上面下载RPM包开始安装系统,注意此时的文件服务器是提供yum服务器的功能的。
PXE执行流程
3、搭建PXE环境
实验环境背景:
在VMware虚拟机环境下搭建
使用linux系统:CentOS Linux release 7.6.1810 (Core)
软件环境:dhcp、tftp-server、httpd服务使用1台虚拟机
使用的网段 :192.168.2.0/24
网关地址:192.168.2.1
DNS地址:未使用
(1) 下载需要用到的软件包dhcp,tftp-server、httpd、syslinux
yum install dhcp tftp-server httpd syslinux -y
(2) 配置dhcp 服务
配置dhcp注意事项:
dhcp配置文件中,结尾要加 “ ;”
必须指明默认网关(option routers ):option routers 192.168.2.1;
必须指明 文件获取地址: next-server 192.168.2.1;
必须指明要获取的文件名: filename "pxelinux.0";
[root@node2 ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.10 192.168.2.20;
option routers 192.168.2.1;
filename "pxelinux.0";
next-server 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
}
[root@node2 ~]# systemctl start dhcpd
[root@node2 ~]# systemctl status dhcpd
(2) 配置tftp-server 服务
将文件 中的disable = yes 改为no
[root@node2 ~]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
[root@node2 ~]#
(3)复制用用到的文件到 /var/lib/tftpboot
[root@node2 ~]# mkdir /media/cdrom
[root@node2 ~]# mount /dev/sr0 /media/cdrom/
mount: /dev/sr0 is write-protected, mounting read-only
[root@node2 /]# cp -a /media/cdrom/isolinux/{boot.msg,initrd.img,vmlinuz,vesamenu.c32} /var/lib/tftpboot/
[root@node2 /]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@node2 /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
编辑 vim /var/lib/tftpboot/pxelinux.cfg/default 文件,修改以下4项内容 ,其余保持配置不变。
[root@node1 ~]# cat -n /var/lib/tftpboot/pxelinux.cfg/default
1 default linux #在首行添加此信息
2 #default vesamenu.c32 #注释此行
62 label linux
63 menu label ^Install CentOS 7
64 kernel vmlinuz
65 append initrd=initrd.img ks=http://192.168.2.1/centos7.ks #添加此行内容
66 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet #注释此行内容
[root@node1 ~]#
(4)配置httpd 服务
将系统光盘镜像挂载至httpd 服务默认路径的一个文件夹内,名字随意
[root@node2 /]# mkdir /var/www/html/centos7
[root@node2 /]# umount /dev/sr0
[root@node2 /]# mount /dev/sr0 /var/www/html/centos7/
mount: /dev/sr0 is write-protected, mounting read-only
[root@node2 /]#
将kickstart 文件放置在/var/www/html/ 目录下,并编辑文件
[root@node2 /var/www/html]# cat centos7.ks
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.2.1/centos7" #此处指向httpd提供镜像文件的地址
# Use text mode install
text
# Firewall configuration
firewall --disabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# Network information
network --bootproto=dhcp --device=eth0 --noipv6 --activate
network --hostname=localhost.localdomain
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$16PXgd.m$C4vE6OJCMGfQVadgm0DSe.
# SELinux configuration
selinux --disabled
# System services
services --enabled="chronyd"
# Do not configure the X Window System
skipx
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part swap --fstype="swap" --ondisk=sda --size=1024
part / --asprimary --fstype="ext4" --ondisk=sda --size=10240
part /boot --fstype="ext4" --ondisk=sda --size=1024
%packages
@core
chrony
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
[root@node2 /var/www/html]#
至此Centos 7 的PXE 环境就算搭建完成了。
注意:在使用客户端测试时,内存不能小于2G,否则会提示 空间不足,切记。
kickstart 文件生成的两种方式:
第一种:在拥有desktop环境的系统下安装system-config-kisckstart软件,然后执行system-config-kisckstart命令后,会出现图形界面,图形编辑
第二种方式 :手敲 kickstart文件,参考网站:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/6/html/installation_guide/s1-kickstart2-options
或者百度查找别人写好的kickstart文件,但这不一定适应你的电脑环境。
网友评论