PXE网络装机详细教程(单系统)
环境准备
SELinux与防火墙
[root@server ~]# getenforce
Enforcing
[root@server ~]# setenforce 0
[root@server ~]# getenforce
Permissive
[root@server ~]# vim /etc/selinux/config
[root@server ~]# yum -y remove firewalld
DHCP服务器
•Dynamic Host Configuration Protocol
–动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理
•主要分配以下入网参数
–IP地址/子网掩码/广播地址
–默认网关地址、DNS服务器地址
•DHCP地址分配的四次会话(以广播进行,先到先得)
–DISCOVERY --> OFFER --> REQUEST -->ACK
一个网络中只能有一台DHCP服务器
KVM软件与VMware软件均提供DHCP服务
关闭VMware软件DHCP服务



关闭KVM软件DHCP服务
- KVM虚拟机,建立新的网络



2.KVM虚拟机,修改网络类型:haha(CentOS7虚拟机与RHEL8虚拟机都进行修改)
3.修改网卡eth0的IP地址
[root@server ~]# nmcli connection modify eth0 ipv4.addresses 192.168.100.2/24
[root@server ~]# nmcli connection up eth0
[root@server ~]# ifconfig | head -2
4.真机为Linux,在真机上操作
ssh root@192.168.100.2
•服务端基本概念
–租期:允许客户机租用IP地址的时间期限,单位为秒
–作用域:分配给客户机的IP地址所在的网段
–地址池:用来动态分配的IP地址的范围
虚拟机CentOS7:
1.安装软件包
[root@server /]# yum -y install dhcp
[root@server /]# rpm -q dhcp
[root@server /]# vim /etc/dhcp/dhcpd.conf
末行模式下 :r /usr/share/doc/dhcp*/dhcpd.conf.example #读入其他文本文件内容
只保留这些内容:
# see /usr/share/doc/dhcp*/dhcpd.conf.example
subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}
2.修改主配置文件
[root@server /]# vim /etc/dhcp/dhcpd.conf
末行模式下 :r /usr/share/doc/dhcp*/dhcpd.conf.example #读入其他文本文件内容
# see /usr/share/doc/dhcp*/dhcpd.conf.example
subnet 192.168.100.0 netmask 255.255.255.0 { #分配的网段
range 192.168.100.100 192.168.100.200; #分配的IP地址范围
option domain-name-servers 192.168.100.254; #分配的DNS服务器地址
option routers 192.168.100.254; #分配的网关地址
default-lease-time 600; #默认的租期时间
max-lease-time 7200; #最大的租期时间
}
[root@server /]# systemctl restart dhcpd #重启dhcpd服务
[root@server /]# systemctl status dhcpd #查看服务状态
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
serverctive: active (running)
3.验证:
虚拟机RHEL8:KVM虚拟机修改网络类型为haha
方式一:
[root@pc2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
........
IPADDR=192.168.88.2 #删除该行
PREFIX=24 #删除该行
GATEWAY=192.168.88.254 #删除该行
[root@pc2 ~]# nmcli connection modify eth0 ipv4.method auto
[root@pc2 ~]# ifdown eth0 #彻底禁用
[root@pc2 ~]# ifup eth0 #启用网卡
[root@pc2 ~]# ifconfig | head -2
方式二:专门测试的工具
[root@pc2 ~]# dhclient -r #释放IP地址
[root@pc2 ~]# dhclient -d #测试获取IP地址
按Ctrl c结束
#################################################################
网络装机的优势
•规模化:同时装配多台主机
•自动化:装系统、配置各种服务
•远程实现:不需要光盘、U盘等物理安装介质
•PXE,Pre-boot eXecution Environment
–预启动执行环境,在操作系统之前运行
–可用于远程安装
•工作模式
–PXE client 集成在网卡的启动芯片中
–当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
•服务端需要哪些服务组件?
–DHCP服务,分配IP地址、定位引导程序
–TFTP服务,提供引导程序下载
–FTP服务,提供yum安装源

•客户机应具备的条件
–网卡芯片必须支持PXE协议
–主板支持从网卡启动
#################################################################
网络装机服务器搭建
DHCP服务器构建
[root@server /]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.100 192.168.100.200;
option domain-name-servers 192.168.100.254;
option routers 192.168.100.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.100.2; #指定下一个服务器IP地址
filename "pxelinux.0"; #指定网卡引导文件名称
}
[root@server /]# systemctl restart dhcpd
pxelinux.0:网卡引导文件(网络装机说明书)
二进制文件 安装一个软件即可获得此文件
二、构建TFTP服务
TFTP:简单文件传输协议 默认端口:69
默认TFTP共享数据的地方:/var/lib/tftpboot
1.安装软件包
[root@server /]# yum -y install tftp-server
[root@server /]# systemctl restart tftp
[root@server /]# systemctl status tftp
● tftp.service - Tftp Server
Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled)
serverctive: active (running)
2.部署pxelinux.0文件
[root@server /]# yum provides */pxelinux.0 #查询仓库中那个软件包产生改文件
[root@server /]# yum -y install syslinux
[root@server /]# rpm -ql syslinux | grep pxelinux.0 #查询软件包的安装清单
[root@server /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server /]# ls /var/lib/tftpboot/
思路:
DHCP服务----》IP地址、next-server、filename
tftp服务----》pxelinux.0
pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件
3.部署菜单文件
[root@server /]# ls /dvd/ #查看光盘内容
[root@server /]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@server /]# cp /dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #复制并且重命名
[root@server /]# ls /var/lib/tftpboot/
pxelinux.0 pxelinux.cfg
[root@server /]# ls /var/lib/tftpboot/pxelinux.cfg/
default
4.部署 图形的模块(vesamenu.c32)与 背景图片(splash.png)
[root@server /]# cp /dvd/isolinux/vesamenu.c32 /dvd/isolinux/splash.png /var/lib/tftpboot/
[root@server /]# ls /var/lib/tftpboot/
pxelinux.0 pxelinux.cfg splash.png vesamenu.c32
5.部署 启动的内核(vmlinuz)与 驱动程序(initrd.img)
[root@server /]# cp /dvd/isolinux/vmlinuz /dvd/isolinux/initrd.img /var/lib/tftpboot/
[root@server /]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 pxelinux.cfg splash.png vesamenu.c32 vmlinuz
6.修改菜单文件内容
[root@server /]# vim /var/lib/tftpboot/pxelinux.cfg/default
末行模式显示行号 :set nu
1 default vesamenu.c32 #默认加载图形模块
2 timeout 600 #读秒时间 1/10秒
......
10 menu background splash.png #背景图片
11 menu title NSD PXE Server #显示的菜单标题
......
61 label linux
62 menu label ^Install CentOS 7 #菜单文件的显示内容
63 menu default #读秒结束后默认选择
64 kernel vmlinuz #加载vmlinuz内核
65 append initrd=initrd.img #加载initrd.img
以下内容全部删除
思路:
DHCP服务----》IP地址、next-server、filename
tftp服务----》pxelinux.0
pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件
default---》加载图形模块(vesamenu.c32)、加载背景图片(splash.png)、显示标题、加载内核、加载驱动程序.......
三、初步测试
思路:
DHCP服务----》IP地址、next-server、filename
tftp服务----》pxelinux.0
pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件
default ---》图形模块、背景图片、读秒、内核、驱动
1.建立测试的机器















修改测试机器的网络类型




KVM环境:









常见错误:
1.DHCP服务器配置文件内容
2.菜单文件内容
3./var/lib/tftpboot/部署的6项数据
4.防火墙与SELinux是否关闭
5.dhcpd服务与TFTP服务是否启动
四、构建FTP服务器
1.利用FTP服务共享光盘的所有内容
[root@server /]# yum -y install vsftpd
[root@server /]# mkdir /var/ftp/centos
[root@server /]# ls /var/ftp/centos
[root@server /]# mount /dev/cdrom /var/ftp/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server /]# ls /var/ftp/centos
[root@server /]# systemctl restart vsftpd
[root@server /]# yum -y install lftp
[root@server /]# lftp 192.168.99.1
lftp 192.168.88.1:~> cd centos
lftp 192.168.88.1:/centos> ls #查看是否有光盘内容
五、部署无人值守安装,生成应答文件
]# yum -y install system-config-kickstart
]# rpm -q system-config-kickstart
]# system-config-kickstart
软件包的选择被禁止

软件包的选择,需要本地Yum仓库的支持,要求指向光盘的仓库,标识必须为[development]
[root@server /]# vim /etc/yum.repos.d/dvd.repo
[development]
name=CentOS7
baseurl=file:///dvd
enabled=1
gpgcheck=0
[root@server /]# system-config-kickstart












部署应答文件
[root@server /]# ls /root
[root@server /]# vim /root/ks.cfg #不需要修改,大致浏览即可
[root@server ~]# cp /root/ks.cfg /var/ftp/
[root@server ~]# ls /var/ftp/
centos ks.cfg pub
[root@server ~]#
修改菜单文件指定获取应答文件
[root@server /]# vim /var/lib/tftpboot/pxelinux.cfg/default
.......
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.100.2/ks.cfg #指定获取应答文件
总结思路:
DHCP服务----》IP地址、next-server、filename
tftp服务----》pxelinux.0
pxelinux.0---》读取/var/lib/tftpboot/pxelinux.cfg/default #菜单文件
default ---》图形模块、背景图片、读秒、内核、驱动 、指定获取应答文件
应答文件 ---》软件如何获得 url --url="ftp://192.168.100.2/centos"、装系统的各项选择
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
