简单PXE搭建笔记
1、安装RedHat7.6系统
1.1、关闭防火墙,disable SeLinux
systemctl stop firewalld
chkconfig firewalld off
vim /etc/sysconfig/selinux 修改SELINUX=disabled
1.2、配置yum源
vim /etc/yum.conf 或 vim /etc/yum.repos.d/rhel7.repo
在最后添加
[rhel7]
name=RHEL7
baseurl=file:///mnt 或 baseurl=ftp://IP/PXE端系统软件包的路径
enabled=1
gpgcheck=0
yum update
yum install 软件包 安装软件
1.3、安装需要的服务及软件包
yum install vsftpd tftp-server dhcp syslinux system-config-kickstart
说明:
dhcp:提供dhcp服务
vsftpd:管理本地挂在的OS完整镜像
tftp-server:使可启动镜像通过使用tftp协议网络下载
syslinux:包含网络启动所需的boot loader
system-config-kickstart:配置kickstart的图形界面的工具
2、配置DHCP服务
vim /etc/dhcp/dhcpd.conf
添加如下:
option arch code 93 = unsigned integer 16;
allow booting;
allow bootp;
subnet 192.168.64.0 netmask 255.255.255.0 {
option routers 192.168.64.2;
range 192.168.64.100 192.168.64.200; #分配出去的IP范围
class “pxeclients” {
match if substring (option vendor-class-identifier,0,9) = “PXEClient”;
next-server 192.168.64.25; #tftp地址,即本机PXE server IP
if option arch = 00:07 {
filename “pxelinux/BOOTX64.EFI”; #6系统UEFI模式下PXE启动时的引导文件,7系列系统还可以使用shim&grubx64.efi
}
else {
filename “pxelinux/pxelinux.0”; #Legacy模式
}
}
}
注意:启动DHCP前要配好本机网络地址信息,否则无法启动dhcpd
3、配置tftp服务
vim /etc/xinetd.d/tftp
将disable改为yes
将server_args = -s 修改为引导文件的路径 #我习惯在 /var/lib/tftpboot
4、配置PXE启动的tftpboot服务目录
4.1、我习惯将镜像拷贝到ftp目录下,也可以mount
mkdir /var/ftp/pub/RHEL7_6 #以7.6系统为例
将镜像挂载到PXE server上,全部拷贝到/var/ftp/pub/RHEL7_6文件夹里
4.2、拷贝引导文件到/var/lib/tftpboot/pxelinux中
因为可能会做多个系统,所以在pxelinux中创建不同系统所对应的文件夹
mkdir /var/lib/tftpboot/pxelinux/RHEL7_6
将引导文件拷贝进来:cp /var/ftp/pub/RHEL7_6/images/pxeboot/vmlinuz /var/lib/tftpboot/pxelinux/RHEL7_6
cp /var/ftp/pub/RHEL7_6/images/pxeboot/initrd.img /var/lib/tftpboot/pxelinux/RHEL7_6
拷贝PXE启动时的引导文件:cp /var/ftp/pub/RHEL7_6/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/pxelinux #我习惯将BOOTX64.EFI,grub.cfg,grubx64.efi,mmx64.efi一起拷贝过来
4.3、创建/var/lib/tftpboot/pxelinux/pxelinux.cfg文件夹,在此文件中创建文件default文件,default文件是Legacy模式的安装启动文件
default 0 #默认进label0
timeout 600 #600秒后自动进label1系统安装
prompt 1
display msgs/boot.msg #安装界面
label 0
localboot 0
label 1
kernel RHEL7_6/vmlinuz
append initrd=RHEL7_6/initrd.img inst.repo=ftp://192.168.64.25/pub/RHEL7_6/ ip=dhcp nomodeset ks=ftp://192.168.64.24/pub/RHEL7_6/ks7_6.cfg #注意Legacy模式的inst.repo写在initrd.img这一行
在/var/lib/tftpboot/pxelinux文件夹中创建文件夹msgs用于存放Legacy模式的引导暗转配置界面文件
vim /var/lib/tftpboot/pxelinux/msgs/boot.msg,在此文件中写入安装界面的图形及系统序号
###########################################
=========================================
###########################################
0.localdisk
1.RHEL7_6
4.4、配置UEFI模式的引导安装文件
vim /var/lib/tftpboot/pxelinux/grub.efi
menuentry 'Install Red Hat Enterprise Linux 7.6' --class fedora --class gnu-linux --class gnu --class os {
linuxefi /pxelinux/RHEL7_6/vmlinuz inst.repo=ftp://192.168.64.25/pub/RHEL7_6 ks=ftp://192.168.64.24/pub/RHEL7_6/ks7_6.cfg #注意UEFI模式的inst.repo是写在vmlinuz这一行的
initrdefi /pxelinux/RHEL7_6/initrd.img
}
5、将/var/lib/tftpboot/pxelinux.0文件拷贝到/var/lib/tftpboot/pxelinux文件夹中
6、重启系统
7、重启后,重启服务
service dhcpd restart
service xinetd restart
service vsftpd restart
service tftp restart