免费一键生成logo网站,互联网行业发展现状,尚学教育,私人网官网什么是PXE#xff1f;
PXE#xff0c;全名Pre-boot Execution Environment#xff0c;预启动执行环境#xff1b; 通过网络接口启动计算机#xff0c;不依赖本地存储设备#xff08;如硬盘#xff09;或本地已安装的操作系统#xff1b; 由Intel和Systemsoft公司于199…什么是PXE
PXE全名Pre-boot Execution Environment预启动执行环境 通过网络接口启动计算机不依赖本地存储设备如硬盘或本地已安装的操作系统 由Intel和Systemsoft公司于1999年9月20日公布的技术 Client/Server的工作模式 PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议 PXE客户端(client)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器我们电脑的网卡
pxekickstart 全自动安装操作系统不包括win pxe是网卡上的芯片 kickstart软件 pylickstart 用来配置操作系统安装过程的配置文件ks.cfg
initrd初始化磁盘影像文件 图中的vmlinux应该为vmliuz
PXE工作原理示意图说明
1. Client向PXE Server上的DHCP发送IP地址请求消息DHCP检测Client是否合法主要是检测Client的网卡MAC地址如果合法则返回Client的IP地址同时将启动文件pxelinux.0的位置信息一并传送给Client。
2. Client向PXE Server上的TFTP发送获取pxelinux.0请求消息TFTP接收到消息之后再向Client发送pxelinux.0大小信息试探Client是否满意当TFTP收到Client发回的同意大小信息之后正式向Client发送pxelinux.0。
3. Client执行接收到的pxelinux.0文件。
4. Client向TFTP发送针对本机的配置信息记录在TFTP的pxelinux.cfg目录下TFTP将配置文件发回Client继而Client根据配置文件执行后续操作。
5. Client向TFTP发送Linux内核请求信息TFTP接收到消息之后将内核文件发 送给Client。
6. Client向TFTP发送根文件请求信息TFTP接收到消息之后返回Linux根文件 系统。
7. Client启动Linux内核启动参数已经在4中的配置文件中设置好了。
8. Client通过NFS下载镜像文件读取autoyast自动化安装脚本。 至此Client正式进入自动化安装模式开始安装系统直到完成
一、环境
名称值软件vmware系统centos7.5网络桥接ip地址10.20.157.100
二、安装前准备
# 关闭防火墙、selinux
[rootlocalhost ~]# systemctl stop firewalld
[rootlocalhost ~]# systemctl disable firewalld
[rootlocalhost ~]# setenforce 0
[rootlocalhost ~]# sed -i s/SELINUX.*/SELINUXdisabled/g /etc/selinux/config
# 配置ip地址
[rootlocalhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPEEthernet
PROXY_METHODnone
BROWSER_ONLYno
BOOTPROTOstatic
DEFROUTEyes
IPADDR10.20.157.100
PREFIX24
GATEWAY10.20.157.1
DNS1114.114.114.114
DNS28.8.8.8
DEVICEens33
ONBOOTyes
[rootlocalhost ~]# systemctl restart network
# 配置yum源并按章软件包[rootlocalhost ~]# rm -rf /etc/yum.repos.d/*
[rootlocalhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[rootlocalhost ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[rootlocalhost ~]# yum clean all
[rootlocalhost ~]# yum makecache fast
[rootlocalhost ~]# yum install -y dhcp tftp tftp-server syslinux wget vsftpd pykickstart
三、dhcp服务器配置
[rootlocalhost ~]# vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;# A slightly different configuration for an internal subnet.subnet 10.20.157.0 netmask 255.255.255.0
{range 10.20.157.110 10.20.157.200;option domain-name-servers 10.20.157.1;option domain-name server1.example.com;option routers 10.20.157.1;option broadcast-address 10.20.157.255;default-lease-time 600;max-lease-time 7200;# PXE SERVER IPnext-server 10.20.157.100; # DHCP server ipfilename pxelinux.0;}
[rootlocalhost ~]# vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;# A slightly different configuration for an internal subnet.subnet 10.20.157.0 netmask 255.255.255.0
{range 10.20.157.110 10.20.157.200;option domain-name-servers 10.20.157.1;option domain-name server1.example.com;option routers 10.20.157.1;option broadcast-address 10.20.157.255;default-lease-time 600;max-lease-time 7200;# PXE SERVER IPnext-server 10.20.157.100; # DHCP server ipfilename pxelinux.0;}
四、TFTP服务准备
[rootlocalhost ~]# vim /etc/xinetd.d/tftp
#修改内容如下
service tftp
{socket_type dgramprotocol udpwait yesuser rootserver /usr/sbin/in.tftpdserver_args -s /var/lib/tftpbootdisable noper_source 11cps 100 2flags IPv4}
[rootlocalhost ~]# cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
[rootlocalhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[rootlocalhost ~]# mkdir /var/lib/tftpboot/netboot
五、VSftpd服务准备
在VMware中将cd驱动器链接 [rootlocalhost ~]# mount /dev/cdrom /mnt
[rootlocalhost ~]# cp -rf /mnt/* /var/ftp/pub/
# 拷贝系统启动时需要的镜像文件
[rootlocalhost ~]# cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
[rootlocalhost ~]# cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/netboot/
# 创建ks.cfg 文件
[rootlocalhost ~]# vim /var/ftp/pub/ks.cfg
#platformx86, AMD64, or Intel EM64T#versionDEVEL# Firewall configurationfirewall --disabled# Install OS instead of upgradeinstall# Use NFS installation mediaurl --urlftp://10.20.157.100/pub/rootpw --plaintext 123456
#root的密码设为123456# Use graphical installgraphicalfirstboot disable# System keyboardkeyboard us# System languagelang en_US# SELinux configurationselinux disabled# Installation logging levellogging levelinfo
# System timezonetimezone Asia/Shanghai# System bootloader configurationbootloader locationmbrclearpart --all --initlabelpart swap --asprimary --fstypeswap --size1024part /boot --fstype xfs --size200part pv.01 --size1 --growvolgroup rootvg01 pv.01logvol / --fstype xfs --namelv01 --vgnamerootvg01 --size1 --growreboot
%packagescorewget%end
%post%end
# 检查语法是否有错误
[rootlocalhost ~]# ksvalidator /var/ftp/pub/ks.cfg
六、PXE菜单
[rootlocalhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault menu.c32prompt 0timeout 30MENU TITLE Togogo.net Linux Training
LABEL centos7_x64MENU LABEL CentOS 7 X64 for newrainKERNEL /netboot/vmlinuzAPPEND initrd/netboot/initrd.img inst.repoftp://10.20.157.100/pub ksftp://10.20.157.100/pub/ks.cfg
七、重启服务
[rootlocalhost ~]# systemctl enable dhcpd vsftpd tftp
[rootlocalhost ~]# systemctl restart dhcpd vsftpd tftp
八、创建虚拟机-自动安装系统 注意内存必须大于2G