单机:光驱加载linux镜像,使用光驱中的小型操作系统去安装操作系统
PE:操作系统是外来设备的操作系统,使用此操作系统将操作系统安装到本地(通过网络)
1.加载boot loader
2.加载启动安装菜单
3.加载内核和initrd系统
4.加载根系统
5.运行anaconda的安装向导
Linux安装光盘的安装相关文件
在系统光盘的isolinux目录下有和安装相关的文件
boot.cat: 相当于grub的第一阶段
isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单
memtest:内存检测程序
splash.png:光盘启动菜单界面的背景图
vmlinuz:是内核映像
initrd.img:ramfs文件(精简版的linux系统,文件系统驱动等)
pxe是通过网卡引导启动
需要的硬件条件:
1.BIOS支持
2.网卡支持
3.需要在BIOS中开启开关(bmc界面)
4.网络中有一台DHCP服务器以便于客户机自动分配地址,指定引导文件位置
5.服务器通过tftp服务提供系统内核和引导镜像的下载
四大文件: initrd.img(驱动) vmlinuz(内核) pxelinux.cfg/default(引导文件) pxelinux.0(小型的grub程序)
1.网卡需要查找相关的dhcp服务器
2.找到dhcp服务器后获得ip地址,和引导程序的地址(tftp服务的地址)
3.网卡使用ftp客户端把引导程序加载到内存
4.BIOS执行引导程序
5.引导程序会去tftp查找相关配置文件
6.根据配置文件引导安装系统
7.系统安装
PXE远程安装服务集成了Centos7安装源,TFTP服务,DHCP服务,能够向客户端裸机发送PXE引导程序,linux内核,启动菜单等数据,以及安装文件
简单文件传输协议:基于udp协议(69端口)实现客户端和服务端之间简单文件传输的协议,适用于小型文件传输的场景,TFTP服务默认由xinetd服务管理
用来获取内核和引导文件
安装系统时的镜像文件获取方式,可以使用http,ftp文件等方式
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
在此主要作用是提供pxelinux.0文件
为客户端的裸机提供ip地址,可以访问服务端
规模化:同时装配多台服务器
自动化:安装系统,配置服务
远程实现:不需要光盘,U盘等介质
1.为裸机分配同一局域网内的ip地址,指明tftp服务器地址
2.tftp服务端开启服务
3.安装syslinux服务,取得pxelinux.0文件
4.安装vsftpd服务,挂载镜像文件
5.将四大文件拷入/var/lib/tftpboot
6.将服务开启,关闭防火墙,安全防护
具体操作:
[root@localhost ~]#yum install tftp-server.x86_64 vsftpd syslinux dhcp -y
.....
已安装:
dhcp.x86_64 12:4.2.5-83.el7.centos.1 syslinux.x86_64 0:4.05-15.el7 tftp-server.x86_64 0:5.2-22.el7
vsftpd.x86_64 0:3.0.2-29.el7_9
作为依赖被安装:
bind-export-libs.x86_64 32:9.11.4-26.P2.el7_9.14
作为依赖被升级:
dhclient.x86_64 12:4.2.5-83.el7.centos.1 dhcp-common.x86_64 12:4.2.5-83.el7.centos.1
dhcp-libs.x86_64 12:4.2.5-83.el7.centos.1
完毕!
//安装软件包
[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
//将模板文件拷贝到为配置文件进行修改
subnet 192.168.82.0 netmask 255.255.255.0 {
range 192.168.82.10 192.168.82.50;
option routers 192.168.82.2;
next-server 192.168.82.100; //tftp服务器地址
filename "pxelinux.0"; //指定启动文件
}
//配置tftp服务器
主要文件
/etc/xinetd.d/tftp //配置文件
/var/lib/tftpboot //站点
[root@localhost ~]#vim /etc/xinetd.d/tftp
disable = no
//将此行改为no 启动服务
[root@localhost ~]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
//将引导文件拷贝到站点中
[root@localhost ~]#cd /var/ftp/
[root@localhost ftp]#mkdir centos7
[root@localhost ftp]#ls
centos7 pub
[root@localhost ftp]#mount /dev/sr0 /var/ftp/centos7/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]#cd centos7/
[root@localhost centos7]#ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost centos7]#cd isolinux/
[root@localhost isolinux]#ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vmlinuz
boot.msg initrd.img isolinux.cfg splash.png vesamenu.c32
[root@localhost isolinux]#cp initrd.img vmlinuz /var/lib/tftpboot/
//将initrd.img 和vmlinuz拷贝到站点中
[root@localhost isolinux]#cd /var/lib/tftpboot/
[root@localhost tftpboot]#ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]#mkdir pxelinux.cfg
[root@localhost tftpboot]#cd pxelinux.cfg/
[root@localhost pxelinux.cfg]#vim default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.82.100/centos7
label rescue
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.82.100/centos7
label test
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.82.100/centos7
[root@localhost pxeboot]# systemctl stop firewalld.service
[root@localhost pxeboot]# systemctl start dhcpd
[root@localhost pxeboot]# systemctl start tftp
[root@localhost pxeboot]# systemctl start vsftpd
[root@localhost pxeboot]# setenforce 0
//开启服务,关闭防火墙,安全防护
yum install system-config-kickstart -y
基础设置
安装方法
引导文件
分区
网络配置
防火墙设置
是否安装图形化界面
保存到ftp根目录下
[root@localhost ftp]#cd /var/lib/tftpboot/
[root@localhost tftpboot]#cd pxelinux.cfg/
[root@localhost pxelinux.cfg]#vim default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.82.100/centos7 ks=ftp://192.168.82.100/ks.cfg
label rescue
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.82.100/centos7 ks=ftp://192.168.82.100/ks.cfg
label test
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.82.100/centos7 ks=ftp://192.168.82.100/ks.cfg
[root@localhost pxelinux.cfg]#systemctl restart tftp
//重启服务