PXE
工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
pxe通过网卡引导启动
原理
优点
- 规模化:同时装配多台服务器,无需每一台单独安装操作系统;
- 自动化:实现服务器的自动安装及自动配置各种服务;
- 远程实现:不需要光盘、U盘等安装介质,方便快捷的同时又可以保障服务器安全。
搭建PXE
服务端
1.配置DHCP服务,为客户机自动分配地址、指定引导文件位置(指明TFTP服务器地址)
2.配置TFTP服务,用来提供系统内核和引导镜像文件的下载
3.配置FTP服务,提供安装源(例如镜像文件系统等)
4.安装syslinux,提供PXE引导程序
客户端
1.网卡要支持PXE协议(集成BOOTROM芯片)
2.配置DHCP和TFTP服务
3.支持网络引导,在BIOS设置中允许从 Network 或 LAN 启动即可
需要的四大文件
- pxelinux.0:引导程序。(来自syslinux程序)
- default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
- vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
- initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
实现过程
- 客户机的网卡查找相关的dhcp服务器(获取地址和时间)。
- DHCP服务器给客户机分配IP地址和引导程序(boot loader)的地址 ,同时通过offer报文把TFTP服务器的地址发给客户机。
- TFTP服务器把引导文件(pxelinux.0)传给客户机。
- 客户机将引导程序加载到内存中来。
- 引导程序去TFTP服务器中查找配置文件,服务器将配置文件传给客户机。(配置文件中指定客户机使用ftp方式连接服务器获取系统镜像文件)
- 服务端安装并启动vsftpd服务,客户机使用ftp服务获取系统镜像文件。
搭建PXE
安装TFTP
yum -y install tftp-server xinetd
修改配置文件
vim /etc/xinetd.d/tftp
保存退出后开启服务
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
安装DHCP
yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf(复制配置文件文本)
修改DHCP配置文件
vim /etc/dhcp/dhcpd.conf
保存退出后开启服务
systemctl start dhcpd
systemctl enable dhcpd
准备 Linux 内核、初始化镜像文件
先将光盘挂载到mnt下
mount /dev/sr0 /mnt
内核和镜像文件都在/mnt/images/pxeboot下
复制两个文件到TFTP根目录下
cp vmlinuz initrd.img /var/lib/tftpboot/
准备PXE引导程序
PXE引导程序由 syslinux提供
yum -y install syslinux
复制 PXE引导程序 到TFTP根目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
安装FTP
yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/
创建空文件夹,将镜像文件复制到文件夹下
或者直接将光盘挂载到文件夹下
systemctl start vsftpd
systemctl enable vsftpd
开启服务
配置启动菜单文件
默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
配置完后保存退出
关闭防火墙,测试PXE
新建虚拟机,不用设置光盘
打开,在引导过程中按下esc
选择第四个网络模式启动
直接按回车会自动选择默认入口(图形化)或者手动指定