Linux学习|PXE网络安装已经无人值守安装教程

PXE网络安装与Kickstart(无人值守)安装教程 PXE是由Intel公司开发的网络引导技术,工作在Client/Server模式中,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。若要搭建PXE网络体系,必须满足一下几个前提条件:
客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。 服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件下载。 PXE的优点是:
规模化:同时装配多台服务器 自动化:安装系统,配置各项服务 远程实现:不需要光盘、U盘等安装介质。 PXE部署步骤:
1、关闭核心防护以及防火墙:

[root@zhu /]# vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: #enforcing - SELinux security policy is enforced. #permissive - SELinux prints warnings instead of enforcing. #disabled - No SELinux policy is loaded. SELINUX=disabled##将这个配置改成disabled,来关闭核心防护 # SELINUXTYPE= can take one of three values: #targeted - Targeted processes are protected, #minimum - Modification of targeted policy. Only selected processes are protected. #mls - Multi Level Security protection. SELINUXTYPE=targeted [root@zhu /]# systemctl stop firewalld.service 关闭防火墙

2、永久挂载光盘镜像:
[root@zhu /]# mount /dev/cdrom /mnt##挂载光盘镜像 [root@zhu /]# vi /etc/fstab##进入存放的是系统中的文件系统信息来配置永久挂载,使用"shift+G"跳转最后一行,"o"在下一行插入 # /etc/fstab # Created by anaconda on Mon Aug3 13:49:00 2020 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root /xfsdefaults0 0 UUID=f797ffdf-39ae-4002-8ad1-df149d3734ae /bootxfsdefaults0 0 /dev/mapper/centos-swap swapswapdefaults0 0 /dev/sr0/mntiso9660defaults0 0##光盘镜像永久挂载 ~

iso9660是一个CDROM的文件系统,可以允许你在设备上读取CDROM中的文件。
3、配置yum源
[root@zhu ~]# cd /etc/yum.repos.d/##进入yum配置目录 [root@zhu yum.repos.d]# mkdir backup##配置备份目录(防止自行配置的yum源产生问题,可以用备份文件来自救) [root@zhu yum.repos.d]# mv C* backup##移动所有的文件到备份目录下 [root@zhu yum.repos.d]# cp backup/CentOS-Base.repo local.repo##导出配置文件 [root@zhu yum.repos.d]# ll 总用量 4 drwxr-xr-x. 2 root root187 8月3 14:50 backup -rw-r--r--. 1 root root 1664 8月3 14:50 local.repo

4、配置文件,在最后一行进项编辑
[root@KCG yum.repos.d]# vi local.repo [centos] name=CentOS baseurl=file:///mnt##这个文件源就是你挂载的镜像文件 gpgcheck=0 enabled=1 #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

5、清理yum缓存:
[root@zhu yum.repos.d]# yum clean all 已加载插件:fastestmirror, langpacks 正在清理软件源: base centos extras updates Cleaning up list of fastest mirrors [root@zhu yum.repos.d]# yum makecache 已加载插件:fastestmirror, langpacks Determining fastest mirrors * base: mirrors.njupt.edu.cn * extras: mirrors.njupt.edu.cn * updates: mirrors.njupt.edu.cn base| 3.6 kB00:00:00 centos| 3.6 kB00:00:00 extras| 2.9 kB00:00:00 updates| 2.9 kB00:00:00 (1/14): base/7/x86_64/filelists_db| 7.1 MB00:00:04 ......(加载过程省略) 元数据缓存已建立 [root@zhu /]# yum list##列出所有可用的安装包

6、准备CentOS安装源:
[root@zhu ~]# mkdir -p /var/ftp/centos7 [root@zhu ~]# mount /dev/cdrom /mnt [root@zhu ~]# cp -rf /mnt/* /var/ftp/centos7 [root@zhu ~]# yum -y install vsftpd [root@zhu ~]# systemctl start vsftpd [root@zhu ~]# systemctl enable vsftpd

7、开启TFTP服务:
[root@zhu ~]# yum -y install tftp-server [root@zhu ~]# vi /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##把“yes”改成“no” per_source= 11 cps= 100 2 flags= IPv4 }##将disable = yes改成no [root@zhu ~]# systemctl start tftp [root@zhu ~]# systemctl enable tftp Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.

8、准备 Linux 内核、初始化镜像文件:
[root@zhu ~]# cd /mnt/images/pxeboot/ [root@zhu pxeboot]# ll 总用量 57838 -rw-r--r-- 1 root root 52584760 11月 26 2018 initrd.img -r--r--r-- 1 root root441 11月 26 2018 TRANS.TBL -rwxr-xr-x 1 root root6639904 11月9 2018 vmlinuz [root@zhu pxeboot]# cp imginitrd.img vmlinuz /var/lib/tftpboot/##复制vmlinuz和initrd.imginitrd.img到

9、准备 PXE 引导程序
[root@zhu pxeboot]# yum -y install syslinux [root@zhu syslinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

10、服务机安装并启用 DHCP 服务
[root@zhu /]# yum -y install dhcp [root@zhu /]# vi /etc/dhcp/dhcpd.conf # DHCP Server Configuration file. #see /usr/share/doc/dhcp*/dhcpd.conf.example #see dhcpd.conf(5) man page # subnet 20.0.0.0 netmask 255.255.255.0 { option routers 20.0.0.20; option subnet-mask 255.255.255.0; option domain-name "bdqn.com"; option domain-name-servers 8.8.8.8; default-lease-time 21600; max-lease-time 43200; range 20.0.0.100 20.0.0.200; 1 next-server 20.0.0.20; ##指定的TFTP服务器的地址 filename "pxelinux.0"; ##指定PXE引导程序的文件名 }# [root@zhu /]# systemctl restart dhcpd##重启dhcp [root@zhu /]# systemctl enable dhcpd##开机启动dhcp Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

11、配置启动菜单文件
[root@zhu /]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@zhu /]# vi /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://20.0.0.20/centos7 ks=ftp://20.0.0.20/ks.cfg##设置镜像地址设置无人值守配置

12、准备安装应答文件,在图形界面中配置Kickstart配置参数:
[root@zhu ~]# yum -y install system-config-kickstart##安装Kickstart工具 基本配置: 默认语言:简体中文 键盘:U.S. English 时区:Asia/shanghai安装方法: 安装方法:勾选√:执行全新安装 安装方法:勾选√:FTP:20.0.0.20 目录:centos7安装类型: 勾选√:安装新引导装载程序分区信息:根据自己的需求配置分区信息网络配置:添加网络设备: 网络设备:ens33(默认网卡) 网络类型:DHCP防火墙配置:SELinux(Linux核心防护):禁用 安全级别:禁用防火墙##根据自身的需求进行配置预安装脚本:##配置yum源包 勾选√:使用解释程序:/bin/bash rm -rf /etc/yum.repos.d/* echo -e '[base] name=CentOS7.6 baseurl=ftp://20.0.0.20/centos7 enabled=1 gpgcheck=0最后保存配置:文件-保存。保存在/root目录下,/root/ks.cfg

13、移动ks.cfg文件到/var/ftp目录下,并且配置安装包:
[root@zhu ~]# cp /root/ks.cfg /var/ftp/ks.cfg [root@zhu ~]# vi /var/ftp/ks.cfg #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --plaintext Abc123 # Use network installation url --url="ftp://20.0.0.20/centos" # System language lang zh_CN .......省略 ##插入安装包格式 %packages @^minimal##最小化安装包 %end

14、设置一个客户机进行Kickstart验证 Linux学习|PXE网络安装已经无人值守安装教程
文章图片

【Linux学习|PXE网络安装已经无人值守安装教程】该过程无需我们进行任何配置,会自动开始最小化安装。
这个过程中我们可能会遇到一个报错代码:PXE-E32。这个代码的意思是TFTP服务没有运行,我们需要开闭防火墙还有开启Xinetd服务,来开启TFTP服务。

    推荐阅读