目录
一.PXE
1. 系统装机的三种引导方式
2. 系统安装过程
3. 光盘安装相关文件
4. PXE简介
5. 实现过程
6. PXE优点
二.PXE实现过程
1. 实验准备
2. 搭建DHCP服务器
3. 配置TFTP服务器
4. 准备pxelinu.0文件
5. 挂载镜像准备内核、驱动文件
6. 手写配置文件
7. 准备yum仓库
8. 重启服务效验
9. 制作应答文件ks.cfg
10. 为ks.cfg文件添加启动路径
11. 新建虚拟机效验自动化结果
12. 完整实验代码
一.PXE
1. 系统装机的三种引导方式
启动操作系统方式:
- 1.硬盘
- 2.光驱(u盘)
- 3.网络启动(pxe)
2. 系统安装过程
-
加载boot loader
-
加载启动安装菜单
-
加载内核和initrd系统(文件才能使用文件)
-
加载根系统
-
运行anaconda的安装向导
3. 光盘安装相关文件
-
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系统,文件系统驱动等)
4. PXE简介
PXE:是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。
pxe是通过网卡引导启动
实现的硬件条件
- BIOS支持
- 网卡支持
- 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)
- 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置 网卡自带DHCP功能 dhcp 指明分配的ip地址
- 服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载 udp协议,网卡自带这个功能(不支持其他的远程共享服务)
5. 实现过程
- 网卡需要查找相关的dhcp服务器(获取地址时间)
- 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)
- 网卡使用tftp客户端吧引导程序加载到内存中来
- bios执行引导程序
- 引导程序会去TFTP去查找配置文件
- 根据配置文件去引导安装系统
- 系统安装过程
6. PXE优点
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
二.PXE实现过程
1. 实验准备
准备一台虚拟服务器,当做DHCP、FTP、TFTP服务器,安装相应程序。
yum install tftp-server.x86_64 dhcp syslinux vsftpd -y
2. 搭建DHCP服务器
3. 配置TFTP服务器
4. 准备pxelinu.0文件
5. 挂载镜像准备内核、驱动文件
6. 手写配置文件
7. 准备yum仓库
8. 重启服务效验
9. 制作应答文件ks.cfg
10. 为ks.cfg文件添加启动路径
11. 新建虚拟机效验自动化结果
12. 完整实验代码
yum install tftp-server.x86_64 dhcp syslinux vsftpd -y
//安装软件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
//生成dhcp 配置文件
vim /etc/dhcp/dhcpd.conf
//修改配置文件
subnet 192.168.91.0 netmask 255.255.255.0 {
range 192.168.91.20 192.168.91.50;
option routers 192.168.91.100;
next-server 192.168.91.100;
filename "pxelinux.0";
}
vim /etc/xinetd.d/tftp
//修改 tftp 配置文件 将yes 改为no
disable = no
准备四大文件
pxelinu.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
准备内核 驱动文件
mount /dev/sr0 /mnt
cd /mnt/isolinux/
cp vmlinuz initrd.img /var/lib/tftpboot/
准备手写配置文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vim pxelinux.cfg/default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.233.11/centos7
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://172.16.233.11/centos7
准备yum仓库
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/
systemctl start dhcpd
systemctl start tftp.socket
systemctl start vsftpd
准备应答文件 自动安装操作系统
yum install system-config-kickstart -y
// 安装图形化界面 制作应答文件的工具
手动去添加应答文件过程 略
cd /var/lib/tftpboot/
vim pxelinux.cfg/default
default linux
timeout 600
label linux
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.233.11/centos7 ks=ftp://172.16.233.11/centos7
label linux text
kernel vmlinuz
append text initrd =initrd.img method=ftp://172.16.233.11/centos7